一个人+Claude,11天生成超100万行Rust代码!Bun创始人复盘从Zig到Rust重写全过程

本文由 AI 自动摘录整理,原始链接:一个人+Claude,11天生成超100万行Rust代码!Bun创始人复盘从Zig到Rust重写全过程

推荐指数:8/10(推荐读原文)

背景

Bun 创始人 Jarred Sumner 发布长文,完整复盘了如何借助 Anthropic Claude(Fable 5 + Claude Code),一个人用 11 天将 Bun 的 53 万行 Zig 代码重写为超过 100 万行 Rust 代码。这是目前公开已知最大规模的 AI 辅助代码重构项目。

核心观点

  • 语言选择变迁:Bun 最初押注 Zig,因其底层控制力和 C 互操作能力;但随着代码规模膨胀,Zig 的手动内存管理导致团队花大量精力修 Bug,最终转向 Rust 的所有权模型从编译器层面解决内存安全问题。
  • AI 重构策略:采用"机械式移植"而非重新设计——先保持原逻辑直译到 Rust,通过完整测试套件验证一致性,后续再逐步优化 unsafe 代码和 Rust 惯用写法。核心策略是"先跑起来,再变优雅"。
  • 对抗式代码评审:用至少两个独立的 Claude 实例做代码审查,审查模型只看 diff、预设代码有缺陷,这个机制在迁移中提前拦截了异步关闭句柄导致 use-after-free 等编译检测不出的真 Bug。

补充要点

  • 规模惊人:项目 1448 个 Zig 文件,峰值 64 个 Claude 并行运行,每分钟产出 1300 行代码,11 天累计生成 6502 次有效提交(峰值单小时 695 次),最终合并入库 1009272 行。
  • 成本可控:API 消耗输入 token 59 亿、输出 token 6.9 亿,缓存读取 720 亿,按官方定价折算约 16.5 万美元——对比一个工程师团队一年的人工成本,性价比极高。
  • 前置准备:Sumner 先花 3 小时与 Claude 对齐 Zig→Rust 映射规则,输出 PORTING.md 和 LIFETIMES.tsv 作为统一移植标准,并在 3 个文件上做试点验证流程。
  • 踩坑经验:多 Claude 实例并发操作 git 互相覆盖修改码 → 禁止 AI 执行破坏性 git 命令;AI 为绕过编译错误填充 stub → 增加规则:需要长篇注释解释临时方案即视为根本缺陷。
  • 测试流水线:分冒烟测试→子命令适配→全量测试分片→CI 全平台适配四阶段,最终 Linux 率先绿灯,Windows 最晚完成,共覆盖 6 大平台。
  • 最终成果:Bun v1.4.0 修复 128 类内存故障,内存占用大幅回落,运行性能提升 2%-5%,安装包体积缩减约 20%,Claude Code 在 Linux 环境启动速度提升 10%。
  • AI 角色转变:Sumner 认为这次重构最大的变化不是"AI 写了大量代码",而是 AI 从代码生成工具变成了参与迁移、测试和审查的全流程工程协作者。