Blog

BoxLang v1.3.0 Released

Luis Majano June 23, 2025

Spread the word

Luis Majano

June 23, 2025

Spread the word


Share your thoughts

We're thrilled to announce the release of BoxLang v1.3.0! This significant update brings exciting new features, substantial performance improvements, and critical bug fixes that will enhance your development workflow and application reliability.

🌟 What's New in 1.3.0

Smart Compression & Beautiful JSON

Enhanced Zip Compression Control Take full control over your compression settings with the new compressionLevel parameter. Whether you need maximum compression for storage efficiency or faster processing with lighter compression, BoxLang now gives you the flexibility to choose.

// Maximum compression for archival
bx:zip compressionLevel="9"

// Balanced compression (default)
compress( compressionLevel: 6 )

// Fast compression for development
compress( compressionLevel: 1 )

Pretty JSON Serialization Finally! You can now generate beautifully formatted JSON with the new pretty parameter in jsonSerialize(). Perfect for configuration files, debugging, and human-readable data storage.

config = {
    database: "mysql",
    port: 3306,
    features: ["ssl", "compression", "caching"]
};

// Before: {"database":"mysql","port":3306,"features":["ssl","compression","caching"]}
compactJson = jsonSerialize( config );

// New: Pretty formatted JSON
prettyJson = jsonSerialize( config, pretty=true );
/* Output:
{
  "database" : "mysql",
  "port" : 3306,
  "features" : [ "ssl", "compression", "caching" ]
}
*/

Powerful New Array & Collection Operations

Introducing xNone() Functions The new xNone() family of functions lets you elegantly check if no elements in your collections match specific criteria. Available for arrays, lists, queries, and structs with both BIF and member function syntax.

// Array example - check if no even numbers exist
numbers = [ 1, 3, 5, 7, 9 ];
hasNoEvens = numbers.none( num -> num % 2 == 0 ); // true

// Product catalog example
products = [
    { name: "laptop", price: 999, inStock: true },
    { name: "phone", price: 599, inStock: true }
];

// Verify no out-of-stock items
allInStock = products.none( product -> !product.inStock ); // true

// Query example - check user data
users = queryNew( "name,age,status", "varchar,integer,varchar", [
    [ "Alice", 25, "active" ],
    [ "Bob", 30, "active" ]
] );

hasNoMinors = users.none( row -> row.age < 18 ); // true

🚀 Performance & Reliability Improvements

Revolutionary Query Concurrency

We've completely overhauled query concurrency handling, eliminating inconsistencies when multiple threads add data to queries simultaneously. Your multi-threaded applications will now run more reliably than ever.

Intelligent Caching Upgrades

  • Lazy Cache Expiration: Memory usage optimized with smarter expiration timing
  • Concurrency Fixes: Resolved cache entry collisions and timing issues
  • Performance Boost: Faster cache operations across the board

HTTP Response Compression

BoxLang now automatically compresses HTTP responses, significantly reducing bandwidth usage and improving page load times for your users.

🛡️ Enhanced Security & Developer Experience

Binary Integrity Verification

Every BoxLang binary now comes with cryptographic checksums, ensuring the integrity and authenticity of your downloads. Perfect for CI/CD pipelines and security-conscious deployments.

# GitHub Actions example
- name: Verify BoxLang Binary
  run: |
    wget https://downloads.boxlang.io/boxlang-1.3.0.jar.sha256
    sha256sum -c boxlang-1.3.0.jar.sha256
    echo "Binary integrity verified ✓"

Comprehensive Documentation

We've added extensive examples throughout our documentation for Built-in Functions and Components, making it easier than ever to learn and implement BoxLang features.

Enhanced Command Line Tools

All command-line tools now support --help and -h flags:

  • Mini Server
  • Feature Audit
  • CFTranspiler
  • Scheduler
  • BoxRunner
  • And more!

🔧 Critical Bug Fixes

Image Processing Resolved

  • Fixed scaleToFit creating black images
  • Resolved image resize functionality when used as member function

Database & Transaction Improvements

  • JDBC transactions now properly use app-default datasources
  • Fixed DATETIME parameter aliasing in prepared statements
  • Better handling of named datasources in queries

Mathematical Operations

  • Timestamp math operations now properly cast as fractional days for CFML compatibility
  • fix() function behavior now matches Lucee's implementation exactly

File Handling & HTTP

  • Resolved HTTP errors during file uploads
  • Fixed unnecessary disk writes for multi-part form fields
  • Better servlet path handling with ../ patterns

🎯 CFML Compatibility Enhancements

We continue to strengthen BoxLang's CFML compatibility with improvements like:

  • CFQuery parameter mapping (cfsqltype to sqltype)
  • Enhanced CFCatch support
  • Better parallel processing behavior
  • Improved class metadata handling

📈 Upgrade Recommendation

We strongly recommend all users upgrade to BoxLang 1.3.0. This release delivers substantial improvements in:

  • Reliability: Major concurrency and caching fixes
  • Performance: HTTP compression and optimized operations
  • Developer Experience: Better documentation, tooling, and debugging
  • Security: Binary checksums and scope protection

Download

Please visit our download page or our quick installation guides to upgrade your installation.

Professional Open Source

BoxLang is a professional open-source product, with three different licences:

  1. Open-Source Apache2
  2. BoxLang +
  3. BoxLang ++

BoxLang is free, open-source software under the Apache 2.0 license. We encourage and support community contributions. BoxLang+ and BoxLang ++ are commercial versions offering support and enterprise features. Our licensing model is based on fairness and the golden rule: Do to others as you want them to do to you. No hidden pricing or pricing on cores, RAM, SaaS, multi-domain or ridiculous ways to get your money. Transparent and fair.

BoxLang Subscription Plans

BoxLang is more than just a language; it's a movement.

Join us and redefine development on the JVM Ready to learn more? Explore BoxLang's Features, Documentation, and Community.

Join the BoxLang Community ⚡️

Be part of the movement shaping the future of web development. Stay connected and receive the latest updates on Into the Box 2025, product launches, tool updates, and more.

Subscribe to our newsletter for exclusive content.

Follow Us on Social media and don’t miss any news and updates:

Join the BoxLang and CFML legends at Into the Box 2025. Let’s learn, share, and code together for a modern, cutting-edge web development future.

Add Your Comment

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.

Victor Campos
Victor Campos
December 13, 2025
12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025