Reference
Install
One line, on macOS on Apple silicon or Linux, with or without Rust installed:
curl -fsSL https://ix.dev/blaze | shThen, in a project of yours, blaze run. Change a function and run it again: the Finished line now says [blaze] (blaze's engine), which means blaze built it, not cargo. What to do next: Usage.
blaze runWhat you need
- macOS on Apple silicon, or Linux on x86-64 or ARM64. Intel Macs are not supported, and neither is Windows yet (platforms).
- On Linux, glibc 2.34 or newer: RHEL 9, Debian 12, Ubuntu 22.04 and anything newer. Alpine and other musl systems are not supported; the installer says so.
- A C compiler for linking:
gccorccon Linux, Apple's command line tools on macOS (xcode-select --install). - In a container, user namespaces. Build scripts and proc macros run in a sandbox made of Linux namespaces, which Docker's default seccomp profile refuses: run the container with
--security-opt seccomp=unconfined, or setBLAZE_SANDBOX=offto run them outside a sandbox, as cargo does. - Memory to spare. blaze's background process holds a few GB for a small project and tens of GB for the largest (numbers).
You do not need Rust or rustup. blaze is its own toolchain: it downloads its pinned nightly once into ~/.blaze (rustc, cargo, the standard library and its source, about 100 to 130 MB), or uses rustup's copy of that nightly when it has one. It builds your project with that nightly whatever its rust-toolchain.toml says, so stable code and #![feature(...)] code both build (why).
What the installer does
It downloads the build for your machine from the releases, checks it against the published checksums, puts blaze and the programs it runs in ~/.cargo/bin, and has blaze download its Rust. It asks nothing. Run it again to upgrade.
Releases are dated, 0.YYYYMMDD.N. A canary is published whenever main has changed and main's build of it passes; a canary whose commit then passes main's unit tests on every platform and the heavy tests (building and testing bun, servo, cargo, zed and others, and beating cargo on them) becomes the stable release, which the installer installs. End the line with | sh -s -- --channel canary for the newest canary, or | sh -s -- --version 0.YYYYMMDD.N for a given release; --help says what else it takes.
With Nix
nix profile install github:indexable-inc/blaze
nix run github:indexable-inc/blaze -- build # try it without installingNix compiles blaze from source; there is no binary cache yet. In a flake, take blaze.packages.${system}.blaze from the input github:indexable-inc/blaze.
Building blaze itself
Every way to build blaze itself: contributing.
Discussion
Questions, corrections, ideas: anything about this page.
Sign in with GitHub to comment.

