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

SocketBox: Deploying Behind a Load Balancer

SocketBox: Deploying Behind a Load Balancer

Welcome back to our series on SocketBox - a websocket module for CommandBox + BoxLang. this is part 2 of a 4 part series about the SocketBox library.

Jacob Beers
Jacob Beers
November 17, 2025
BoxLang Thanksgiving Week: Code Smarter, Modernize Faster! šŸ”„

BoxLang Thanksgiving Week: Code Smarter, Modernize Faster! šŸ”„

(November 24th–28th, 2025)

This Thanksgiving week, Ortus Solutions is doing more than offering deals or discounts, we’re helping developers and companiesĀ modernize their CFML applicationsĀ and take the next big step into theĀ BoxLang era.

If you’ve ever wonderedĀ how ready your codebase is to move to BoxLang, this is your chance to find out, directly from our experts!

Maria Jose Herrera
Maria Jose Herrera
November 14, 2025
Breaking the CFML Barrier: Going Serverless on AWS Lambda with BoxLang — by Dan Card

Breaking the CFML Barrier: Going Serverless on AWS Lambda with BoxLang — by Dan Card

Like most in the CFML community, I’d heard about serverless for years but never dived into it for a host of reasons. One of these ( and a pretty major one! ) was an irrational avoidance of all things Java and being used to the ease of spinning up a CFML instance at other hosting locations.

However, as I started to have more and more small projects and personal tools that were a help to my day-to-day workflow, the cost to have these projects ā€œalways onā€ in a running instance or on EC2 was slowly, if not rapidly, becoming too expensive. This economic incentive, and the advent of BoxLang, were enough to overcome my reservations and the results were definitely worth the experiment.

Dan Card
Dan Card
November 13, 2025