build
Erase, do not re-print
Types are removed in place, so every surviving byte keeps its offset and stack traces point at your source. 145× tsc, 4.9× esbuild.
Native binary · TypeScript 5.9 syntax
Transpile, bundle, roll up declarations and type-check — one binary, no Node.js in the hot path.
$ zlow build src/ --out-dir dist/
241 files · 11 ms · tsc: 1,591 ms
$ zlow check src/
241 files checked in 41 ms
11 ms
zod, transpiled
170 MB/s
in process
0.9 ms
startup
3,181
tsc agrees
Interleaved rounds, median of seven. The harness refuses to print a ratio unless every tool emitted the same file count — no winning by doing less work.
| Command | rxjs · 251 files | zod · 241 files |
|---|---|---|
tsc --noCheck | 754 ms | 1,591 ms |
| esbuild | 49 ms | 54 ms |
bun (Bun.Transpiler) | 35 ms | 56 ms |
zlow build | 10 ms | 11 ms |
tsc 5.9.2 · esbuild 0.28.1 · bun 1.3.1 · tsgo 7.0.0-dev · oxc-transform 0.143.0 · swc 1.15.47. In process, per file: zlow 1.39 µs, oxc 2.02 µs, swc 15.79 µs.
build
Types are removed in place, so every surviving byte keeps its offset and stack traces point at your source. 145× tsc, 4.9× esbuild.
check
Two commands, on purpose: transpile speed cannot regress as the checker grows. 41 ms on zod — 8× tsgo, 46× tsc.
bundle
One ES module or split chunks, then every export diffed against esbuild’s by running both. rxjs lands at 0.96× its size with no minifier.
api
A native addon rather than a spawn: 1.5× oxc, 11× swc. Pipe and spawn fallbacks sit behind it, so it never simply fails.
Six platform binaries; npm downloads only yours. Your tsconfig.json already works.
npm install --save-dev zlowzlow build src/ --out-dir dist/ --watch
zlow check src/ # type-check only
zlow bundle src/index.ts --tree-shake
zlow declarations src/index.ts --rollupOne rule governs the lot: no silent wrongness. An option zlow cannot honour is a hard error with nothing written, never output that merely looks right.
Transpile, source maps, declarations, project plumbing and the checker ship today; bundling is in progress. Full tsc parity is a non-goal for v0 — build speed is the product.
Every figure here is a reproducible measurement. Run the benchmarks yourself.