⚙️ AI 编程 · 工程争议
50万行代码、11天、16.5万美元:AI 完成一次原本需一年的人力重写
Bun 创始人 Jarred Sumner 宣布,借助约 50 个并行运行的 Claude 工作流,已将这套 JavaScript 运行时及工具链从 Zig 迁移至 Rust。项目声称在所有受支持平台上通过超过百万条断言测试,但 Zig 创始人 Andrew Kelley 质疑:测试通过,不等于代码已经被工程师真正审查。
事件梳理•
技术重构 / AI 编程•
全文约 4 分钟读完
#Bun
#Claude
#Rust
#Zig
#AI编程
11 天
完成从 Zig 到 Rust 的迁移
100%
官方表述的受支持平台测试通过率
50 个
峰值并行 Claude 工作流
⚡ 30 秒速览
- 发生了什么:Bun 用 Claude 辅助,把约 50 万行 Zig 代码迁移为超过 100 万行 Rust 代码,耗时 11 天。
- 代价是多少:按 API 标价估算,成本约 16.5 万美元;峰值每分钟生成约 1300 行代码。
- 为什么迁移:项目漏洞持续增加,内存管理架构复杂;Sumner 认为 Rust 更适合相关场景。
- 凭什么说完成:项目方称全面跑过超过 100 万条断言,所有受支持平台均通过,且未跳过或删除测试。
- 争议在哪里:Zig 创始人认为,Bun 的问题首先是工程实践和价值观问题,AI 生成代码缺乏审查才是更大的风险。
01一场被压缩到 11 天的重构
Bun 并不是单一的运行时,而是一套围绕 JavaScript 的工具链:运行时、包管理器、打包工具和测试运行器都在其中。它采用苹果的 JavaScriptCore 引擎,以低内存占用和快速启动为卖点;底层则选择了强调性能与控制力的 Zig。
真正改变节奏的,是 AI 介入了迁移工程。
2025 年 12 月
Anthropic 收购 Bun,并将其用于构建核心状态机。此时,名为 RoboBun 的 Claude Bot 已参与大量代码维护工作。
漏洞压力
随着用户扩大,项目暴露出更多问题。相关报道将一次源代码泄露事件与 Bundler 在禁用后仍生成源映射文件的漏洞联系起来。
迁移启动
Sumner 启动约 50 个动态 Claude Code 工作流,让多个智能体并行处理不同模块,Claude Fable 承担了大部分繁重工作。
结果交付
新项目生成超过 100 万行 Rust 代码,并接受原有测试套件的全面检验。
注:时间线按公开表述重排;“11 天”和“16.5 万美元”是项目方的迁移数据与 API 标价估算,并非独立审计结论。
如果采用传统方式,Sumner 估计,小型工程师团队可能需要整整一年完成同类重写,期间还会挤压 Bug 修复、安全修复和新功能开发。
02为什么这次结果看起来可信?先看可验证证据
这次迁移最有说服力的部分,不是“每分钟生成多少行代码”,而是项目方给出了相对明确的验收口径:让 Rust 版本接受 Bun 自身已有的测试套件检验,而不是只展示一段能运行的演示代码。
Sumner 的核心说法是:基于 Rust 的 Bun 项目通过了完整测试套件,且测试过程中没有跳过或删除任何测试。
注:这些指标说明“既有测试覆盖范围内”的兼容性表现,不代表所有未被测试捕获的安全、性能和维护问题都已消失。
证据边界:公开信息展示了测试结果和迁移规模,但没有显示一份独立的逐行代码审查报告。测试是必要条件,不是软件质量的全部定义。
03AI 在这项工程里到底做了什么?
这里的 AI 并不是输入一句话、等模型吐出完整软件。它更像一支高速、并行、持续接受测试反馈的“代码施工队”,负责拆分模块、生成迁移代码、修复失败项,再把结果交回测试系统。
一套工具链的整体搬迁
- Bun 同时包含运行时、包管理器、打包器和测试运行器,迁移对象并非单个孤立模块。
- 原有代码规模约为 50 万行 Zig,最终生成的 Rust 代码超过 100 万行。
- 迁移目标不是简单翻译语法,而是让整套工具链继续通过已有行为测试。
它证明了什么:AI 可以参与大规模跨语言重构,但交付标准仍然必须落在可执行测试和实际兼容性上。
并行工作流分摊“脏活累活”
- 项目使用约 50 个动态 Claude Code 工作流,把不同模块和失败任务拆开并行推进。
- 峰值生成速度约为每分钟 1300 行代码,Claude Fable 承担了大部分繁重工作。
- 此前的 RoboBun 也已经参与 Bug 修复和测试失败处理,并成为合并 PR 数量最多的贡献者之一。
它暴露了什么:吞吐量可以被 AI 放大,但并行生成也会同步放大错误传播和审查压力。
迁移同时承担“修复旧架构”的任务
- Sumner 认为,Bun 混合了垃圾回收和应用程序驱动的内存管理,复杂性 contributed to 漏洞风险。
- 他承认 Zig 原本并非为这类任务设计;Rust 在自动化内存管理方面更有优势。
- 因此,这次工作不只是换一种语言,也试图借迁移重新处理长期积累的工程问题。
关键限制:重写可以改变问题的载体,却不会自动证明旧设计、接口边界和安全假设都已正确。
注:案例中的“贡献者数量”和“测试通过”依据项目方公开表述;文中不将其等同于独立质量认证。
04为什么它能做到?语言选择只是表层
把这次迁移归结为“Rust 比 Zig 好”并不准确。Andrew Kelley 的观点恰恰是:争论核心不是两种语言的功能差异,也不只是 AI 的使用,而是两个项目在工程价值观上的分歧。
传统重写路径
小型工程师团队需要约 一年,逐模块迁移、调试和补测试。其代价是,期间的 Bug 修复、安全修复与功能开发可能被迫放慢。
AI 并行路径
让多个工作流同时处理模块,持续根据测试结果生成修复,先把大量机械迁移工作压缩到 11 天内完成。
模块拆分→
并行生成→
测试反馈→
反复修复
注:流程图表示公开信息中呈现的工作逻辑,并不意味着所有代码都经历了同等深度的人工审查。
这也是 Bun 与 Zig 争议的交叉点:Sumner 强调“以前需要一年的人力工程现在可行了”;Kelley 则担心,如果旧版 Zig 代码的测试都没能发现全部漏洞,那么未经人工监督生成的 Rust 代码,凭什么会天然更可靠?
Zig 项目此前还拒绝接收 Bun 团队基于 AI 辅助开发的改动,理由是项目不接受 AI 生成的贡献。Kelley 认为,大量缺乏工程监督的提交,最终会把问题推迟到更难修复的阶段。
05应该用什么尺度判断这次重构?
这次事件同时包含一个令人兴奋的效率数字,和一个不能被效率数字掩盖的质量疑问。把两者放在同一张表里,结论会更接近事实。
速度
11 天完成迁移;峰值每分钟生成约 1300 行。
代码生成速度不等于可维护代码交付速度。
正确性
超过 100 万条断言测试,项目方称全平台通过。
测试无法覆盖所有未预见输入和组合状态。
安全性
迁移动因之一是漏洞持续增加和内存管理复杂。
没有公开信息证明所有安全缺陷已被独立复核。
维护性
Rust 试图改善内存管理和长期架构负担。
代码规模翻倍,审查、文档和责任归属压力也随之增加。
注:矩阵不是对迁移成败的最终评分,而是区分“已有数据”和“尚未被数据证明的部分”。
一个诚实的注脚:Kelley 对 Bun 早期工程实践的批评,并不能自动证明 Rust 版本一定有问题;同样,测试全通过也不能自动推翻对代码审查不足的担忧。