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

BoxLang Jsoup: Powerful HTML Parsing, Cleaning and Fluent Navigation

BoxLang Jsoup: Powerful HTML Parsing, Cleaning and Fluent Navigation

We're excited to announce the release of bx-jsoup, a powerful new BoxLang module that brings enterprise-grade HTML parsing and cleaning capabilities to your applications. Built on top of the proven Jsoup library, this module provides developers with safe, flexible tools for handling HTML content while maintaining BoxLang's signature ease of use. It also enhances the core document classes to provide you with a fluent BoxDocument result that you can navigate, query, and even convert your HTML representation to XML or JSON.

Luis Majano
Luis Majano
July 15, 2025
CBWire: Smarter UIs, Simpler Development!

CBWire: Smarter UIs, Simpler Development!

CBWire isn’t just a productivity boost, it’s a shift in how we think about building modern web apps in CFML. It empowers developers to create rich, responsive interfaces while keeping development clean, fast, and focused on what matters.

If you’re building ColdBox applications and want to streamline your front-end work, CBWire is one of the most impactful tools you can add to your stack.

Maria Jose Herrera
Maria Jose Herrera
July 14, 2025
Ortus Monthly Digest: June 2025

Ortus Monthly Digest: June 2025

June was a transformative month at Ortus Solutions as we crossed the halfway point of the year. With major product updates, powerful community engagements, and continued improvements across the BoxLang ecosystem, our mission to modernize development and empower engineers took center stage. Whether you're a longtime member of the Ortus community or just joining us, here's everything we accomplished in June packed with announcements, tools, and opportunities to grow.

Victor Campos
Victor Campos
July 08, 2025