Skip to content
Tech News
← Back to articles

Rewriting Bun in Rust

read original more articles

Disclosure: Bun was acquired by Anthropic in December 2025. I and others on the Bun team work at Anthropic. I used a pre-release version of Claude Fable 5 for much of the Rust rewrite.

Bun started as a line-for-line port of esbuild's JavaScript & TypeScript transpiler from Go to Zig. I wrote my first line of Zig on April 16, 2021. I bet on Zig after seeing the single-page Zig Language Reference on Hacker News and getting really excited about the low-level control and care for performance.

From the start, Bun's scope was massive:

JavaScript, TypeScript, and CSS transpiler, minifier, and bundler

npm-compatible package manager

Jest-like test runner

Node.js & TypeScript-compatible module resolution

HTTP/1.1 & WebSocket client

Node.js API implementations like fs , net , tls , and dozens of other modules

The initial version of Bun was written by me in 1 year, in a cramped Oakland apartment, pre-LLM, in Zig. The default outcome for ambitiously-scoped projects like Bun is joining the graveyard of dead side projects on a GitHub profile page. Zig made Bun possible. I would never have been able to build this much in 1 year if it wasn't for Zig.

... continue reading