v2.3.4 · Windows x64

Write it like a sentence.
Run it like bytecode.

Borax reads almost like English and compiles straight to its own Borax Virtual Machine bytecode — no generated Java source, no javac step in between. Source goes in, a portable .bxc file comes out.

Windows 10/11 · ~120 MB free space · runtime bundled, no separate Java install

Pipeline

From .bx to compiled bytecode, in four honest steps

No hidden Java hand-off. Every stage is a real pass the compiler makes over your program.

01

Preprocess

Comments stripped, indentation measured — the shape of the program is settled first.

02

Parse

An indentation-aware statement tree is built, then checked: no nested functions, no dangling run targets.

03

Compile

The tree is emitted directly to .class bytecode via ASM — no intermediate Java source ever exists.

04

Emit

Classes are serialized straight to a single .bxc bytecode file — no jar, no loose .class files, nothing else needed to run it.

Read it yourself

It's almost English on purpose

A function, a variable, a loop — no braces to balance, no semicolons to chase.

main.bx
function age:
    set age to value "18"
    set age to be global
    say age

// run it
run age
terminal
> borax run main.bx
compiling main.bx -> .borax\tmp\main.bxc
18

process exited normally
What's in the box

Enough language to actually build something

Project-local imports

import pkg.util.bx; pulls in another script in the same project, resolved by the Package Path Server. Prefix with @ to make it optional.

Native JSON & NBT

Parse and query JSON on top of Gson, or read and write a minimal built-in NBT-style binary format — both first-class statements, not a library bolt-on.

Language Server

borax lsp -start runs a project-scoped LSP over a local socket, so editors can autocomplete every importable .bx path.

One-command packaging

borax package compiles every script under src/main/borax/ and lays resources on top, ready to zip into a .bar archive for distribution.

Timestamped error logs

Every syntax, compile, or runtime error is written to its own log file, and the console tells you exactly which one to attach to a bug report.

No JDK required

The Windows installer bundles its own minimal Java runtime. Install Borax, not a JDK.

How it stacks up

Where Borax sits next to Java, Python, and JavaScript

Not a replacement for any of them — a different trade-off: closer to plain English, and closer to the metal than a scripting language.

  Java Python JavaScript Borax
Syntax style Braces, semicolons Indentation, English-ish keywords Braces, semicolons Indentation, almost-English sentences
Execution model Compiled to JVM bytecode Interpreted (CPython bytecode) JIT-interpreted in an engine Compiled directly to its own BVM bytecode
Compile step javac required None None Built in — source to bytecode in one pass, no javac
Distributable unit .class / .jar .py source or a bundled interpreter .js source .bxc compiled bytecode, bundled into a .bar archive for a whole project
Variable declaration int age = 18; age = 18 let age = 18; set age to value "18"
Runtime needed on target machine JRE/JDK Python interpreter A JS engine (browser or Node) None — the Windows installer bundles its own
Best fit Large, typed, long-lived systems Scripting, data work, glue code Browsers and Node servers Small JVM-hosted programs written in plain, readable steps

Borax runs on the JVM like Java, but nothing about writing it looks like Java — that's deliberate.

Before you install

What the installer expects

Borax ships as a self-contained Windows installer — its runtime is bundled inside, so there's nothing else to install first.

Operating system
Windows 10/11
64-bit only
Disk space
~120 MB
Installer + bundled runtime
Memory
< 500 MB
While the Borax Virtual Machine runs a script
Get Borax

One installer. Nothing else to set up.