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 { init, transpile } from '@zntc/core';

init();

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

Transpile

1K LOC · TypeScript

2.6 ms

Bundle

10 modules

19 ×

faster

vs rolldown (small)

340 +

Doc pages

ko · en

As of 2026-05-06 · darwin arm64 · 5-run median

Bundle performance

small (10 modules)
3.00 ms (1st)

vs Bun 6.68 · esbuild 8.84 · rolldown 50.5 · rspack 58.8 ms

medium (1000 modules)
17.5 ms (1st)

vs Bun 20.2 · esbuild 23.9 · rolldown 67.8 · rspack 84.2 ms

large (5000 modules)
80.7 ms (2nd)

vs Bun 67.6 · esbuild 86.1 · rolldown 145 · rspack 211 ms

2026-05-11 · darwin arm64 · 5-run median · fan-out tree fixture (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.