Blog

BoxLang 1.0.0 Beta 21 Launched

Luis Majano November 01, 2024

Spread the word

Luis Majano

November 01, 2024

Spread the word


Share your thoughts

This release brings another round of powerful tools and refinements to the BoxLang community, making development more dynamic and robust than ever. We’ve added new capabilities for debugging and tracing, expanded context-sensitive controls for thread management, and introduced new methods for fluent attachment handling.

For deeper flexibility, our improvements enhance configurability, streamline session control, and add deeper levels of JSON serialization management. Plus, we’ve squashed a wide range of bugs, enhancing stability across database connections, date handling, and runtime compatibility with CFML.

In addition, CSRF Token functionality is now provided via the bx-csrf module.

What is BoxLang?

BoxLang is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. BoxLang combines many features from different programming languages, including Java, CFML, Python, Ruby, Go, and PHP, to provide developers with a modern and expressive syntax.

It is also a drop-in replacement for Adobe ColdFusion and Lucee Engines.

How to get started?

Visit our docs at https://boxlang.ortusbooks.com and get coding today. If you want to try it out on the web then go to our online REPL at https://try.boxlang.io. You can also checkout our YouTube playlist: https://www.youtube.com/playlist?list=PLNE-ZbNnndB-40LvAbeSeT2Oi3V2gm_B8

Release Notes

Here are the latest release notes: https://boxlang.ortusbooks.com/readme/release-history/1.0.0-beta21

New Feature

BL-713 Global events for Application events

BL-720 Implement table filter for dbinfo component

BL-721 getComponentList() should also return the declared attributes of a component

BL-722 getFunctionList() should also return the declared arguments of a BIF

Improvement

BL-710 Implement Algorithm Argument for RandRange

BL-716 Set request class loader into thread as context class loader

BL-717 Retain directories in dynamic class loader

BL-728 Add nullIsUndefined flag to control how null variables are handled

BL-729 Don't default properties with no default value to null when compat has enabled nullIsUndefined scope behavior

Bug

BL-638 Passing a null named argument hides outer bindings by the same name

BL-641 Missing BIF - CSRFGenerateToken is now supplied with the bx-csrf module

BL-669 Difference in args vs local variables handling

BL-677 Incompat: metadata annotations from inherited sub classses added to top level class

BL-679 cfloop collection with an array throws casting exception

BL-697 argument collection optional param is null

BL-711 dot access not chaining to static access

BL-712 NPE when calling non-existent Java method

BL-715 Duplicate of cfc instance presenting as struct

BL-718 Key access in StructMapWrapper not working

BL-719 GetTagData(), GetFunctionData() function not implemented, implement in the COMPAT module

BL-724 import name restrictions too strict

BL-726 Assignment not working on static fields of an imported class

BL-727 Adding two ints uneccessarily returns a long

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