Enterprise systems language for extreme concurrency & native speed.
Inferred types, pipelines and pattern matching — plus a universal SQL engine, pure-async I/O and tooling that fixes your code. No GC pauses. No boilerplate.
curl -fsSL https://zz-lang.pages.dev/install.sh | shWhy ZZ
Systems performance, scripting ergonomics.
One language from quick script to native binary — concurrency, structs and packages included.
Native AOT compilation
zz build emits optimized native binaries via Clang. Iterate with zz run, ship machine code.
Green-thread concurrency
Lightweight tasks with channels and sub-millisecond round-trips. No OS threads, no async coloring.
Go-style struct embedding
Compose structs by embedding, promote fields and methods. Zero-alloc layouts, no GC pauses.
Built-in package registry
zz add grabs versioned deps into vendor/ with a zz.lock. Publish with zz publish.
Diagnostics that help
Did-you-mean suggestions, fix-it hints and zz check --fix. Errors tell you how to fix them.
Universal SQL access
One query API across SQLite, Postgres and MySQL. Rows decode straight into typed structs.
Familiar, not foreign
Reads like pseudocode. Runs like Rust.
Structs, string interpolation and iterators work the way you expect. Paste this into the playground — it runs in your browser.
Open in playgroundstruct User {id: int, name: str, email: str}
users: [User] = []
users.append(User{id: 1, name: "Ada", email: "ada@example.com"})
users.append(User{id: 2, name: "Grace", email: "grace@example.com"})
for user in users {
println("{user.id}. {user.name} <{user.email}>")
}Benchmarks
Keeps up with Rust. Leaves Go behind.
Channel round-trips and head-to-head AOT runs from bench/performance_check in the ZZ repo. Lower is better, except throughput.
| Benchmark | ZZ AOT | Go | Rust |
|---|---|---|---|
| Channel ping-pong (round-trip) | ~300ns | ~1050ns | ~320ns |
| CPU intensive | 17ms | 71ms | 15ms |
| Concurrency stress | 240ms | 812ms | 254ms |
| Memory alloc | 174ms | 271ms | 268ms |
| HTTP throughput | 56,236 rps | 52,780 rps | 49,085 rps |
What's possible
One language, weekend to production.
From throwaway scripts to shipped services — the same toolchain covers the whole arc.
CLIs & dev tools
Single-file native binaries with fast startup. Argument parsing, fs and env in stdlib.
HTTP services & APIs
Non-blocking server, JSON in one call, connection pooling. From prototype to prod binary.
Concurrent pipelines
Fan-out work across green threads, stream results through channels with backpressure.
Data scripts & ETL
Query SQLite/Postgres/MySQL with the same code, map rows into structs, write JSON out.
Shareable libraries
Version, publish and depend on packages through the built-in registry. No external toolchain.
Benchmarks & perf toys
AOT binaries with predictable latency. Measure channel round-trips in the hundreds of nanos.
Ship something fast this weekend.
One install command. A tour in twenty minutes. Native binaries by dinner.