BoxLang is a powerful, multi-runtime dynamic programming language built for the JVM. π Productive, β 100% Java Interoperable, ποΈ Modern & Expressive.
Because of God's grace, this project exists. If you don't like this, then don't read it, it's not for you.
"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; And patience, experience; and experience, hope: And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the Holy Ghost which is given unto us. ." Romans 5:5
Β
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.
- ποΈ Rapid Application Development (RAD)
- π Dynamic, modular, and lightweight
- β 100% Java & JVM-friendly
- π― Multi-runtime: CLI, Web, Lambda, Mobile, and more
- π₯ Not only a language but a framework
Β
Β
BoxLang has been designed to be a highly adaptable and dynamic language to take advantage of all the modern features of the JVM and was designed with several goals in mind:
- Be a rapid application development (RAD) scripting language and middleware.
- Unstagnate the dynamic language ecosystem in Java.
- Be dynamic, modular, lightweight, and fast.
- Be 100% interoperable with Java.
- Be modern, functional, and fluent (Think mixing CFML, Node, Kotlin, Java, and Clojure)
- Be able to support multiple runtimes and deployment targets:
- Native OS Binaries (CLI Tooling, compilers, etc.)
- MiniServer
- Servlet Containers - CommandBox/Tomcat/Jetty/JBoss
- JSR223 Scripting Engines
- AWS Lambda
- Microsoft Azure Functions (Coming Soon)
- Android/iOS Devices (Coming Soon)
- Web assembly (Coming Soon)
- Compile down to Java ByteCode
- Allow backward compatibility with the existing ColdFusion/CFML language.
- Great IDE, Debugger and Tooling: https://boxlang.ortusbooks.com/getting-started/ide-tooling
- Scripting (Any OS and Shebang) and REPL capabilities
You can find our docs here: https://boxlang.ortusbooks.com/
Apache License, Version 2.0.
This project is a professional open source project and is available as FREE and open source to use. However, we also offer a BoxLang +/++ version that is commercially supported and with extra features. Here are some of the features you can get with our commercial plans:
- Professional Support and Priority Queuing
- Remote Assistance and Troubleshooting
- New Feature Requests and Custom Development
- Custom SLAs
- Application Modernization and Migration Services
- Performance Audits
- Enterprise Modules and Integrations
- Much More
Visit us at BoxLang.io Plans for more information about our commercial plans.
JRE 21 is our compiled code JDK Baseline.
Visit our full guide here: https://boxlang.ortusbooks.com/getting-started/installation. You can also use our quick installers below and get started with BoxLang in seconds.
/bin/bash -c "$(curl -fsSL https://downloads.ortussolutions.com/ortussolutions/boxlang/install-boxlang.sh)"
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/ortus-boxlang/boxlang-quick-installer/main/src/install-boxlang.ps1'))
Once installed you will have the following binaries available:
boxlang
- The BoxLang language binaryboxlang-miniserver
- The BoxLang MiniServer binaryinstall-boxlang
- The BoxLang installer scriptsinstall-bx-module
- The BoxLang module installer script
https://boxlang.ortusbooks.com/getting-started/running-boxlang
# Startup the REPL
boxlang
# Execute a script
boxlang myscript.bxs
# Execute a class main() method
boxlang MyClass.bx
# Start the MiniServer
boxlang-miniserver
# Install a single module
install-bx-module bx-pdf
# Install a specific version of a module
install-bx-module bx-compat-cfml@1.11.0
# Install multiple modules
install-bx-module bx-compat-cfml bx-esapi bx-pdf
Once BoxLang is installed, you can quickly get started with a simple "Hello World":
// hello.bxs
println( "Hello, BoxLang World!" )
// Variables and functions
name = "Developer"
function greet( name ) {
return "Welcome to BoxLang, " & name & "!"
}
println( greet( name ) )
Run it:
boxlang hello.bxs
For more examples and tutorials, visit our Getting Started Guide.
BoxLang combines the best of many programming languages with modern JVM capabilities:
- Dynamic Typing with Optional Type Safety: Write code quickly with dynamic types or add type hints for better tooling
- Closures & Lambda Functions: First-class function support with modern syntax
- Java Interoperability: Direct access to Java classes, methods, and libraries
- Modular Architecture: Built-in module system for extensible applications
- Multiple Paradigms: Object-oriented, functional, and procedural programming styles
- Built-in Web Framework: Full-featured web development capabilities out of the box
- Query of Queries: Powerful in-memory query capabilities
- Async/Threading: Built-in concurrency and async programming support
Β
BoxLang has its own IDE based on VSCode that you can use to write, test, and debug your BoxLang code. You can download it from the following link: https://marketplace.visualstudio.com/items?itemName=ortus-solutions.vscode-boxlang
- Syntax Highlighting
- Code Completion
- Code Formatting
- Code Folding
- Code Linting
- Code Navigation
- Code Snippets
- Language Server (LSP)
- Built-in Debugger
- MiniServer Management
- OS Management
- Much More.
Learn more about the BoxLang IDE here: https://boxlang.ortusbooks.com/getting-started/ide-tooling
We welcome contributions to BoxLang! Whether you're:
- π Reporting bugs
- π‘ Suggesting new features
- π Improving documentation
- π οΈ Submitting code changes
Please check our Contributing Guidelines and feel free to submit issues and pull requests.
- JDK 21 (for building BoxLang)
- Gradle (included via wrapper)
git clone https://github.com/ortus-boxlang/boxlang.git
cd boxlang
./gradlew build
If you discover a security vulnerability within BoxLang, please send an email to security@ortussolutions.com. All security vulnerabilities will be promptly addressed.
- π Website
- πΌ Professional Version
- π Documentation
- π¬ Slack
- π Community
- π° Latest News
- πΈοΈ Modules
Support this project by becoming a sponsor or buying a BoxLang +/++ Subscription. Your logo will show up here with a link to your website. Become a sponsor
π Reporting a Bug
- BoxLang: https://ortussolutions.atlassian.net/browse/BL
- BoxLang IDE: https://ortussolutions.atlassian.net/browse/BLIDE
- BoxLang Modules: https://ortussolutions.atlassian.net/browse/BLMODULES
π± Follow us on Social Media:
- π¦ X (Twitter)
- π Facebook
- π LinkedIn
- π₯ YouTube
Made with