Bun 用 Claude 把一套大型 JavaScript 运行时从 Zig 迁到 Rust,刚被包装成 AI 编程的标杆案例,Zig 创始人 Andrew Kelley 就把桌子掀了。
这场争议有个很具体的画面:一边是 11 天、6778 次提交、约 16.5 万美元 API 费用;另一边是 Zig 社区对“百万行 AI 生成代码”可维护性的公开反击。AI 编程工具第一次被放进这种量级的基础设施迁移里,成绩单和后遗症同时摆在台面上。
11 天迁移,代价先写在账本上
Bun 原来用 Zig 写成,是前端开发者常用的 JavaScript/TypeScript 运行时、打包器、测试器和包管理器。Bun 官方给出的迁移规模很硬:旧代码里有 535496 行 Zig,另有约 20% 的 C++ 与多组 C/C++ 库;Rust 迁移落地时,变更量超过 1009272 行。
Jarred Sumner 把过程拆成一串 Claude Code 动态工作流:高峰时同时跑 4 个 workflow,每个 workflow 里有 16 个 Claude 实例,也就是 64 个 Claude 并行。Bun 官方说,迁移前期遇到约 16000 个编译错误,工作流按 crate 分组修复,每轮由一个 Claude 改、两个 Claude 做对抗审查、一个 Claude 应用补丁。
账单也被公开:迁移消耗 59 亿 uncached input tokens、6.9 亿 output tokens、720 亿 cached input token reads,按公开 API 价格折算约 16.5 万美元。Sumner 估计,若由 3 名熟悉代码库的工程师手工迁移,大概要一年。
“One engineer can do a lot more today than a year ago.”
他的判断很直接:单个工程师在 Claude Code 工作流加持下,可以推动过去需要一个小团队长期占用的迁移工程。
分歧卡在“能跑”和“能养”之间
Bun 给出的收益也清楚。官方测试里,Rust 版在多项服务器和 CLI 负载上快了 2% 到 5%;Claude Code v2.1.181 起使用 Rust 版 Bun 后,Linux p50 启动耗时从 517ms 降到 464ms,约快 10%。Bun v1.3.14 成为最后一个 Zig 版,v1.4.0 将是第一个 Rust 版。
工程焦点并未停在性能上。官方承认,迁移后约 4% 的 Rust 代码处于 unsafe block,大约 13000 个 unsafe 关键词,分布在约 27000 行代码里,总 Rust 代码量约 78 万行。Sumner 的解释是,大量 unsafe 来自 C++ 指针和 C 库调用,后续会继续重构。
Kelley 的反击正好打在这里。他认为这类迁移把“测试能通过”推到过高位置,遮住了工程债。
“Hacks on top of hacks.”
他用这句形容旧 Bun 代码,并追问:如果测试套件足以兜住百万行未逐行人工审查的 Rust 代码,为何原来的 Zig 代码仍积累了那么多内存和质量问题?
AI 编程的样板,也是一份风险清单
这条新闻对开发者圈的冲击,不在 Rust 赢了 Zig,也不在 Claude 又拿到一个宣传案例。它把一个更棘手的问题摆出来:AI 可以把大型迁移的前置成本压下来,但维护成本会在后面重新结算。
Bun 官方并未回避后续工作。迁移合并前,所有平台 CI 测试通过,且没有跳过或删除测试;合并后又做了 11 轮 Claude Code Security 审查。Bun 还说,解析器的覆盖引导 fuzzing 已执行 1000 亿次,带来约 15 个 PR。与此同时,官方也承认迁移引入过 19 个已知回归,很多来自两种语言中看似相同、语义有差异的代码。
这组事实给企业工程团队一个可操作的判断:AI 迁移适合拿来做“先把旧系统搬到更安全的地基上”的大动作,但它要求测试、fuzzing、CI、人工抽查和安全审查一起上。少任何一层,速度都会变成风险放大器。
这里还藏着一条成本线。16.5 万美元看上去很低,低到足以让 CTO 心动;可迁移后的半年维护、回归定位、unsafe 收敛和新同事上手,才会决定总账。Bun 有足够多的用户、测试和商业压力去继续收尾,小团队照抄这套流程,反而可能把一次迁移变成长期债务。
开源社区的边界被重新划线
这场争议还有社区层面的刺痛感。Bun 曾是 Zig 生态里最醒目的生产项目之一,后来被 Anthropic 收购,又用 Claude 把主体代码迁走。对 Zig 来说,这既是大用户离开,也是 AI 生成代码涌入社区后的文化冲突。
Kelley 的写法很冲,Hacker News 上也有人指出他对 Bun fuzzing 的表述存在争议;Sumner 则在讨论区补充了 Fuzzilli 集成和相关 PR。双方各有情绪,但事实链已经足够清楚:Bun 正把 Rust 版推向 v1.4,Zig 社区则用这次事件提醒外界,语言迁移成功合并只是一段工程寿命的开始。
对 AI 编程工具来说,Bun 这次迁移是一张很亮的名片,也是一张很贵的审计清单。以后再有人说“AI 重写了百万行代码”,需要跟着问三件事:测试覆盖到哪里,unsafe 和回归剩多少,半年后谁来维护。
参考来源:Bun 官方博客、Andrew Kelley 个人博客、机器之心/36氪、Hacker News 讨论、CocoLoop;Bun 官方博客核验 11 天、6778 次提交、token/API 费用、unsafe 口径和测试平台,Andrew Kelley 个人博客核验 Zig 社区反驳。