AREX Feed Article
Bun 用 64 个 AI Agent 11 天完成 Zig→Rust 重写,Zig 创始人炮轰"无人审查的垃圾"
2026 年 5 月 3 日至 14 日,JavaScript 运行时 Bun 的创始人 Jarred Sumner 动用 64 个并行 Claude Agent(预发布版 Fable 5 模型),在 11 天内将约 53.5 万行 Zig 代码移植为约 68.2 万行 Rust 代码,共产生 6,502 个 commits,峰值达到每分钟 58 次提交,估算 API 调用成本约 16.5 万美元。重写的动机是利用 Rust 的 borrow checker 在编译期消除已困扰 Bun 多年的 128 个已知 use-after-free 类内存漏洞。
7 月 8 日,Sumner 发表详细技术博客披露全过程。次日,Zig 语言创始人 Andrew Kelly 发表长文《My Thoughts on the Bun Rust Rewrite》激烈回应,将这场原本技术圈内的讨论升级为关于"AI 大规模生成代码的质量、审查责任与开源关系"的标志性公共争论。7 月 28 日,The Pragmatic Engineer 发布 Anthropic 内部深度报道,将事件推向更广泛的工程社区;同日,Pydantic AI 宣布将 Bun 重写中使用的并行编排模式产品化为 Dynamic Workflows 功能。
重写过程与技术细节
根据 Sumner 的博客,重写并非简单的"一次性提示"。他设计了约 50 个动态工作流(dynamic workflows)循环运行,包括:
- 生成从 Zig 模式到 Rust 模式的移植指南(PORTING.md)
- 分析每个 struct 字段的 lifetime 并生成 LIFETIMES.tsv
- 机械式地将 1,448 个
.zig文件逐一移植为.rs文件 - 按 crate 修复编译器错误(初始约 16,000 个错误)
- 逐个 CLI 子命令修复 panic 和链接错误
- 在全部 6 个平台(Linux x64/arm64、macOS x64/arm64、Windows x64/arm64)上通过全部测试套件
每次代码生成后,由两个独立的"对抗性审查"(adversarial review)Agent 在独立上下文窗口中检查差异,仅被告知"假定代码有错",目标是找出 bug。Sumner 强调,三个被对抗性审查发现的真实 bug 都在合并前修复——它们都能编译通过且看起来合理,但分别涉及异步 close 后的 use-after-free、负时间戳处理错误,以及 unwrap_or 的及早求值导致 panic。
关键数据:已有测试套件全部用 TypeScript 编写,与运行时语言无关,因此可充当一致性验证基准。预合并阶段消耗 59 亿未缓存输入 token、6.9 亿输出 token 和 720 亿缓存输入 token 读取。Bun 于 2025 年 12 月被 Anthropic 收购,Sumner 未实际支付 API 费用。
实际代码质量数据
Sumner 在博客和后续采访中披露了以下数据:
- 修复了 128 个已知 bug(包括 use-after-free、double-free、内存泄漏等)
- 引入了 19 个新回归(已全部修复),主要源于两种语言"语法相同但语义不同"的情况,如 Zig 的
debug.assert中带副作用的表达式在 Rust 的debug_assert!中会被移除 - 约 4% 的新 Rust 代码位于
unsafe块(约 13,000 个unsafe关键字,散布在约 27,000 行代码中),其中 78% 是单行——仅为一个来自 C++ 的指针或一次对 C 库的调用 - 自合并以来已完成 11 轮 Claude Code Security 安全审查
- 新增了 24/7 覆盖引导模糊测试,覆盖所有解析器,已执行超过 1,000 亿次
Andrew Kelly 的激烈回应
7 月 9 日,Zig 创始人 Andrew Kelly 发表博客文章,措辞之激烈远超常规技术讨论:
对原始代码的批评:Kelly 称 Bun 的 Zig 代码是"补丁叠补丁"(hacks on top of hacks),是"如何不写 Zig 的范例",是 Zig 生态的"净负债"(net liability)。他表示 Zig 软件基金会(ZSF)团队在阅读 Bun 源码时"越来越感到惊骇"。
对 AI 生成代码的批评:Kelly 将 AI 移植产物称为"一百万行无人审查的垃圾"(a million lines of unreviewed slop),并将支持者描述为"没有品味的 AI 狂热者"。
对 Bun 创始人的个人攻击:Kelly 公开称 Sumner 为"糟糕的管理者"(stinky manager),指责他让 Bun 成为 Zig 的"耻辱"(embarrassment),并表示"我坚持对他领导能力的批评"。
对 Anthropic 动机的质疑:Kelly 将 Sumner 的博客文章描述为"仿佛一家万亿美元公司的市场部门押注了巨额资金",暗示 AI 重写是一场营销行为。
不过,Kelly 在文章结尾承认最初的措辞带有"未处理的情感",并在与朋友交流后进行自我反思,修改了结论部分。他表示对因他的文章而感到不安的 Zig 用户道歉,强调此次冲突是 Zig 社区中唯一的例外。
后续发展:质疑与产品化
Tom Lockwood 的跟进调查(7 月 27 日):独立开发者 Lockwood 在克隆 Bun 仓库后发现,重写合并 6 周后(截至 7 月 27 日)仍无新版本发布标签——上次发布为 5 月 12 日的 v1.3.14。RoboBun(Claude Code 自动化 PR 的代理账号)当时有 2,475 个待处理 PR。Lockwood 估算如果按每天约 1 万美元的持续成本计算,总花费可能已接近 80 万美元,远超出最初声称的 16.5 万。他同时指出 Anthropic 自己的 C 编译器和 Cursor 的 FastRender 浏览器项目已数月无提交。
Pydantic AI Dynamic Workflows(7 月 28 日):Pydantic 团队宣布将 Bun 重写中使用的并行编排模式产品化。DynamicWorkflow 允许编排 Agent 向模型提供一个包含多个子 Agent 的工具,模型在单次工具调用中编写 Python 脚本,自由编排子 Agent 的并发调用、链式组合甚至图依赖。这一模式本质上是将 Sumner 手工设计的 50 个工作流泛化为可复用框架。
The Pragmatic Engineer 深度报道(7 月 28 日):Gergely Orosz 探访 Anthropic 旧金山总部,采访了 Claude Platform 工程负责人 Katelyn Lesse、Bun 创始人 Jarred Sumner 等四人。报道揭示了更广泛的背景:Anthropic 内部正将越来越多的代码审查和测试交由 AI 完成,同时保持着"两人披萨团队"等传统工程实践。
社区反应
Hacker News 上围绕该事件的讨论极为活跃。Sumner 的原博客帖(7 月 8 日)获得大量关注;Kelly 的回应帖(7 月 9 日)获得 817 分;Lockwood 的跟进分析(7 月 27 日)在一天内获得 488 分和 384 条评论。
社区观点明显分裂:一部分人赞赏 Kelly 的坦诚,认为他指出了 AI 生成代码在缺乏人类审查时的真实风险;另一部分则认为他的个人攻击损害了 Zig 和 Bun 双方的声誉,且回避了核心问题——如果代码能通过全部测试套件,其质量是否"足够好"。
核心争论
此事件已经成为"AI 大规模生成代码的可信度"争论的标志性案例,其核心张力在于:
- 支持方:11 天完成了传统上需要小型团队一整年(且在此期间冻结功能开发)的工程任务,修复了 128 个已知 bug,全部已有测试通过,新回归均已修复
- 质疑方:原代码质量本身就低劣(Kelly 的观点),AI 产出的 68 万行 Rust 并未经过充分的人类审查,4% 的
unsafe代码意味着 borrow checker 的核心保证在这些区域不适用,且截至目前仍无正式版本发布
长期影响尚不明朗。Sumner 的立场是:这是一次"看起来像转译"的机械式移植,后续将逐步重构以减少 unsafe 使用并趋向惯用 Rust 风格。但此次事件已明确将一个更广泛的行业问题推到台前:当 AI 成为越来越多的基础代码的来源时,质量、安全和长期可维护性的责任由谁承担?
来源
- (Jarred Sumner,2026-07-08)
- (2026-07-09)
- (Gergely Orosz,2026-07-28)
- (2026-07-27)
- (Aditya Vardhan,2026-07-28)
- (Cassidy Wolfe,2026-07-28)
- (2026-07-28)
- (2026-07-08)