Bun 用 Rust 重写:告别内存泄漏

Rewriting Bun in Rust

Bun 用 Rust 重写:告别内存泄漏

Bun 最初是用 Zig 从零构建的,凭借其对底层性能的控制,我在一年内就打造出了这个功能庞大的工具。然而,随着项目规模扩大,Zig 在混合管理垃圾回收与手动内存时暴露出的稳定性问题日益严重,导致各种 use-after-free 和内存泄漏频发。尽管我们引入了 Address Sanitizer 和 Fuzzing 等严格测试,但手动审查每一处内存分配依然让人夜不能寐。为彻底解决这些隐患,我们决定将 Bun 重写为 Rust。Rust 的类型系统和编译器强制的内存安全机制,能将许多运行时错误直接转化为编译错误,这才是我们真正需要的系统性保障。

编译器报错比依靠风格指南能提供更有效的反馈循环。
  • 尽管 Rust 在安全性上优于 C/C++,但 Khronos、NVidia 等巨头制定的行业标准和 SDK 仍强制要求使用 C/C++,导致在图形、HPC 等关键领域无法完全替代。
  • 有评论者指出 Rust 的编译速度极慢且依赖庞大,在资源受限设备上首次构建耗时可达数分钟,甚至影响电池续航,远不如 C++ 版本高效。
  • Rust 的孤儿规则(orphan rules)和泛型单态化(monomorphization)导致的隐式循环依赖,严重阻碍了代码分拆为独立 crate 及并行编译的潜力。
  • 针对 Bun 项目中的 Rust 代码,有开发者通过统计抽样发现大量 unsafe 块存在未定义行为,认为这暴露了当前 AI 辅助编程在复杂逻辑推理上的严重缺陷。
  • 有从业者预测,随着 AI 生成代码的普及,未来将出现大量需要资深工程师介入清理 AI 生成错误和糟糕设计决策的咨询服务需求。

同日更多故事

2026-07-08