Rewriting Bun in Rust bun.com
Jarred Sumner’s reason for the rewrite is not that Zig was slow. It is that Bun kept shipping use-after-free crashes, double frees and leaks in things like node:zlib, node:http2 and the CSS parser, and style guides plus code review were not catching them. Rust’s borrow checker enforces at compile time what Bun had been trying to enforce by discipline.
The execution is the striking part. Excluding comments, Bun was 535,496 lines of Zig. Sumner ran four worktrees with sixteen Claude instances each, about 64 at once, with every implementer’s diff handed to two independent reviewers told only to find bugs. Compiler errors became a work queue, roughly 16,000 of them. It took 11 days, 3 to 14 May, 6,502 commits, peaking at 695 commits an hour, and around $165,000 in API pricing.
His summary of the staffing: With 1 engineer using Fable & closely monitoring Claude Code, we went from start to 100% of the test suite passing on all platforms in 11 days. Over 1.4 billion test assertions ran, all six platforms green on 14 May. Nineteen regressions were introduced and all fixed; about 4% of the final code is unsafe.
Gains were modest where you would expect and large where memory was the problem: HTTP throughput up 2.8% to 4.8%, binaries around 20% smaller on Linux and Windows, and a leak across 2,000 builds falling from 6,745 MB to 609 MB. Worth reading with the caveat that this is the Bun team reporting on Bun, using an Anthropic model to sell a rewrite it had already committed to. The closing thought is the one that travels: One engineer can do a lot more today than a year ago.