Bun告别Zig:AI用6天完成96万行Rust重写全解析

Bun正从Zig迁移到Rust,96万行代码主要由AI Agent在6天内完成重写
Bun v1.3.14发布,可能是Zig时代最后一版。团队利用AI Agent在6天内完成96万行代码从Zig到Rust的迁移,测试通过率达99.8%,性能不逊于Zig版本。此次迁移旨在获得更好的内存安全保障,而非性能提升。v1.3.14本身也带来原生图像处理API、HTTP/3支持、全局虚拟仓库7倍提速等重要更新。
事件概述:从实验到生产的6天巨变
Bun v1.3.14 发布了,但这次更新背后隐藏着一个更大的新闻——Bun 正在从 Zig 迁移到 Rust。

Bun 创始人 Jarred Sumner 在5月12日发推表示,如果 Rust 重写合并成功,v1.3.14 可能是 Zig 时代的最后一版。而就在6天前(5月5日),他还说这只是个实验,代码"极有可能丢掉"。从5月5日的"极有可能丢掉"到5月11日的"相当高的信心",再到5月13日的"明天就内部 Dogfood",这个转变速度令人瞠目结舌。
更值得关注的是,这96万行代码的迁移工作主要由 AI Agent 完成,标志着软件开发模式的一次重大变革。
Rust 重写的核心数据
代码覆盖率与测试通过率
根据 Bun CEO 的报告,6天时间里团队覆盖了原 Bun 代码约68%的重写工作量,相当于翻译了96万行源码。Rust 一侧的产物代码约68.1万行,比原版略少。
最关键的数据是:在 Linux x64 glibc 上,测试通过率达到了惊人的 99.8%。这在语言迁移中绝对是顶尖水平。而且测试覆盖了所有目标平台:
- Linux x64 和 ARM64(覆盖 glibc 和 musl 双 libc)
- Windows x64 和 ARM64
- macOS x64 和 ARM64
性能表现:Rust版不比Zig慢
Jarred 明确表示:"我还没见过哪个 Benchmark 比 Zig 实现慢。"这是因为本质上是同一份代码库,没有使用 Async Rust,跟 Zig 实现一样只引用了少量第三方库。用他的原话说:"其实就是同一个东西,只是我们用上了更好的防崩溃工具。"
安全性收益与当前隐忧
这次重写预计能解决约200个 GitHub Issues——不是 Rust 能自动修 Bug,而是 Rust 的内存安全特性本身就在帮助消除潜在的内存问题。
但有意思的是,目前代码中有 13,044 个 Unsafe Block。这个数量说明 Rust 重写还没有完全吃到借用检查器的红利,更多是在用 Rust 当"一种更好用的 Zig"。Jarred 自己也承认"还在重构和简化",接下来的工程目标是把这些 Unsafe 收敛到尽可能小的核心模块里,让上层逻辑跑在安全 Rust 上。
AI Agent 主导的迁移流程详解
两阶段迁移策略
Bun 团队使用的是 Anthropic 自家的 AI Agent 基础设施,社区里把这种 PR 叫做"Robo PR"。整个迁移分成两个阶段:
- Phase A:在每个 Zig 文件旁边生成对应的 RS 草稿,忠实还原逻辑,不要求能编译
- Phase B:让代码逐 crate 编译通过、跑过测试
"AI写人审"的开发新模式
最令人震惊的是 Jarred 的一句话:"我们已经好几个月没自己敲过代码了。"即使在被收购之前,这个描述也"几乎准确"。这告诉我们 Bun 团队的工作模式早就反转过来了——不是人写 AI 辅助,而是 AI 写人审。
5月13日,Jarred 宣布要用 Claude Code 内部 Dogfood Bun 的 Rust 版本。这意味着 Claude Code 将成为 Rust 版 Bun 的第一个真实重度用户。用 AI 开发的运行时来运行 AI 生成的代码,这种循环依赖关系本身就很有趣。
v1.3.14 本身的重要更新
抛开 Rust 重写不谈,v1.3.14 本身也是一次重量级更新,修复了92个 issue,回应了380个反馈。
Bun.image:原生图像处理API
内置原生图像处理 API,不再依赖 Sharp 或 libvips。元数据操作号称比 Sharp 快70倍,1080P PNG 缩放快1.38倍,4K JPEG 操作快1.22-1.27倍。最重要的是零原生依赖,Serverless 部署再也不用为 Sharp 编译头疼。
HTTP/3 服务端支持
Bun.serve 加入了实验性 HTTP/3 支持,能跟 HTTP/1.1、HTTP/2 自动协商。在回环静态路由测试中,HTTP/3 能跑到 509,135 req/s,而 HTTP/1.1 只有 189,130 req/s,性能差距显著。
全局虚拟仓库提速7倍
在 bunfig.toml 里开启 install.globalStore 后,warm install 会用单次 symlink 替代 clone_file_at。在 macOS 约1400个包的场景下,从841毫秒降到115毫秒,提速7.3倍。
其他关键优化
- FS.Watch 完全重写:修复了递归监听、文件删除重建后静默丢失事件等老问题
- --no-fork 标志:父进程一死子进程跟着退出,解决了 CI/CD 和 watcher 进程的孤儿问题
- LTO 跨语言生效:Zig 和 C++ 边界通过 LLVM Bitcode 做了 LTO,42%的跨语言函数被内联消除
- 二进制体积瘦身:Windows x64 减少17.66MB,Linux x64 减少8.58MB
技术决策的深层逻辑
为什么选择Rust而不是继续用Zig?
Bun 团队选择 Rust 并非因为性能,而是出于以下考虑:
- 更好的防崩溃工具:借用检查器和析构器能在编译时捕获内存问题
- 生态成熟度:Rust 的人才储备、工具链、最佳实践都远超 Zig
- 长期维护成本:随着 Rust 在系统级编程中地位越来越重要,维护成本可能更低
- AI 友好性:AI 对 Rust 代码的理解和生成能力可能优于 Zig
最小改动路线确保迁移成功
Bun 团队选择了最小改动路线——保留原有代码结构和架构,不因换语言而大改特改。这是很多技术迁移成功的关键:避免过度改造,保持原有优势。
对软件开发行业的启示
这次事件的意义远超 Bun 项目本身。它展示了:
- AI 驱动的大规模代码迁移已经可行:6天96万行,这是人类团队望尘莫及的速度
- "AI写人审"模式正在成为现实:人类工程师专注于架构设计、性能优化和安全审查
- 语言迁移的门槛大幅降低:技术选型不再是不可逆的决定
从 Jarred 使用"if"而非"when"来看,他仍保持着谨慎态度。但从整个事件的节奏来看,社区已经在按"Bun 即将切到 Rust"的预期讨论了。未来几个月将是关键验证期——Rust 版本能否真正稳定下来、能否持续通过测试、能否在生产环境中表现优异,这些都将决定这次迁移的最终成败。
相关推荐
行业洞察OpenAI内部Codex使用量暴增56倍,AI编程正在吞噬一切
OpenAI披露内部Codex使用数据:研究部门增长56倍,客户支持32倍,工程27倍,法务13倍。从技术到非技术部门,AI编程工具的渗透速度远超预期,揭示企业AI采用率正处于关键拐点。
行业洞察IRS移动App引发热议:政府数字化转型中的信任危机
美国国税局IRS拟推出移动App引发公众激烈讨论。本文分析支持者与反对者的核心论点,探讨数据安全、隐私保护与政府服务便利性之间的平衡,以及对政府数字化转型的深层启示。
行业洞察美国国税局IRS全面引入Claude AI,联邦政府AI化进程加速
美国国税局IRS正在招募可全天候使用Claude AI的员工,标志着Anthropic成功打入联邦政府核心部门。本文分析IRS引入AI的战略意义、税务场景应用前景及对行业的深远影响。