Open and answer this issue on GitHub.
performance, decision · opened 2026-10-07 · updated 2026-10-09 · 0 comments
Where it stands. The README and the manifesto argue the speed claim in prose. The measurements exist and are thorough (benches/brc naive against tuned Rust, benches/overlap, benches/lockfloor, benches/fallible, the callgrind harness in crates/nikaia/tests/measure.rs, the CLBG programs examples/n-body and examples/k-nucleotide, examples/1brc.nika). They are written for the compiler’s own decisions, though, and a reader deciding whether to try the language never sees a number.
Proposal. One small table near the top of the README, in the roadmap’s style (counted, not believed):
| program | Python | Go | Nikaia | Rust (hand-written) | Nikaia build, cold / warm |
|---|---|---|---|---|---|
| n-body | … | … | … | … | … |
| k-nucleotide | … | … | … | … | … |
| 1BRC (fixed row count) | … | … | … | … | … |
| one HTTP handler, requests/s | … | … | … | … | … |
scripts/bench_table.py or a benches/table/ directory) builds and runs everything and rewrites the table, as scripts/self_hosting.py rewrites the self-hosting badge. It records the machine, the versions and the date beside the table.rustc is where Nikaia is slow, and the cold/warm split (the per-machine std cache of Part III 13.2b, the content-addressed store of ADR-021) shows both the cost and what the cache buys. Leaving it out would be the kind of omission the roadmap refuses elsewhere.To decide. Which comparison languages (Python and Go are the README’s own “easy languages” and the stated target audience; Rust is the floor), whether the HTTP row waits for #121 (many connections at once), and whether CI checks the table against the script’s output or only the script runs.