Claude Code 改用 Rust 重写的 Bun
速览
Claude Code 是 Anthropic 推出的 AI 编程助手,最近宣布其底层运行环境切换为 Bun,而 Bun 本身是用 Rust 重新实现的 JavaScript 运行时。这一变化旨在提升性能和稳定性,对依赖 Claude Code 的开发者有直接影响。Bun 的 Rust 重写也体现了 Rust 在高性能基础设施领域的持续渗透。
AI 深度解读
背景
2026年7月19日,Hacker News 上出现了一则关于 Claude Code 内部技术栈变更的讨论。Jarred Sumner(Bun 的创建者)在关于“用 Rust 重写 Bun”的文章中声称,Claude Code v2.1.181(发布于2025年6月17日)及之后版本已开始使用 Bun 的 Rust 移植版。这一变化在 Linux 上使启动速度提升了10%,但除此之外几乎无人察觉。一位开发者随后对 Claude Code 安装文件进行了技术验证,确认了该说法。
核心内容
Jarred Sumner 在《Rewriting Bun in Rust》一文中给出了以下声明:
Claude Code v2.1.181(发布于2025年6月17日)及之后版本使用了 Bun 的 Rust 移植版。启动速度在 Linux 上提升了10%,但除此之外几乎没人注意到。无聊是好事。
一位开发者决定亲自检查自己的 Claude Code 安装,寻找使用 Rust 版 Bun 的证据。他通过以下两个命令得到了有力证明:
-
检查 Bun 版本号
运行strings ~/.local/bin/claude | grep -m1 'Bun v1'得到输出Bun v1.4.0 (macOS arm64)。GitHub 上 Bun 的最新公开发布版本是 2025年5月12日的 v1.3.14,因此 Claude 中出现的 v1.4.0 版本号表明他们搭载了一个尚未公开发布的预览版 Bun。 -
查看 Rust 源文件路径
运行strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'输出了 563 个文件名,以下列路径开头:src/runtime/bake/dev_server/mod.rssrc/runtime/bake/production.rssrc/bundler/bundle_v2.rs
这些 .rs 文件(Rust 源文件扩展名)明确表明 Claude Code 内部确实集成了用 Rust 重写的 Bun。这意味着该 Rust 版 Bun 已经在数百万台设备上投入生产运行。正如 Jarred 所说:“无聊是好事。”
关键要点
- Claude Code v2.1.181 及之后版本已使用 Rust 移植版的 Bun,而非原始的 JavaScript 版 Bun。
- 在 Linux 上,启动速度提升约 10%,但 macOS 等其他平台变化不明显。
- 通过检查 Claude 二进制文件中的版本字符串,发现其搭载的 Bun 版本(v1.4.0)比 GitHub 公开发布的最新版(v1.3.14)更新,证实了预览版的使用。
- 二进制文件中列出了 563 个 Rust 源文件路径,涵盖运行时、构建、捆绑器等模块,证据确凿。
- 该变化对用户几乎无感,符合“无聊是好事”的工程哲学——即稳定、无感知的改进优于引人注目的突破。
意义与影响
- 技术验证:这次验证展示了通过分析二进制文件中的字符串、版本号和源文件路径,可以轻松确认大型软件的内核变更,为开发者和安全研究人员提供了一种实用方法。
- Rust 在基础工具中的渗透:Bun 原本是用 Zig 语言编写的 JavaScript 运行时、打包器和包管理器,现被改写为 Rust 版本并集成到 Claude Code 中。这标志着 Rust 正逐步接管更多基础软件栈,尤其是在性能敏感或需要跨平台一致性的场景。
- “无聊”的工程哲学:Jarred Sumner 强调“无聊是好事”,说明该重构的目标是保持功能不变,同时提升性能,而非引入新特性。这种不打扰用户的改进方式,有利于让大型软件平滑演进,降低用户适应成本。
- 对 Claude Code 生态的影响:Claude Code 作为 Anthropic 推出的 AI 编程助手,其底层运行时性能优化间接提升了终端用户的体验(虽然感知甚微)。未来可能有更多类似“偷偷换内核”的优化,让用户不知不觉获得更好的性能。
