News Hacker|极客洞察

20 3 小时前 old.reddit.com
😬Bun 迁移到 Rust:百万行代码、复杂度与信任争议
一周改写百万行,还算“过度反应”吗?

🎯 讨论背景

Bun(一个以速度和开发体验著称的 JavaScript runtime)原本主要用 Zig 写成,这次合并把大量代码迁移到了 Rust。相关 PR 在 GitHub 上引发了数百条评论,说明这不只是一次语言切换,而是对 Bun 核心架构的大规模重构。很多评论都在提醒,JavaScriptCore(Safari 使用的 JavaScript 引擎)等底层组件并没有被重写,因此更准确地说,变化主要集中在 Bun 的壳、兼容层和用户态库。围绕这件事的争论,本质上是大型 rewrite 是否真的能降低技术债、提升安全性,还是只是把复杂性从一种语言搬到另一种语言。

📌 讨论焦点

代码体量与复杂度暴涨

有人把这次合并视为 Bun 复杂度急剧膨胀的信号。评论里拿超过 100 万行 Rust、数千处 unsafe 片段,以及 Rust、Zig、TypeScript、JavaScript、C、C++ 并存的规模来对比,认为它已经接近大型编译器级别。即使 Bun 主要只是 JavaScript interpreter wrapper 和 Node.js 兼容层,这个体量也被看作后续维护和审计会越来越重。

[来源1] [来源2]

对官方叙事的怀疑

不少人对团队的公开表态和宣传口径明显不信任。有人提到几天前还在说合并远未确定,如今却真的落地,显得前后反差很大。也有人回顾过去的性能宣传和 benchmark 说法,认为一直是 marketing-speak,却很少拿出可验证的证明。

[来源1] [来源2] [来源3] [来源4] [来源5]

测试与团队带来的信心

另一部分评论则认为,这次迁移能否成功,关键不在于 Rust 还是 Zig,而在于团队和测试体系。支持者强调,Bun 的核心底层如 JavaScriptCore 并没有被重写,所以这更像是把 scaffolding、harness 和部分用户态库迁到 Rust。只要 test suite 足够强,大规模 code rewrite 也可能是可控的。

[来源1]

对大规模迁移速度的震惊

也有人只是单纯觉得这次 turnaround 太快了。有人说一两周前才听到风声,没想到这么快就完成了如此大的 code churn。即便承认执行力惊人,很多人仍表示不知道该把这件事看成工程奇迹还是风险信号。

[来源1]

插件/FFI 兼容性担忧

讨论还延伸到 Bun 生态的外部接口会不会受影响。有人直接问,像 opencode 的 opentui 这类 add-on 会怎样,FFI 是否也被一起迁移,还是后续还要跟着改。这个问题反映出大家不仅关心核心 runtime,还关心原生扩展和周边工具链的兼容性。

[来源1]

黑箱化与维护性焦虑

还有人对结果非常悲观,担心它会变成难以理解的黑箱。评论里甚至用了 AI slop 这种说法,指向代码可能越来越杂乱、难审计,最后没人真正能说清内部怎么运作。这个观点的核心不是性能,而是后续排障、审查和长期维护可能会更糟。

[来源1]

📚 术语解释

Rust: 一种强调内存安全和性能的系统编程语言,这次重写的主要目标语言。

Zig: 一种强调简单和可控内存管理的系统编程语言,Bun 早期大量使用它。

unsafe: Rust 中显式绕过部分安全检查的代码块或操作,数量多通常意味着更高的审计成本。

FFI: Foreign Function Interface,跨语言调用原生代码或库的接口,常用于插件和原生扩展。

JavaScriptCore: Safari 使用的 JavaScript 引擎,Bun 依赖的重要底层组件之一。