Fast systems language: native AOT, green threads, zero GC pauses.
Website | Getting started | Learn | Documentation | Contributing
- Native binaries via
zz build, fast iteration viazz run. - Green threads and channels for concurrent pipelines.
- Inferred types, pipelines (
|>), pattern matching. - Diagnostics that suggest fixes, plus
zz fixandzz fmt. - Batteries included: HTTP, JSON, fs, math, SQL.
ZZ is not syntactic sugar on top of Rust. It is an independent language with its own frontend, type checker, tree-walk VM, and AOT backend (ZZ → C → native binary), plus its own standard library.
- Memory without a borrow checker. ZZ has value semantics: functions
receive copies from the programmer's perspective, there are no
references, no lifetimes, no
&/&mut. The compiler/runtime may elide copies internally (copy-on-write, in-place slots), but aliasing is never observable. Rust gives you control via ownership/borrows; ZZ trades that control for simpler reasoning. - Concurrency model. ZZ ships green threads and channels as the default
pipeline primitive. No
async/executors to wire up for the common case. - Scope. ZZ targets services, CLIs, and data pipelines with batteries
included (HTTP, JSON, fs, SQL). It cannot do everything Rust can: no
unsafe, no zero-cost abstractions, nono_std/embedded, no manual layout control. For those, use Rust (including as a ZZ native plugin). - Interop. ZZ plugins speak C ABI (
plugin.zzi); Rust crates can back plugins, but the ZZ side never exposes Rust semantics.
Install (main way, latest GitHub release). Re-run to update:
curl -fsSL https://zz-lang.pages.dev/install.sh | shWindows:
irm https://zz-lang.pages.dev/install.ps1 | iexVerify:
zz --version
zz setup # PATH + shell completions for bash/zsh/fish (run once)Hello world (hello.zz):
name := input("What is your name? ")
println("Hello, {name}!")
zz run hello.zzREPL, check, format:
zz # REPL (:help, :quit)
zz check src/
zz fmt src/Install a project as a tool (~/.zz/bin):
zz install --path .Keep the toolchain healthy:
zz upgrade # self-update to the latest release
zz doctor # audit binary, clang, shell, git, registry (add --fix)See CONTRIBUTING.md for setup, tests, and PRs.
Apache-2.0 — see LICENSE.
