The blazing fast polyglot toolkit

Compilers and transpilers you can run from one binary

  • 4.8×

    faster than esbuild

  • 296×

    faster than Gradle

  • 20.5×

    faster than CPython

  • 16.3×

    faster than rustc

  • 6.7×

    faster than go

Install
npm install @zlow/cli

Explore samples

Explore a sample

Open the source, the config zlow reads, and the command that builds it.

is the integration. zlow build reads outDir and include, then writes JavaScript there.

export function add(a: number, b: number): number {
  return a + b;
}
{
  "compilerOptions": {
    "outDir": "dist",
    "sourceMap": true
  },
  "include": ["src"]
}
Terminal
$ zlow build src/ --out-dir dist/

is the integration. The entry is , and is compiled with it.

fun entry(): Double {
    return add(1.0, 2.0)
}
fun add(a: Double, b: Double): Double {
    return a + b
}
{
  "language": "kotlin",
  "entry": "src/main.kt"
}
Terminal
$ zlow native .

is the integration. The entry is , and is compiled with it.

def entry() -> float:
    return helper() + 1.0
def helper() -> float:
    return 2.0
{
  "language": "python",
  "entry": "src/main.py"
}
Terminal
$ zlow native .

is the integration. The entry is , and is compiled with it.

package main

func entry() float64 {
    return add(1.0, 2.0)
}
package main

func add(a float64, b float64) float64 {
    return a + b
}
{
  "language": "go",
  "entry": "main.go"
}
Terminal
$ zlow native .

is the integration. The entry is , and is compiled with it.

fn entry() -> f64 {
    helper(1.0, 2.0)
}
fn helper(a: f64, b: f64) -> f64 {
    a + b
}
{
  "language": "rust",
  "entry": "main.rs"
}
Terminal
$ zlow native .

is the integration. The entry is , and is compiled with it.

double entry() {
    return step(1.0);
}
double step(double x) {
    return x + 1.0;
}
{
  "language": "cpp",
  "entry": "main.cpp"
}
Terminal
$ zlow native . --emit-llvm kernel.ll

Lightning fast

Same TypeScript. Less waiting.

zlowup to 202× faster than tsc
22 msrxjs
24 mszod
esbuild
146 msrxjs
115 mszod
bun
189 msrxjs
566 mszod
oxc
197 msrxjs
210 mszod
swc
405 msrxjs
344 mszod
tsc
2,248 msrxjs
4,848 mszod

Same kernel. Minutes become milliseconds.

zlowup to 296× faster than gradle
139 mscompile
gradle
41,211 mscompile

Same kernel. The interpreter walks the loop; the binary just runs it.

zlowup to 20× faster than cpython
32.3 msentry()
cpython
661 msentry()

Same kernel. The gc binary walks the call chain; the LLVM binary just runs it.

zlowup to 6.7× faster than go
1.4 msentry()
go
9.1 msentry()

Same kernel. The rustc binary walks the branches; the LLVM binary just runs them.

zlowup to 16× faster than rustc
8.7 msentry()
rustc
141.3 msentry()

Same kernel. Both sides are -O2 binaries; only entry() is timed.

zlowup to 1× faster than clang++
6.4 msentry()
clang++
6.4 msentry()
Branchy kernel, both -O2. 6.4 ms vs 6.4 ms is below the A-vs-A floor. Across five kernels the only gap above the floor is recursive at 1.1×, and that Clang spread is 27%. 60/60 fixtures match Clang on bits.

Fully featured

A faster TypeScript toolchain. Transpile, check, bundle, and ship from one binary.

Compile the hot path to native. Keep writing Kotlin.

Compile the hot path to native. Keep writing Python.

Compile the hot path to native. Keep writing Go.

Compile the hot path to native. Keep writing Rust.

Compile the hot path to LLVM. Keep writing C++.

Packages too

The same binary installs dependencies for TypeScript, Kotlin, and Go. Exact versions, a lock file, and a checksum on everything it keeps.