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.

Install ZZ
curl -fsSL https://zz-lang.pages.dev/install.sh | sh

Why 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 playground
users.zz
struct 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}>")
}
1. Ada <ada@example.com>
2. Grace <grace@example.com>

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.

BenchmarkZZ AOTGoRust
Channel ping-pong (round-trip)~300ns~1050ns~320ns
CPU intensive17ms71ms15ms
Concurrency stress240ms812ms254ms
Memory alloc174ms271ms268ms
HTTP throughput56,236 rps52,780 rps49,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.