Blog

BoxLang 1.0.0 RC2 Launched

Luis Majano March 05, 2025

Spread the word

Luis Majano

March 05, 2025

Spread the word


Share your thoughts

šŸš€ BoxLang Release Candidate 2 is Here! šŸš€

Weā€™re entering the final stretch of our pre-releases, and we couldnā€™t be more excited to introduce RC2! šŸš€ This release marks a major leap in performance and compatibility, the result of over six months of intensive development. Beyond enhanced stability and seamless integration, RC2 delivers game-changing performance optimizations that push the boundaries of efficiency. Get ready for our fastest, most refined release yet!

Feel the Need for Speed šŸš€ šŸ”„

RC2 is blazing fast! šŸš€ Our latest release delivers unmatched performance in both parsing and runtime execution, outperforming Adobe ColdFusion 2021 and 2023 by 25-37% in many scenarios. These results are backed by rigorous certification testing across TestBox, ColdBox, and over 35 modules, ensuring real-world speed and reliability. You can now check all of our repos and see the performance for yourself.

Adobe ColdFusion / Lucee Drop-In Replacement

This means you can seamlessly migrate your Adobe ColdFusion or Lucee applications to BoxLang with no code changesā€”and theyā€™ll run faster, smoother, and across multiple runtimes! šŸš€

But thatā€™s not allā€”our subscription-based licensing can save you over 70% compared to Adobe ColdFusion, with no restrictions on cores or limitations on SaaS and multi-tenant applications. No restrictions. Just pure freedom to scale. šŸ”„

Ray Camden BoxLang Evangelist

Weā€™re excited to welcome Raymond Camden, a renowned leader in the CFML community, as a BoxLang Advocate! šŸŽ‰

Raymond, currently collaborating with us as a contractor, brings deep expertise in web development and a passion for making complex technologies more accessible. His insights and experience make him the perfect advocate to explore and champion BoxLangā€”our modern, CFML-compatible programming language. šŸš€

Read More

Premium Modules Have Landed

We have now our first premium module for BoxLang +/++ subscribers: BX-REDIS. Our bx-redismodule is now available for you to use if you have a subscription. You can also try it out free of charge by installing it today:

# OS
install-bx-module bx-redis

# CommandBox
box install bx-redis

Giving you great capabilities for caching, distributed sessions, pub-subscribe and much more. You can find out about this initial release here (https://forgebox.io/view/bx-redis)

{% embed url="https://forgebox.io/view/bx-redis" %}

Licenses Available!

{% embed url="https://www.boxlang.io/plans" %} www.boxlang.io/plans {% endembed %}

Remember that our support license subscriptions (https://www.boxlang.io/plans) for BoxLang +/++ are available now. Offering enterprise-grade support, priority fixes, premium modules, and exclusive benefits. As an introductory offer, all licenses are available at 25% off for March.

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.2

šŸ”§ Improvements

BL-1021 Explore speed improvements to parser

BL-1084 Support CF syntax of space inside elvis operator

BL-1089 allow getSystemSetting() to default to a non-simple value

BL-1090 bx-compat - Client Scope Listener should not start up or look for cache if client management is disabled

BL-1093 Make miniserver bind to 0.0.0.0 by default

BL-1143 Change order of app shutdown

BL-1147 boxAnnounce() and boxAnnounceAsync() get a poolname so you can announce globally or to the request pools

BL-1148 missing bif: BoxRegisterInterceptionPoints() to register interception points for global or request pools

BL-1149 In BL files, only default output=false in tag-based UDFs

BL-1153 Setup the hikari defaults for connection pooling to modern standards

BL-1155 Update query object to return array of structs into a consolidated method: toArrayOfStructs()

BL-1158 Attempts needed remail of left over isSimplevalue evaluations

BL-1159 Rename bx:module to be bx:component


šŸ› Bug Fixes

BL-1018 esapiEncode does not allow an zero length input string

BL-1024 BX-ORM: Datasource with name [defaultDatasource] not found in the application or globally

BL-1026 `try`/`finally` doesn't always run `finally`

BL-1036 ASM regression - break exiting out of more than just the loop

BL-1056 LinkedHashMap right-hand assignments are always null.

BL-1063 ReEscape result doesn't match ACF

BL-1064 Classes getting cleared in debug mode

BL-1077 Simplify CLI to install modules

BL-1078 cgi items not being found until you access them

BL-1079 encrypt not working with AES and UU

BL-1080 Encrypt Fails when salt is below 16 bytes in length

BL-1082 bx-mail not reading mail configurations

BL-1085 HTTP - Ensure all exceptions are caught and handled

BL-1086 Mail Module not Loading root-level boxlang.json Mail Server Settings

BL-1087 StructUtil.deepMerge wraps arrays in nested array if left hand side contains the same array

BL-1088 Can't set cookies using a struct

BL-1092 Mail: Classloader issues when sending MultiPart email in Servlet Context

BL-1094 `.duplicate()` Member Method Not Available on Struct,DateTime objects, Queries and Arrays

BL-1095 DirectoryCopy Does not Allow Closure for Filter Arg

BL-1096 QueryNew Does not accept array of Columns as only first arg

BL-1097 Compat: CachePut does not allow numeric decimal number of days for timeSpan or idleTime

BL-1099 String Hash Result Different Between Text and Byte Array

BL-1100 Compat: HTTP result.statusCode Does not Include the status text.

BL-1101 HTTP Request for Binary Object casts fileContent to String

BL-1102 Integer caster not always consistent

BL-1103 HTTP Component getAsBinary attribute does not support `true` and `false` boolean arguments

BL-1104 HTTP Component throws an error when `Host` is explicitly passed as a header

BL-1105 HTTP Component Throws Error when sending Binary Content

BL-1106 HTTP getAsBinary should be treated as an explicit request for binary content unless `never` is passed.

BL-1109 HTTP: Query Params Are Being Double Encoded Even When Encode=false

BL-1110 Within a cfmodule, the variables scope is not available within a .each() loop if the .each loop is called in a function within the module.

BL-1111 When a form is submitted but none of the inputs have names and the form scope is dumped, an error is thrown

BL-1112 Type coercion of an numeric argument passed to java constructor is not being done

BL-1113 Function NOT not found

BL-1114 bx-orm - 'Datasource with name [defaultDatasource] not found ...'

BL-1115 bx-orm - Unable to call generated methods from within class

BL-1116 bx-orm - Generated method hasX() is missing support for value comparison

BL-1117 bx-orm - AddX() method fails on many-to-many relationship properties with "bag is null" error

BL-1118 HMAC Method not supporting binary keys

BL-1120 HTTP `file` attribute not implemented

BL-1121 Math Operations Leave trailing zeros after operation when result is whole number

BL-1122 HTTP ACF and Lucee Treat all Unknown or malformed `Content-Type` Headers as a string response

BL-1124 Compat: Default throw error not a type of `Application`

BL-1125 Error compiling - 'in' was unexpected expecting one of ...

BL-1126 this.customtagpaths not respected - Could not find custom tag

BL-1128 Common Text Cert/Key extensions are being read as Binary data

BL-1129 for loop using var and in throws parsing error

BL-1130 Custom Error Thrown Is Being Wrapped in "Error invoking Supplier" exception

BL-1132 FileRead should only ever return strings

BL-1133 DateTime Comparison equals/isEqual discrepancies

BL-1134 DateCompare Issues when Time units are specified

BL-1135 DateAdd No Longer Allowing Decimals

BL-1137 Allow customTagPaths to be relative

BL-1138 EqualsEquals operator should use `equalTo` method of DateTime in compat mode

BL-1139 Cannot pass BoxLang Functions into ScheduledTask

BL-1140 Nested config values for modules do not get replaced by environment variables

BL-1142 thread safety issue in feature audit

BL-1144 Custom setter that assigns to this scope causes stack overflow with implicit accessor invocation

BL-1146 return type of function not always parsing

BL-1150 Invalid stack height when using a ternary in a context that doesn't expect a return value

BL-1151 semicolon not allowed after pre annotation

BL-1152 `variablename` is not supported as a type

BL-1156 Compat: Date Comparisons in Compat should only be precise to the second

BL-1157 len() BIF needs to treat byte arrays as an array, not a string

BL-1160 return not expr parsing error

Add Your Comment

Recent Entries

Building a Web App with BoxLang!

Building a Web App with BoxLang!

Building a Web App with BoxLang: A Hands-On Experience by Raymond Camden

BoxLang, the new JVM-based scripting language from Ortus Solutions, is gaining t...

Maria Jose Herrera
Maria Jose Herrera
March 04, 2025
Into the Box Sessions Round 2 and Team Packs!

Into the Box Sessions Round 2 and Team Packs!

The second round ofĀ Into the BoxĀ sessions is here, packed with incredible new topics, sessions and expert speakers industry leaders in modern CFML getting us modern content and practices you can use to make your coding experience and projects better, faster and easy and expert-led talks on modern web development, serverless applications, cryptography, UI design, and more.

Maria Jose Herrera
Maria Jose Herrera
February 25, 2025
Building Serverless Functions with BoxLang in AWS Lambda!

Building Serverless Functions with BoxLang in AWS Lambda!

The serverless computing model has revolutionized the way we deploy and manage applications, and withĀ BoxLang, itā€™s easier than ever to leverage AWS Lambda for efficient, scalable execution of cloud functions. In a recent blog post, Ray Camden explored the process of building and deploying BoxLang functions in AWS Lambda. Letā€™s take a closer look at how it works!

Maria Jose Herrera
Maria Jose Herrera
February 24, 2025