首页 › programming › Bun的百万行Rust重写:AI编程的终极实验

Bun的百万行Rust重写:AI编程的终极实验

导语

2026年5月14日,一个PR悄然合并进Bun的主分支。6,755个commit、2,188个文件变更、100万行Rust代码——整个JavaScript运行时从Zig被重写为Rust。这不是一群工程师花了三年慢慢迁移的故事,而是Claude AI在不到两周内完成的一次"代码核爆"。当Code to the Moon频道的这期视频发出后,整个开发者社区炸了锅:AI真能生成百万行可靠代码吗?13,000个unsafe块算什么水平的Rust?Zig做错了什么?Anthropic为什么要买下一个JavaScript运行时然后把它改头换面?这些问题的答案,可能比你想象的更复杂。

视频背景卡片

项目 内容
视频标题 Bun Was Rewritten in Rust. But the Code...
频道 Code to the Moon
频道规模 ~83.7K订阅者
核心主题 Bun从Zig到Rust的百万行AI重写及其代码质量争议
视频风格 深度代码分析 + 工程批评
对应事件 PR #30412于2026年5月14日合并

一、为什么Bun要从Zig转向Rust?

要理解这场重写,得先回到Bun的起点。2022年,Jarred Sumner选择Zig来构建Bun,这个决定在当时是合理的——Zig没有GC、可以直接做C FFI、对JavaScriptCore引擎的封装极其高效。一个十几人的小团队用Zig迅速做出了比Node.js快3-10倍的运行时,这就是Bun的成名故事。

但Zig的短板在Bun做大后暴露无遗:

  1. 招人难:全球会Zig的开发者凤毛麟角,而Rust开发者池子大得多。The Register报道指出,这是Sumner公开承认的核心原因之一。
  2. 生态弱:Zig的包管理、工具链、第三方库远不如Rust成熟(crates.io上有超过15万个crate)。
  3. Anthropic的战略考量:2025年12月,Anthropic收购了Bun。Anthropic的技术栈以Rust为主,将Bun迁移到Rust是为了与Claude的生态系统更紧密集成——这不是"技术洁癖",而是商业决策。

[延伸分析] 这里有一个视频没有深入讨论的角度:Anthropic收购Bun后,Bun不再只是一个"更快的Node.js替代品",而是Anthropic构建AI原生开发工具链的一环。Rust对齐意味着Bun未来可能直接集成到Claude Code等产品的底层管线中。

二、百万行代码,AI怎么写的?

这是整个事件中最令人震惊的部分。PR #30412的分支名就是claude/phase-a-port——直接用Claude命名的分支,毫不掩饰AI的角色。

关键数据点:

怎么做到的?根据Hacker News上的一条高赞评论(该PR下有785条评论、705个upvote),Bun团队准备了一份极其详细的Zig到Rust映射指南文档,这个文档本身就是一项巨大的工程:

"When announcements say that rewrite took 1 week, I wonder how much time went into preparing this file with very detailed instructions on mapping Zig to Rust idioms."

也就是说,AI不是凭空写代码,而是在人类精心构建的"脚手架"指导下进行翻译。这更像是一种AI辅助的机械化翻译,而非创造性的代码生成。

三、13,000个unsafe块:Rust的安全神话崩塌了吗?

这是视频中最尖锐的批评点,也是社区争议最大的焦点。

Rust最核心的卖点就是内存安全(memory safety),而unsafe关键字可以绕过Rust的借用检查器。在规范的Rust项目中,unsafe块应该被控制在极小范围内,通常是底层FFI接口。但Bun的Rust版本中出现了超过13,000个unsafe块。

这意味着什么?

[我的判断] 这里需要区分两个层面:短期来看,13,000个unsafe块确实是一个严重的技术债,但它们并不意外——这是一次AI驱动的机械翻译的必然结果。长期来看,这些unsafe块应该被逐步消除,这才是真正考验Bun团队工程能力的地方。视频的批评是有道理的,但如果理解了这次重写的本质(AI翻译而非人工重写),就能理解为什么一开始会有这么多unsafe。

四、测试99.8%通过率:够了吗?

99.8%的测试通过率听起来很漂亮,但代码审查者kant2002的分析指出:

ByteIota的分析文章也指出,测试通过率不能等同于生产就绪(production-ready)。一个运行时要处理的是数百万开发者各种奇葩的代码,99.8%可能意味着每千次操作就有两次无法预测的行为。

五、开发者社区的撕裂

Hacker News上的785条评论基本上分为两大阵营:

支持派认为: - 这是AI辅助开发的一次里程碑,证明了大规模代码翻译的可行性 - Rust生态确实比Zig好得多,从长远看是正确的战略 - 不完美的Rust也比完美的Zig更可持续(因为有更多人能贡献)

反对派认为: - 13,000个unsafe块是对Rust社区的"侮辱" - AI生成的代码缺乏深度理解,只能做表面翻译 - 这是Anthropic的一次"技术秀",目的是展示Claude的能力而非真正改进Bun - "If you're going to write Rust with 13k unsafe blocks, you might as well write C++"——一条高赞评论的犀利总结

Jiacai Liu的博客文章则提供了一个难得的中间视角:"Bun stands where it does today because of Zig. Jarred chose Zig not because it was cool, but because Zig enabled a small team to rapidly prototype a high-performance JS runtime."——承认Zig的历史贡献,同时理解转向Rust的现实必要性。

六、知识结构图

graph TB
    A[Bun的百万行Rust重写] --> B[动机层]
    A --> C[执行层]
    A --> D[争议层]
    A --> E[影响层]

    B --> B1["Zig生态局限<br/>招人难/库少"]
    B --> B2["Anthropic收购<br/>战略对齐"]
    B --> B3["Rust生态优势<br/>15万+crates"]

    C --> C1["Claude AI翻译<br/>~100万行代码"]
    C --> C2["人类构建映射指南<br/>Zig→Rust idioms"]
    C --> C3["6-9天完成<br/>6755 commits"]

    D --> D1["13,000 unsafe块<br/>安全形同虚设"]
    D --> D2["99.8%测试通过<br/>够不够?"]
    D --> D3["AI生成代码<br/>质量如何保证?"]

    E --> E1["AI编程的边界<br/>到底在哪"]
    E --> E2["JavaScript运行时<br/>格局重塑"]
    E --> E3["开源项目的<br/>AI重构范式"]

    style A fill:#e74c3c,color:#fff,stroke:#c0392b
    style B fill:#3498db,color:#fff,stroke:#2980b9
    style C fill:#2ecc71,color:#fff,stroke:#27ae60
    style D fill:#f39c12,color:#fff,stroke:#e67e22
    style E fill:#9b59b6,color:#fff,stroke:#8e44ad

七、实战启示

对JavaScript开发者

短期内不必恐慌。Bun 1.3.14(最后一个Zig版本)仍然稳定可用。Rust版本的Bun还需要数月才能达到生产级别。你现在可以:

  1. 关注Bun的Rust nightly版本——通过bun upgrade --canary尝鲜,但不建议在生产环境使用
  2. 重新评估技术选型——如果你因为Bun使用Zig而犹豫过,Rust版本可能改变你的决策
  3. 理解AI代码生成的能力边界——99.8%测试通过不代表生产就绪

对关注AI编程的开发者

这次事件提供了一个绝佳的案例研究:

对系统编程爱好者

这次重写对比了Zig和Rust两种系统语言的实战表现:

八、延伸学习路径

  1. Bun PR #30412(GitHub)—— 直接阅读这个PR的讨论,比任何二手分析都有价值
  2. The Register: "Anthropic's Bun Rust rewrite merged at speed of AI" —— 最权威的新闻报道,提供了清晰的时间线和引用
  3. kant2002的代码分析(GitHub Pages)—— 对PR中具体代码变更的量化分析,数据说话
  4. ByteIota: "Bun's Zig to Rust Rewrite: Anthropic's AI Code Experiment" —— 深入分析了Anthropic的战略动机
  5. Hacker News讨论(链接)—— 785条评论是开发者社区的真实声音

一句话总结

Bun的百万行Rust重写不是AI"取代"程序员的证据,而是AI在人类精心指导下完成的一次机械化翻译实验——它证明了AI可以翻译代码,但也证明了翻译不等于理解。


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

参考来源

  1. Bun Was Rewritten in Rust. But the Code... — Code to the Moon, 分析的核心视频
  2. Anthropic's Bun Rust rewrite merged at speed of AI — The Register, 权威新闻报道
  3. Bun Rust Rewrite Merged: The 13,000 Unsafe Block Problem — ByteIota, unsafe块问题深度分析
  4. The Rustification of the Runtime: Lessons from the Bun Rewrite — DasRoot, 技术经验总结
  5. My Thoughts on Bun's Rust Rewrite — Jiacai Liu, 独立开发者的中间视角
  6. Rewrite Bun in Rust has been merged — Hacker News, 社区讨论(785条评论)
  7. Analysis of changes in the Bun codebase after the rewrite from Zig to Rust — kant2002, 代码变更量化分析

完成摘要

下一步建议

注意事项

[!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 等场景全覆盖。

51学通信知识星球海报-扫码加入