关注我们: 微信公众号

扫码关注我们

11 天、64 个 Claude、112 万元:用 Rust 重写 Bun

云头条 2026-07-13 17

“我使用 Claude Code 搭建了约 50 套动态工作流,让它们连续运行 11 天,最终用 Rust 重写了 Bun。”

2.png

JavaScript 运行时 Bun 的创始人 Jarred Sumner 发布长文,详细介绍了这次大规模代码重写。

他利用由 Anthropic 一款预发布模型驱动的大量 AI 代理,在 11 天内将 Bun 原有的 53.5 万行 Zig 代码迁移至 Rust。

按照 API 公开价格估算,这次重写消耗的模型调用成本约为 16.5 万美元(111.8 万元人民币)。不过,这只是根据 Token 使用量计算的理论价格,并不一定代表实际支付金额。

Sumner 同时宣布,Bun v1.4.0 将成为首个使用 Rust 编写的正式版本,目前已经推出 Canary 测试版。

根据 Bun 团队公布的数据,改用 Rust 后,新版本的运行速度提升约 2% 至 5%,二进制文件体积明显缩小,内存占用也有所下降。

不过,这些测试结果均来自 Bun 团队,目前尚未经过第三方独立验证。

为什么要重写 Bun?

Sumner 决定实施这项可能是目前公开规模最大的 AI 驱动生产软件重写项目之一,主要原因是他已经厌倦了长期担忧内存泄漏、程序崩溃和稳定性问题。

Bun 原有的 Zig 代码中,存在大量释放后继续使用内存、重复释放内存,以及在错误处理路径中忘记释放内存等问题。

Sumner 表示,这些问题甚至让他晚上睡觉时都会担心 Bun 是否会再次崩溃。

不过,他特别强调,自己并不认为这些问题是 Zig 语言造成的。

“我并不责怪 Zig,其他使用 Zig 的项目并没有出现我们遇到的这些问题。”

Sumner 曾考虑使用 C++ 重写,因为当时 Bun 约有 20% 的代码已经使用 C++ 编写。

但他最终选择 Rust,原因可以概括为一句话:“编译器报错,比一份代码规范更适合作为反馈机制。”

最初,Sumner 并不认为彻底重写 Bun 是一个现实选项。

按照传统开发方式,整个过程可能需要一年时间。在此期间,Bun 的工程师必须暂停漏洞修复、安全更新和新功能开发,将全部精力投入代码迁移。

“整整一年无法给用户带来任何可见改进,并不是一个现实的选择。因此,我们原本的计划是通过代码规范改善稳定性,这也是我们后来在 Bun 代码库中加入类似 Rust 智能指针的原因。”

“但说实话,我并不想这么做。自行开发的智能指针使用体验不如 Rust,而且也无法提供 Rust 那样的安全保证。”

Bun 的测试套件使用 TypeScript 编写,这也成为重写能够顺利推进的重要因素。由于测试代码并不依赖 Zig 或 Rust,它可以充当一套与编程语言无关的兼容性测试体系,使 AI 代理能够自动完成早期代码迁移工作。

Anthropic 员工的特殊条件

Bun 于去年 12 月被 Anthropic 收购,Sumner 此后成为 Anthropic 员工。

“在这次 Rust 重写的大部分过程中,我使用的是 Claude Fable 5 的预发布版本。”

Sumner 强调,这次重写绝不是通过一句提示词完成的。他开玩笑说,假如只向模型输入“用 Rust 重写 Bun,不要犯任何错误”,这会是一条非常糟糕的提示词。

实际操作中,他使用 Claude Code 搭建了约 50 套动态工作流,并让这些工作流连续运行 11 天。

在并发规模最高的时候,他同时启动了 4 套工作流,每套工作流运行 16 个 Claude 实例,相当于共有 64 个 Claude 同时参与代码重写。

如此大规模地调用模型,成本自然不低。

Sumner 估算,按照 API 公开价格计算,整个项目的模型调用费用约为 16.5 万美元。

如何确保 AI 生成的代码可信?

Sumner 表示,从 5 月 3 日启动项目,到 5 月 11 日合并代码,他始终在监控 AI 代理的运行情况,并亲自阅读模型输出,检查其中是否存在错误。

为了能够审查由 AI 生成的大型代码提交,并有信心合并主要由大模型编写的代码,他建立了一套与编程语言无关的测试系统,其中包含约 100 万项断言,同时引入了对抗性代码审查机制。

在博客中,Sumner 还详细介绍了代码生成循环、自动测试流程和基础设施的搭建方式。

持续监控 AI 生成的代码还有另一个好处:一旦 Claude 的工作循环开始反复产生同类错误,他可以直接修改整个工作流,而不是逐个手动修复错误代码。

Sumner 表示,这种方式提高了他对最终代码质量的信心。

在重写过程中,团队共发现 19 个已知的功能回退问题。这些问题主要来自一些在 Zig 和 Rust 中写法完全相同、实际语义却存在差异的代码。目前,相关问题已经全部修复。

重写后的结果

根据 Bun 团队的内部测试,Rust 版 Bun 运行速度更快,程序体积更小,内存占用也更低。

Rust 还为开发团队提供了更多改善稳定性的工具,包括 Rust 的借用检查器、用于发现未定义行为的 Miri、内存泄漏检测工具 LeakSanitizer,以及全天候运行的覆盖率引导模糊测试系统。

对于外界关心的代码可维护性问题,Sumner 表示,虽然目前仍有部分代码需要继续重构,但 Zig 版本和 Rust 版本在整体结构上非常相似。

“任何理解原有 Zig 代码的人,也能看懂迁移后的 Rust 代码。”

自 6 月 17 日以来,最新版 Claude Code 已经开始运行 Rust 版 Bun。

Sumner 表示:“在 Linux 上,启动速度提升了 10%,除此之外,几乎没有人注意到变化。没有意外,就是最好的结果。”

云头条声明:如以上内容有误或侵犯到你公司、机构、单位或个人权益,请联系我们说明理由,我们会配合,无条件删除处理。

关键词:

网友留言2

未查询到任何数据!
◎欢迎您留言咨询,请在这里提交您想咨询的内容。