Clojure beyond the JVM — native binaries, WebAssembly, instant startup.
We build independent language runtimes in Zig — from-scratch implementations focused on fast startup, small binaries, and deep WebAssembly integration.
ClojureWasm — Clojure Runtime in Zig
A full-scratch Clojure implementation. No JVM, no transpilation.
- ~4 ms startup / ~4 MB binary (single executable)
- 1,130+ vars across 30+ namespaces (651/706 clojure.core)
- Dual backend: bytecode VM (with ARM64 JIT) + TreeWalk interpreter
- deps.edn compatible (git deps, local deps, aliases)
- nREPL server with CIDER support
cljw build app.clj -o app— standalone binary, no runtime needed
zwasm — WebAssembly Runtime in Zig
A fast, spec-compliant WebAssembly runtime.
- Full Wasm 3.0 support (all 9 proposals including GC, SIMD, exception handling)
- 523 opcodes (236 core + 256 SIMD + 31 GC)
- Register IR with ARM64 / x86_64 JIT
- Wins 14/23 benchmarks vs wasmtime, with ~43x smaller binary
- WASI support (file I/O, clock, random, args, environ)
A ClojureScript-to-JavaScript compiler. Early stage.
- Try it:
zig build && ./zig-out/bin/cljw -e '(println "hello")' - Report issues on each project's repository
- Sponsor development