Claude Code 似乎捆绑了 Bun 的 Rust 版本
Simon Willison··作者 Simon Willison
关键信息
Willison 的检查显示,`~/.local/bin/claude` 中嵌入了 `Bun v1.4.0 (macOS arm64)`,而当时 GitHub 上最新的正式标签版本仍是 Bun v1.3.14。他还从二进制文件中提取出 563 个 `.rs` 文件路径,并通过预加载脚本打印 `Bun.version` 进一步验证,结果返回 `1.4.0`。
资讯摘要
这篇文章首先引用了 Bun 维护者 Jarred Sumner 的说法:Claude Code v2.1.181(6 月 17 日发布)以及之后的版本,已经开始使用 Bun 的 Rust 端口。Sumner 还表示,Rust 版本在 Linux 上将启动速度提升了约 10%,而且这项变化几乎没有引起人们注意。随后,Simon Willison 亲自检查了自己的 Claude Code 安装,想验证二进制文件里是否真的包含基于 Rust 的 Bun 运行时证据。 他先运行 `strings ~/.local/bin/claude | grep -m1 'Bun v1'`,结果发现其中嵌入了 `Bun v1.4.0 (macOS arm64)` 字符串。这个版本号当时高于 GitHub 上最新的正式标记版本 Bun v1.3.14,因此说明 Claude Code 可能捆绑的是一个尚未正式发布的预览版。
文章后来的更新补充说,Rust 版本已经以 Bun canary 的形式发布,可以通过 `bun upgrade --canary` 安装。Willison 还用正则去提取二进制中的 Rust 源码路径,结果找到了 563 个文件名,包括 `src/runtime/bake/dev_server/mod.rs`、`src/runtime/bake/production.rs` 和 `src/bundler/bundle_v2.rs`。另外,Ajan Raj 还提供了一个更直接的技巧:通过 `BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version`,可以直接输出嵌入运行时的版本号,结果显示为 `1.4.0`。Willison 最后认为,这说明 Bun 的 Rust 版本确实已经在大规模生产环境中运行,覆盖了数以百万计的设备,并借用“Boring is good”来强调这种低调但有效的演进。
资讯正文
在《用 Rust 重写 Bun》中,Jarred Sumner 做出了如下断言:
Claude Code v2.1.181(于 6 月 17 日发布)及之后的版本使用的是 Rust 版 Bun。Linux 上启动速度提升了 10%,除此之外,几乎没人注意到。平淡无奇就是好事。
我决定检查一下自己安装的 Claude Code,看看是否能找到它正在使用 Rust 版 Bun 的证据。
我发现下面这两个命令很有说服力:
对我来说,这会输出 `Bun v1.4.0 (macOS arm64)`。GitHub 上最新的 Bun 版本目前是 5 月 12 日发布的 `v1.3.14`,所以 Claude 里这个 v1.4.0 的版本号说明,他们确实在发布一个尚未正式发布的 Bun 版本预览。
(**更新**:Rust 版本**已经**以 [Bun canary](https://bun.com/docs/installation#canary-builds) 的形式发布——运行 `bun upgrade --canary` 会安装 [这个发布版](https://github.com/oven-sh/bun/releases/tag/canary)。)
这会输出一个包含 [563 个文件名](https://gist.github.com/simonw/c92fb0f67b114ac26e3b95a09ddccfdc) 的列表,开头如下:
看起来,Rust 版 Bun 的确已经在数百万台不同设备上投入生产环境运行了。正如 Jarred 所说,“平淡无奇就是好事”。
**更新**:这里有一个来自 [Ajan Raj](https://twitter.com/ajanraj25/status/2078825794701242697) 的巧妙技巧:
对我来说,这会输出 `1.4.0`。
这里是 [5 月 17 日的那个提交](https://github.com/oven-sh/bun/commit/b18bf6d1d0a92238f240bfd125f0e3b3461b9243#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519),它把 `package.json` 里的版本更新到了 1.4.0。此后这个版本号就再也没有变过,但它也还没有进入 `canary` 之外的带标签正式发布版本。
来源与参考
收录于 2026-07-20