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 版本能否真正稳定下来、能否持续通过测试、能否在生产环境中表现优异,这些都将决定这次迁移的最终成败。
相关推荐
行业洞察AI产品开发实战:模型选择、护城河构建与商业化路径
分享AI产品开发的实战策略,包括为什么不应从头训练模型、如何选择API调用与微调时机、构建产品护城河的关键要素,以及从评测体系搭建到商业化落地的完整执行路径。
行业洞察没有想要的产品?自己做才是独立开发者的最佳起点
市面上找不到满意的产品怎么办?从个人痛点出发,自己动手开发,正是独立开发者最好的切入方式。本文分析为什么小众需求反而是理想的创业起点,以及AI工具如何让一个人也能快速把想法变成产品。
行业洞察OpenAI Codex教程遭批量搬运,AI内容农场现象引关注
B站上至少9个账号批量发布相同的OpenAI Codex教程视频,暴露AI工具教程领域的内容农场问题。本文分析批量搬运的典型特征,探讨平台治理挑战,并提供辨别原创内容的实用建议。