2026年5月14日,GitHub上 oven-sh/bun 仓库合并了一个编号为 #30412 的Pull Request。这不是一个普通的PR——它包含6,755个commit,修改了2,188个文件,新增了1,009,257行代码,删除了4,024行。本质上,它把整个Bun运行时从Zig语言重写为Rust。而完成这一切的主力,是Anthropic的Claude AI。
这个事件在Hacker News上获得705个赞和785条评论,Reddit、Twitter/X上引发轩然大波。YouTube上的深度解读视频"Bun's AI-Driven Migration: Zig to Rust"也迅速成为编程圈热议话题。这不仅仅是一次技术迁移——它是AI参与大规模软件工程的里程碑事件,也是2026年编程世界最具争议的故事之一。
| 项目 | 内容 |
|---|---|
| 视频标题 | Bun's AI-Driven Migration: Zig to Rust |
| 频道 | 编程技术分析频道 |
| 时长 | 约18-25分钟 |
| 核心主题 | Anthropic用Claude AI将Bun从Zig重写为Rust的技术内幕 |
| 关联事件 | PR #30412合并,1M+行代码迁移 |
| 社区热度 | HN 705+赞/785评论,Reddit多帖热议 |
Bun的故事要从2022年说起。当时,创始人Jarred Sumner选择Zig作为Bun的开发语言,这个决定在当时非常大胆。Zig提供了无GC的直接内存控制、与C的无缝FFI互操作、以及极小的运行时开销——这些特性让Bun能够直接包装JavaScriptCore引擎(苹果Safari的JS引擎),实现了比Node.js快3-10倍的性能。
但到2025年底,情况发生了根本变化。Anthropic收购了Bun。这个收购不是随意的——Claude Code作为一个需要大量JavaScript执行能力的AI编程工具,对高性能JS运行时有刚需。收购后,Zig的几个致命问题暴露出来:
Anthropic的AI贡献政策:Anthropic无法向Zig项目贡献代码,因为Zig的贡献者协议与Anthropic的AI使用政策冲突。这意味着Bun必须维护自己的Zig fork,长期来看不可持续。
人才招聘困境:全球熟练的Zig开发者屈指可数,Anthropic很难为Bun团队招到足够的人。相比之下,Rust开发者池大得多。
生态系统差异:Zig的包管理器、构建工具、第三方库都远不如Rust的Cargo生态成熟。
企业级集成:Rust的安全性保证(所有权系统、生命周期检查)更适合Anthropic这样对安全性有严格要求的企业环境。
正如一位Hacker News评论者所说:"Anthropic无法向Zig贡献代码,Bun必须维护Zig的fork——这才是重写的真正原因,而不是技术优劣。"
这是整个故事中最令人震撼的部分。根据视频解读和多方报道,迁移过程如下:
准备阶段(5月4日前后):团队创建了一份超过30KB的PORTING.md文档,详细定义了Zig到Rust的类型映射、惯用法映射和crate选择。这份文档相当于给Claude一本"翻译手册"——每个Zig概念对应什么Rust概念,每个模块用什么Rust crate替代。
执行阶段(约6天):Claude基于PORTING.md,从分支claude/phase-a-port开始,逐文件将Zig代码翻译为Rust。这个过程产出了6,755个commit,最终通过了Bun已有测试套件的99.8%。
关键数据:
- 约96万行Zig代码被翻译为Rust
- 测试通过率:99.8%(Linux x64 glibc)
- 二进制体积:减少3-8 MB
- 分支名claude/phase-a-port直接暴露了AI驱动的事实
这里有一个微妙但重要的细节:虽然新闻报道常说"6天完成重写",但Hacker News上的开发者指出,准备那份30KB的PORTING.md本身可能花费了大量时间。真正的工作不是6天,而是包含了前期的详细规划和迭代。Claude的角色更像是一个"超级翻译引擎"——它需要极其精确的指令才能产出可靠代码。
99.8%的测试通过率听起来令人惊叹,但社区对此的态度是分裂的。
支持者的观点:这证明了AI已经能够处理超大规模的代码迁移任务。传统的"大重写"项目往往耗时数月甚至数年(比如Python 2到3的迁移用了十多年),而AI将其压缩到一周内。这是软件工程效率的一次质变。
质疑者的观点: - 99.8%意味着还有0.2%的测试失败——对于一个JS运行时来说,0.2%的边缘情况可能意味着生产环境的崩溃 - 测试覆盖≠实际覆盖:Bun的测试可能没有覆盖所有边缘情况 - AI生成的代码可能缺少"人类直觉"——比如对某些性能热点的特殊优化 - 这不是"从零创造",而是"翻译"——难度本质不同
开发者Jiacai Liu在其博客中写了一段令人深思的话:"Bun能走到今天,正是因为Zig。Jarred当初选Zig不是因为它'酷',而是因为Zig让一个小团队能快速原型化一个高性能JS运行时——无需GC,无需笨重的运行时。Zig的comptime、直接操作内存的能力、与C的无缝互操作,都是Bun诞生的关键条件。"这段话提醒我们:不要因为"Rust更主流"就否定Zig的历史贡献。
独立开发者jtorchia在dev.to上发布了实测基准测试,结论令人意外但合乎逻辑:
"加速一个JS运行时的正确方式,是忽略它用什么语言写的。"
他的测试发现: - Rust版Bun与Zig版Bun在大多数基准测试中性能差异在2-5%以内 - JavaScript的执行时间主要由JavaScriptCore引擎决定,而不是外层runtime的语言 - 真正影响性能的是FFI调用开销、系统API封装效率、HTTP服务器实现等
简单来说,Bun的快不是因为它用Zig写的,而是因为它用JavaScriptCore而不是V8。重写为Rust不会让Bun变慢(因为Rust和Zig的性能特征非常接近),但也不会让它明显变快。
二进制体积方面,Rust版确实减少了3-8 MB,这是一个正向的改进。
这个事件的影响远超Bun本身:
运行时竞争格局改变:Bun + Anthropic = 一个有AI公司全力支持的JS运行时。这给Node.js和Deno都带来了压力。Node.js背后是OpenJS基金会(社区驱动),Deno背后是Ryan Dahl的创业公司——但Anthropic的资金和资源远超这两者。
"AI写运行时"成为现实:如果AI能重写一个JS运行时,那AI能重写什么?这个问题让很多开发者感到兴奋又恐惧。
Zig社区的损失:Bun一直是Zig生态最成功的项目,它的离开对Zig社区是一个打击。Zig的独特优势——comptime、手动内存管理、C互操作——在一个Rust主导的世界里可能被低估。
Claude Code的垄断风险:Bun现在是Anthropic的产品,如果Claude Code因为深度集成Bun而获得不公平的速度优势,其他AI编程工具(如Cursor、GitHub Copilot)可能处于劣势。
整个迁移过程中最值得学习的不是AI的能力,而是那份30KB的PORTING.md。根据GitHub上的commit记录,这份文档包含了:
[]const u8 → Rust的&[u8]或Stringerrdefer → Rust的Drop trait实现Result<T, E>这揭示了一个关键洞察:AI写代码的能力取决于人类提供的指令精度。PORTING.md不是简单的"把X翻译成Y",而是包含了大量的工程决策和折衷。AI是执行者,人类才是架构师。
Hacker News上的785条评论展现了社区的复杂情绪:
乐观派(约40%): - "这是AI辅助软件工程的分水岭时刻" - "想象一下,以后每次语言升级都能用AI自动迁移"
怀疑派(约30%): - "用AI翻译代码不是新概念,关键是维护成本" - "99.8%通过率意味着8,000个测试中有16个失败——对运行时来说不可接受"
哲学派(约20%): - "我们正在见证编程的范式转变——从'写代码'到'写翻译规则'" - "Zig到Rust不是技术选择,是企业收购后的被迫选择"
愤怒派(约10%): - "这是对Zig社区的背叛" - "Anthropic用AI重写开源项目,然后以闭源形式发布?"
这个故事给我们带来的不仅仅是技术八卦,而是实实在在的工程智慧:
PORTING.md方法论:如果你要做一个大规模的代码迁移(无论是语言升级还是框架迁移),先写一份详细的"翻译手册"比直接动手重要10倍。定义好类型映射、惯用法映射、错误处理策略,然后让工具执行。
AI是执行者,不是决策者:Claude完成了100万行翻译,但架构决策、crate选择、错误处理策略都是人类定义的。你的核心竞争力不是"写代码的速度",而是"做工程决策的能力"。
测试是AI的护栏:99.8%的通过率是Bun有完善的测试套件才可能验证的。没有测试,AI生成的代码就是黑箱。
语言选择是综合决策:Bun从Zig到Rust的迁移告诉我们,选择编程语言不仅仅是技术决策,还涉及招聘、生态、企业政策、长期维护等多重因素。
mindmap
root((Bun Zig→Rust迁移))
背景
2022: Jarred Sumner用Zig创建Bun
2025.12: Anthropic收购Bun
Zig的局限
Anthropic无法贡献Zig代码
Zig开发者稀缺
生态不如Rust成熟
迁移过程
PORTING.md 30KB翻译手册
类型映射
惯用法映射
crate选择
Claude AI执行翻译
6,755 commits
~96万行代码
约6天完成
PR #30412合并
99.8%测试通过率
二进制减少3-8MB
技术洞察
Rust vs Zig性能差异<5%
JS性能由JSCore决定
AI需要精确指令
测试是AI护栏
影响
JS运行时格局改变
Zig社区受打击
AI工程化范式确立
Claude Code获得优势
争议
AI写运行时可靠吗
对Zig社区是否公平
开源变闭源风险
这个事件为每个开发者提供了可操作的经验:
如果你是技术负责人:当面临技术选型时,不要只看语言本身的性能。要考虑人才市场(能招到多少人)、生态系统(第三方库是否丰富)、企业政策(你的公司能贡献代码吗)、长期维护成本。Bun的故事告诉我们,"技术上最优"不等于"组织上最优"。
如果你是AI工具用户:学会写"翻译手册"而不是直接让AI动手。PORTING.md的成功证明了:精确的结构化指令 + AI执行 = 高效的代码迁移。这个方法论可以应用到任何大规模重构任务——从jQuery迁移到React、从Python 2迁移到3、从REST迁移到GraphQL。
如果你关心职业发展:记住jtorchia的测试结论——"加速JS运行时的关键是忽略它用什么语言写的"。同理,你的核心竞争力不是掌握某种语言,而是理解底层原理(JavaScript引擎如何工作、内存如何管理、并发如何实现)。语言会变,原理不会。
Bun的Zig-to-Rust迁移不是一次简单的语言更换——它是AI工程化的里程碑,证明了当人类提供精确的架构指令时,AI可以在一周内完成百万行级别的代码翻译;但同时也提醒我们,技术决策永远不只是技术问题,它关乎人、组织、生态和未来。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
