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
tosqltype
) - 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:
- Open-Source Apache2
- BoxLang +
- 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 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:
- https://twitter.com/ortussolutions
- https://www.facebook.com/OrtusSolutions
- https://www.linkedin.com/company/ortus-solutions/
- https://www.youtube.com/OrtusSolutions
- https://github.com/Ortus-Solutions
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