Skip to content

v0.2.2: Blaze

Choose a tag to compare

@github-actions github-actions released this 27 Jun 02:56
7a3eba0

Burn v0.2.2: Codename BLAZE

BURN: Polyglot, deterministic, sandboxed WebAssembly runtime.

🚀 The polyglot release. afterburner goes from a JavaScript/TypeScript sandbox to a SINGLE RUNTIME that runs, compiles, and packages eight languages, each into a self-contained WASM artifact, with zero configuration. 🎉

🌐 Languages

  • 8️⃣ Eight languages, one runtime: JavaScript, TypeScript, Python, Ruby, Rust, Go, C, and C++. Every language gets burn run, burn repl --lang, burn compile, burn package, and a burn new --lang scaffold.
  • 🐍 Python, zero-config: burn run script.py works out of the box and imports the scientific stack (numpy, pandas, polars). Network sockets and a durable filesystem are available to Python programs.
  • 💎 Ruby, zero-config: burn run script.rb and burn repl --lang ruby run a self-contained Ruby with no setup; gem dependencies are resolved and vendored.

⚙️ Compile to WebAssembly

  • 📦 Every language compiles to a self-contained .afb blob: Python and Ruby pack their interpreter, your source, the standard library, and dependencies into one content-addressed WebAssembly artifact; Rust, Go, C, and C++ compile natively to wasm32-wasip1; JavaScript and TypeScript run on the JS engine. The artifact runs anywhere afterburner runs, with no recompile. 🔁
  • 🧩 Multi-module projects: C/C++/Rust/Go multi-file programs compile as one WASI command; Python and Ruby packages resolve sibling imports.

🔗 Dependencies

  • 📥 burn install for pip, gem, and npm: one command resolves and vendors dependencies across all three ecosystems.
  • 🔒 One lockfile: burn.lock v2 records pip, gem, and npm dependencies and interoperates with requirements.txt, Gemfile, and package.json. It is loud 📣 when a manifest and the lock disagree.
  • ✈️ Offline: vendored wheels and gems mount at run time; no network is needed after the first resolve.

🛡️ Runtime and sandbox

  • Zero configuration: no environment variables to run a program. Language runtimes are embedded in the binary or fetched once into ~/.burn, and everything works offline thereafter.
  • 🔐 Sealed by default: a program gets no filesystem, network, or environment access unless granted. --allow-fs-read, --allow-fs-write, --allow-net, and --allow-env grant narrowly; -A allows all.
  • 🧠 Size-agnostic memory: the runtime sizes memory to the workload (a 4 GiB growable default), configurable per run.

🏗️ Scaffolding and tooling

  • 🆕 burn new / burn init --lang: per-language project templates, with the language recorded in the package manifest.
  • 🚦 Toolchain preflight: burn compile checks for the required toolchain up front and fails with a clear message instead of a cryptic exit.

⬇️ Install

The one-liner installer auto-detects your OS + architecture, fetches + verifies the right binary, and updates your $PATH:

# Linux + macOS
curl -fsSL https://afterburner.sh | sh
# Windows (PowerShell)
iwr -useb https://afterburner.sh | iex

Manual install

Or grab a tarball directly. Linux + macOS:

# Linux x86_64
curl -L https://github.com/afterburner-sh/afterburner/releases/download/v0.2.2/burn-0.2.2-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv burn-0.2.2-x86_64-unknown-linux-gnu/burn /usr/local/bin/

# Linux aarch64
curl -L https://github.com/afterburner-sh/afterburner/releases/download/v0.2.2/burn-0.2.2-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv burn-0.2.2-aarch64-unknown-linux-gnu/burn /usr/local/bin/

# macOS arm64 (Apple Silicon)
curl -L https://github.com/afterburner-sh/afterburner/releases/download/v0.2.2/burn-0.2.2-aarch64-apple-darwin.tar.gz | tar xz
sudo mv burn-0.2.2-aarch64-apple-darwin/burn /usr/local/bin/

Windows x86_64 (PowerShell):

# Download + extract + install to %USERPROFILE%\.local\bin
$ver = "0.2.2"
$url = "https://github.com/afterburner-sh/afterburner/releases/download/v0.2.2/burn-$ver-x86_64-pc-windows-msvc.zip"
$dst = Join-Path $env:USERPROFILE ".local\bin"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
Invoke-WebRequest -UseBasicParsing -Uri $url -OutFile burn.zip
Expand-Archive -Path burn.zip -DestinationPath . -Force
Move-Item -Force "burn-$ver-x86_64-pc-windows-msvc\burn.exe" "$dst\burn.exe"
Remove-Item -Recurse -Force burn.zip,"burn-$ver-x86_64-pc-windows-msvc"
# Add $dst to PATH for the current session (persistent: System Properties > Environment Variables)
$env:Path = "$dst;$env:Path"

Windows ARM64: install the x86_64 build above. Windows 11 ARM64 ships with transparent x64 emulation, so the x86_64 binary runs unmodified.

Intel macOS: not in the release matrix (GitHub's macos-13 runner is end-of-life). Build from source, see the repo README.

✅ Verify

Each archive ships with an accompanying .sha256 file.

🎁 Bundled features

Built with --features release-cli: bin + wasm + native + adaptive + thrust + flow + host-http + ts + all-shadows.