44 lines
2.9 KiB
JSON
44 lines
2.9 KiB
JSON
{
|
|
"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"
|
|
}
|
|
} |