Rust 1.96.0
Skip Cargo. Ship a binary.
Write a numeric kernel in Rust. zlow compiles it to a native binary, no cargo, no rustc-as-driver, no cranelift. If we can't compile it correctly, we refuse it.
Faster than rustc
8.7 ms to run the branchy kernel. rustc -O took 141.3 ms on the same source.
A real binary
The compile path is Rust source to native. No cargo, no rustc-as-driver, no cranelift.
Checked against rustc
78/78 fixtures agree with pinned rustc 1.96.0, or are refused by name.
Callable from your app
Compile the kernel to a shared library and load it through the generated binding.
8.7 ms
to run the kernel
16.3×
faster than rustc
Lightning fast
Same kernel. The rustc binary walks the branches; the LLVM binary just runs them.
What's in v0
A kernel, not a rewrite of the Rust compiler. Keep the app in Rust; compile the hot path.
You can write
- f64 and bool top-level fn
- let / let mut, if, while, loop, break/continue
- arithmetic, comparisons, and boolean ops
- calls between functions in the same project
Not this
- structs, enums, traits, and generics
- strings, arrays, tuples, and references
- for, match, async, and the standard library
- cargo, the crate graph, and use/mod/extern
Fully featured
Compile the hot path to native. Keep writing Rust.
Native binaries
Your numeric core becomes a binary. No interpreter at runtime.
Skip Cargo
One command. No Cargo.toml, no crate graph, no cargo build.
Tiny output
A small native binary; no binary-size comparison is measured yet.
Fast compiles
142 ms to compile the dense corpus (zlow frontend, 32 files, 2 MB).
Familiar Rust
fn, let, if, while, loop, arithmetic — the numeric Rust you already write.
Simple setup
A zlow.json and one command — that’s the whole setup.
Same-project calls
Functions in the project can call each other. No use/mod maze.
No rustc on the path
Source goes straight to native. No rustc as a driver in between.
One project
Every .rs file compiles together. Point zlow at the folder and go.
Clear errors
Out of scope fails loudly. You never ship a binary that almost works.
Matches rustc
Accepted kernels match the compiler you already trust.
Built for the hot path
Compile the numeric core to a shared library the rest of the app can load.
Try it
Install the CLI, add a project file, then compile from that folder.
npm install @zlow/cli
zlow native .