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.
On July 16 there was a wave of backlash calling the Bun Zig→Rust rewrite unreviewed AI slop. On July 19, Simon Willison went and checked. (Simon Willison) Jarred Sumner claimed Claude Code v2.1.181 and later ship the Rust port. Willison verified it independently rather than ta...
Simon Willison surfaced Jarred Sumner's writeup of rewriting Bun's core from Zig to Rust this week, and the numbers stopped me cold. PR #30412, merged May 14, added roughly 1 million lines across 2,188 files, reached 99.8% test compatibility on Linux x64, and shrank the binary...
A single architectural decision, replicated across Python, TypeScript, Java, and Rust, sitting at the center of the protocol most agent builders now run. OX Security's research team disclosed a critical vulnerability in the official Model Context Protocol SDKs that enables arb...
The Pragmatic Engineer published a deep read on August 25 of Inspect, the coding agent Ramp built instead of standardizing on Claude Code or Cursor. The numbers: Inspect authors 75% of Ramp's merged PRs, 90% of PRs in its own repository, passed 1 million total sessions in July...
After 20+ years maintaining Paint.NET, Rick Brewster concluded WINE's Direct2D would never be complete enough for what he needed, so the app now carries its own from-scratch reverse-engineered Direct2D implementation. He puts it at 180,000 lines against 700,000 for the rest of...
It checks out both branches into isolated worktrees, builds each with instrumentation, runs the same tests on both sides, compares actual method arguments and return values, filters noise by running the base repeatedly, then collapses results to the frontier where a change ori...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.