Skip to content

Zig Native Transpiler & Compiler

Fast, lightweight TypeScript toolchain

A transpiler + bundler written in Zig. JavaScript · TypeScript · JSX · Flow at native speed, with a Vite/Rollup-compatible plugin system.

example.ts
import { transpile } from '@zntc/core';

const { code } = transpile(source, {
  filename: 'input.tsx',
  jsx: 'automatic',
  target: 'es2022',
});
4.1 ms

Transpile

1K LOC · TypeScript

4.3 ms

Bundle

10 modules

11 ×

faster

vs rolldown (small)

340 +

Doc pages

ko · en

As of 2026-05-30 · darwin arm64 · 50-run median

Bundle performance

small (10 modules)
4.3 ms (1st)

vs Bun 5.0 · esbuild 6.5 · rolldown 48 · rspack 56 ms

medium (1000 modules)
16.5 ms (tied 1st)

vs Bun 16.1 · esbuild 19.7 · rolldown 65 · rspack 82 ms

large (5000 modules)
67.6 ms (2nd)

vs Bun 55.2 · esbuild 73 · rolldown 119 · rspack 173 ms

2026-05-30 · darwin arm64 · 50-run median · fan-out tree fixture (see full benchmarks →)

Bundle size — Tree-shake + Minify

Speed is not everything — output size matters too. Real npm libraries bundled + minified with the same input (raw bytes, lower is better).

three
35 KB (1st)

6.2× smaller than esbuild 217 KB · rspack 136 KB (tree-shaking)

effect
114 KB (1st)

1.25–1.69× smaller than esbuild 191 KB · rspack 142 KB

zod · mobx · preact
±10% parity

Essentially on par with esbuild / rolldown / rspack

2026-05-30 · darwin arm64 · 9 real npm libraries · —minify-all (see full benchmarks →)

Why ZNTC

A JS/TS toolchain that combines the strengths of existing tools.

TS

Type stripping

Strip TypeScript annotations, interfaces, enums, and decorators at native speed. Flow has an independent pipeline.

Production bundler

Tree-shaking · code splitting · preserve-modules · sourcemaps. ESM · CommonJS · IIFE output. On-par with rolldown/esbuild.

RN

React Native ready

Metro-compatible bundling · InitializeCore · Hermes bytecode · Flow stripping. Babel migration guide included.

Pluggable

Rollup/Vite-compatible plugin API. Extensible in JS/TS, with Vite · Rollup · AST plugin adapters.

Usage

From a single CLI invocation to Vite integration — pick the style that fits your project.

Terminal window
# install
npm install -g @zntc/core
# bundle
zntc build src/index.ts --bundle --outdir dist
# watch mode
zntc build src/index.ts --bundle --watch

Start building today

First bundle in 5 minutes. Or try it right in the browser via Playground.