Fetching from the wire…
Top 5 · 2026-05-15 · source-backed
PR #30412 merged into Bun's main branch yesterday. 1,009,257 lines of Rust, generated by Claude agents, replacing the original Zig codebase. The rewrite passes all platform tests, fixes memory leaks, and shrinks the binary by 3-8MB.
The process was a four-phase pipeline: agents received the full Zig codebase, generated Rust in parallel, fed compiler errors through iterative correction loops, and verified against the existing test suite. Jarred Sumner's team treated the rewrite as an engineering problem, not a moonshot. And it worked.
But 13,000 unsafe blocks. That number is doing a lot of heavy lifting in the Rust community right now. Rust's whole promise is memory safety through the borrow checker, and 13K unsafe annotations means the AI is punching through those guarantees whenever the type system gets inconvenient. The code compiles. The tests pass. Whether this is "real Rust" or "Zig wearing a Rust costume" is a genuine question.
Here's what I think matters more than the unsafe count: this rewrite happened at all. A million-line codebase moved from one language to another in weeks. Simon Willison wrote about this same day, calling it evidence that programming language lock-in is dissolving. Mitchell Hashimoto made the same observation. I agree with both of them, and the implications are hard to overstate.
For the past 20 years, choosing a language was a decade-long commitment. You picked Python or Java or Go, and your hiring pipeline, toolchain, and institutional knowledge calcified around that choice. Switching meant a rewrite that nobody could justify. Now a team just justified it in weeks with AI agents doing the heavy lifting.
What should builders do? Stop treating language choice as permanent infrastructure. If your Go service would be better in Rust, or your Rails monolith should be TypeScript, the cost of that migration just dropped by an order of magnitude. The 13K unsafe blocks are a quality concern, not a feasibility concern. AI-assisted rewrites will get better. The pattern is established.
Each link below shares sources, entities, or timing with this story.
Jarred Sumner uses Claude / Shared entities / Same source domain / Shared topic / What happened next
Linked by a graph relationship (Jarred Sumner uses Claude); both cover Claude, Jarred Sumner, Rust, Simon Willison; reported by the same outlet (simonwillison.net).
Anthropic released Claude / Shared entities / Same source domain / Shared topic / What happened next
Linked by a graph relationship (Anthropic released Claude); both cover Claude, Jarred Sumner, Rust, Simon Willison; reported by the same outlet (simonwillison.net).
Anthropic released Claude / Shared entities / Shared topic / What happened next
Linked by a graph relationship (Anthropic released Claude); both cover Java, Python, Rust, TypeScript; overlapping topics (agent, language).
Claude uses MCP / Shared entities / Earlier coverage
Linked by a graph relationship (Claude uses MCP); both cover Java, Python, Rust, TypeScript; earlier Java coverage from 2026-04-30.
Anthropic released Claude / Shared entities / Same source domain / What happened next
Linked by a graph relationship (Anthropic released Claude); both cover Claude, Python, Simon Willison; reported by the same outlet (simonwillison.net).
Anthropic released Claude / Shared entities / Shared topic / What happened next
Linked by a graph relationship (Anthropic released Claude); both cover Python, Rust, TypeScript; overlapping topics (agent, test).
Anthropic released Claude / Shared entities / What happened next / Tension
Linked by a graph relationship (Anthropic released Claude); both cover Python, Rust, TypeScript; picks up the Python thread on 2026-07-20.
Anthropic released Claude / Shared entities / Shared topic / What happened next
Linked by a graph relationship (Anthropic released Claude); both cover Jarred Sumner, Rust; overlapping topics (agent, codebase, rust, test).