Bun 项目刚刚完成了一次惊人的技术跨越。5月14日Bun 正式宣布其核心运行时已从 Zig 重写为 Rust——这个版本包含 6755 个 commit二进制文件体积缩小 3-8 MB性能测试在各个平台上均达到或超越原有水平。Jarred SumnerBun 的创始人在公告中透露这次重写已经通过了 Bun 原有的完整测试套件覆盖所有平台。更重要的是它修复了多个长期存在的内存泄漏和 flaky 测试问题。对于一个拥有 9 万星、每周下载量数十万次的开源项目来说这种稳定性提升意义重大——内存问题往往是最难调试、最耗时间的 bug 来源。BTW这个 PR 包含 100 多万行的新增代码直接把 GitHub 搞爆了导致页面无法加载https://github.com/oven-sh/bun/pull/30412从技术角度看这次重写保持了两个关键不变相同的架构设计相同的数据结构。Bun 依然使用极少的第三方库依然不依赖 async Rust。这意味着重写不是推倒重来而是在保持原有架构优势的基础上用更安全的语言替换底层实现。Rust 的价值在于其编译器提供的内存安全保证。过去多年内存 bug 消耗了开发团队大量时间进行调试和修复。Rust 的所有权系统和借用检查器能够在编译时捕获这类问题从根本上杜绝了 dangling pointer、buffer overflow 等常见漏洞。对于一个每天处理数十亿次请求的 JavaScript 运行时来说这种保障的价值难以估量。目前这一版本已通过bun upgrade --canary开放测试。Jarred 也坦诚地提醒优化工作仍在进行中最终版本发布前还会有一些清理工作。这是一个成熟开源项目应有的节奏——不为了抢首发而牺牲质量用 canary 频道让早期用户帮助发现问题同时保持 stable 频道的稳定性。对于整个 JavaScript 生态来说Bun 的这次尝试提供了一个有价值的参考当一个项目发展到足够大规模时如何在保持向后兼容的同时为未来的稳定性投资用更现代的系统编程语言重构核心组件是一个值得考虑的选择。
Bun用Rust重写核心代码,百万行新增代码直接把GitHub干爆了!
Bun 项目刚刚完成了一次惊人的技术跨越。5月14日Bun 正式宣布其核心运行时已从 Zig 重写为 Rust——这个版本包含 6755 个 commit二进制文件体积缩小 3-8 MB性能测试在各个平台上均达到或超越原有水平。Jarred SumnerBun 的创始人在公告中透露这次重写已经通过了 Bun 原有的完整测试套件覆盖所有平台。更重要的是它修复了多个长期存在的内存泄漏和 flaky 测试问题。对于一个拥有 9 万星、每周下载量数十万次的开源项目来说这种稳定性提升意义重大——内存问题往往是最难调试、最耗时间的 bug 来源。BTW这个 PR 包含 100 多万行的新增代码直接把 GitHub 搞爆了导致页面无法加载https://github.com/oven-sh/bun/pull/30412从技术角度看这次重写保持了两个关键不变相同的架构设计相同的数据结构。Bun 依然使用极少的第三方库依然不依赖 async Rust。这意味着重写不是推倒重来而是在保持原有架构优势的基础上用更安全的语言替换底层实现。Rust 的价值在于其编译器提供的内存安全保证。过去多年内存 bug 消耗了开发团队大量时间进行调试和修复。Rust 的所有权系统和借用检查器能够在编译时捕获这类问题从根本上杜绝了 dangling pointer、buffer overflow 等常见漏洞。对于一个每天处理数十亿次请求的 JavaScript 运行时来说这种保障的价值难以估量。目前这一版本已通过bun upgrade --canary开放测试。Jarred 也坦诚地提醒优化工作仍在进行中最终版本发布前还会有一些清理工作。这是一个成熟开源项目应有的节奏——不为了抢首发而牺牲质量用 canary 频道让早期用户帮助发现问题同时保持 stable 频道的稳定性。对于整个 JavaScript 生态来说Bun 的这次尝试提供了一个有价值的参考当一个项目发展到足够大规模时如何在保持向后兼容的同时为未来的稳定性投资用更现代的系统编程语言重构核心组件是一个值得考虑的选择。