{ "schema": "fable.external_project.review.v1", "id": "bun-in-rust-advisory-map-20260709", "title": "Rewriting Bun in Rust \u2014 Advisory Map", "source": { "type": "blog post", "url": "https://bun.com/blog/bun-in-rust", "md_url": "https://bun.com/blog/bun-in-rust.md", "published": "2026-07-08T16:00:00.000Z", "author": "Jarred Sumner (Bun/Oven)", "fetchedAt": "2026-07-09T02:15:10.917437+00:00" }, "keyFindings": { "acquisition": "Bun was acquired by Anthropic in December 2025. Jarred and team now work at Anthropic.", "rewrite": "Rewritten from Zig to Rust. Used pre-release Claude Fable 5 for much of the rewrite.", "reason": "Systematic memory safety issues from mixing GC (JavaScriptCore) with manually-managed Zig memory. 12+ use-after-free, memory leak, and double-free bugs listed.", "scope": "JavaScript/TypeScript/CSS transpiler, minifier, bundler, package manager, test runner, HTTP/1.1, WebSocket, Node.js API implementations.", "downloads": "22 million monthly CLI downloads.", "users": "Claude Code, OpenCode, Vercel, Railway, DigitalOcean \u2014 all use Bun as their runtime." }, "relevanceToFableAgent": { "pattern": "Language migration driven by memory safety guarantees. Same principle as fable-agent harness: when a component (LLM prompt context, memory-managed state) causes systemic bugs, isolate it behind a hard verification gate rather than fixing symptoms.", "mapping": "Bun moved GC-managed Zig code to Rust for safety. fable-agent moves LLM state out of context (FlatLedger), gates agent actions (verify-gate, interrupt-gate), and isolates worktrees (worktree-isolation). Both solve the same problem: contain the blast radius of an unsafe runtime.", "fable5": "Claude Fable 5 was used to write the Rust rewrite. This validates the LLM-as-compiler pattern: model generates safety-critical code, human+CI verifies." }, "keyTakeaways": [ "Bun was acquired by Anthropic (Dec 2025). Fable 5 used for the rewrite \u2014 validates LLM-as-compiler pattern.", "Language migration from Zig to Rust for memory safety. Same pattern as fable-agent's verify-gate + FlatLedger: systemic bugs need architectural fixes, not symptom patches.", "Jarred lists 12+ use-after-free, memory leak, and double-free bugs that motivated the rewrite. Systematic prevention > one-off fixes.", "Bun runs 22M monthly downloads. Claude Code + OpenCode depend on it. fable-agent already uses Bun-compatible toolchain (node, npm).", "Advisory only. No vendoring. Pattern validation is the value." ], "contentVerified": true, "liveVerification": "HTTP 200 from bun.com/blog/bun-in-rust.md \u2014 full markdown content fetched and verified.", "advisoryOnly": true, "noActionRequired": true, "fableAgentStatus": { "containers": 11, "phase": 4, "autoPatchProven": false, "tests": "295 passing, 69 files", "commit": "2233297" } }