Blog

BoxLang 1.0.0 RC1 Launched

Luis Majano February 18, 2025

Spread the word

Luis Majano

February 18, 2025

Spread the word


Share your thoughts

🚀 BoxLang Release Candidate 1 is Here! 🚀

After nearly a year of relentless iteration, rigorous testing, blood, sweat, setbacks, lots of praying, tears, and over 1,000 resolved tickets, we proudly announce the first Release Candidate (RC1) of BoxLang! With 27 beta versions behind us, we are now on the final stretch toward the official 1.0 release.

This milestone ensures that most of our libraries are fully compatible and certified for BoxLang, making it production-ready. RC1 delivers significant bug fixes, performance optimizations, and stability enhancements, enabling teams to deploy and fine-tune their applications in real-world environments confidently. We strongly encourage the community to start running production workloads now—your feedback will be instrumental in refining BoxLang ahead of the final release.

It has been a true test of faith to get to this point. We are a family/faith based company trying to make an impact on this software world. We are not big tech, we don't have VC cash to burn, we have passion that burns. Please enjoy and give us your feedback.

Licenses Available TODAY!

Additionally, we are thrilled to open up support license subscriptions (https://www.boxlang.io/plans) for BoxLang +/++, offering enterprise-grade support, priority fixes, and exclusive benefits. As an introductory offer, all licenses are available at 50% off for February. In March, with the release of RC2, discounts will adjust to 25% off—scaling down progressively until our official launch at Into The Box 2025 (www.intothebox.org).

These subscriptions are super important for the continued development and vision of BoxLang. The majority of what we do is open-source. We plant in you and your companies. Please consider supporting us in this collective vision.

Let me also remind you that our Visionary Licenses will cease to be offered by the end of this month. Visionary licenses are unique for 10 years and 5 years of support. If you are interested in securing a visionary license, please email us at sales@ortussolutions.com.

Production Tips

We encourage you to pre-compile your applications using our BoxLang compiler for incredibly safe and high-performance deployments since no parsing is involved. Combined with our new trusted cache settings, your applications will fly and be highly performant.

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-rc.1

🚀 New Features

BL-1065 Make sure execution exceptions are propagated to an `exception.log` for all runtimes

BL-1070 Create getHTTPTimeString bif in the CFML Compat Module

BL-1071 Missing bif: createTime()


🔧 Improvements

BL-1020 returns 500 status code when hitting the default error page

BL-1027 Allow annotation values of unquoted strings

BL-1028 allow RHS of castas operator to omit quotes

BL-1029 default output to true in Application classes

BL-1034 Disable external DTD validation

BL-1050 Migrate usage of LoggerFactory.getLogger to the internal BoxLang logger classes in the core

BL-1052 BIF and Component abstract objects now have a logger that maps to a `runtime` logger for ease of use

BL-1054 Favor native java methods on a struct if there is a key of that name, but it's not a function

BL-1062 Improve boxpiler selection by using the interface not classes or direct implementations


🐛 Bug Fixes

BL-816 Abort should not fire the `onRequestEnd` method ( or it should fail quietly )

BL-1008 Struct.put Usage Throws Error

BL-1023 BX-ORM: When First Request to Application is a CFC, the application scope is undefined when starting ORMApp attempts to instantiate

BL-1025 numeric key access of struct failing for BigDecimal keys

BL-1030 directoryList does not sort by name

BL-1031 Too many pattern letters: m

BL-1032 Trivial: Typo in error message

BL-1033 thread attribute scope needs to be headlessly accessible

BL-1035 structget() incorrectly returning true with cfml-compat installed

BL-1037 String caster doesn't work on char[] and produces incorrect results for Character[]

BL-1038 class dump template doesn't work with compat module

BL-1039 Access and mutation of native Java unboxed arrays doesn't work

BL-1040 Query objects do not allow complex data when adding columns via `queryAddColumn()` with no data type.

BL-1041 Can't use EMail as a returntype from EMail object

BL-1043 shebang detection not working and skipping execution to the REPL

BL-1044 isValid uuid returns false

BL-1045 Error executing dump template

BL-1047 default string representation of exception object

BL-1048 Dereferencing property on Java class not calling getter

BL-1049 Jakarta servlet removed response.setStatus( int, String ) from API

BL-1051 Typo in exception string for parseDateTime

BL-1053 getDirectoryFromPath breaks when passed a null value

BL-1055 Durations created by `createTimespan` can't be casted to strings

BL-1058 `this` scope can no longer be mutated

BL-1059 final access modifier with explicit static scope on assignment not working

BL-1060 static method access on non-imported identifer not working

BL-1061 boxpiler was defaulting to javaboxpiler internally, remove it, it should be null and seeded later

BL-1066 isSimpleValue returns true on Exception in Compat Mode

BL-1068 QueryParam: SQL Server Unknown Column Type `datetime`

BL-1069 ParseDateTime failure with `hh:nn a` mask - e.g. `03:00 PM`

BL-1075 onRequestEnd() not firing for on class requests

Add Your Comment

Recent Entries

ColdBox Training: From Hero to Superhero – Master ColdFusion and BoxLang Development

ColdBox Training: From Hero to Superhero – Master ColdFusion and BoxLang Development

Are you ready to take your ColdBox development skills for ColdFusion and BoxLang to the next level? Whether you're new to ColdBox or looking to sharpen your expertise, our ColdBox From Hero to Superhero training is the perfect opportunity to become a ColdFusion and BoxLang powerhouse.

Why Attend?

This hands-on training is designed to help ColdFusion and BoxLang developers level up their ...

Cristobal Escobar
Cristobal Escobar
February 19, 2025
Meet Raymond Camden: BoxLang Advocate!

Meet Raymond Camden: BoxLang Advocate!

We’re thrilled to announce that Raymond Camden, a leading voice in the CFML community, is joining us as a BoxLang Advocate. Currently collaborating with us as a contractor, Raymond brings years of web development experience and a passion for simplifying complex technologies. His expertise makes him the perfect advocate to explore BoxLang, a modern, CFML-compatible programming language.

Maria Jose Herrera
Maria Jose Herrera
February 19, 2025
Meet BoxLang at DevNexus 2025!

Meet BoxLang at DevNexus 2025!

We’re thrilled to announce that Ortus Solutions will be a Silver Sponsor at DevNexus 2025, one of the largest and most exciting Java conferences in the world! Our team will be on-site, spreading the word about BoxLang and its latest advancements, designed specifically to empower Java developers with dynamic, modular, and productive development capabilities.

Maria Jose Herrera
Maria Jose Herrera
February 19, 2025