最新消息:关注人工智能 AI赋能新媒体运营

Bun核心代码转向Rust,重写成果已合并至主分支

科技资讯 admin 浏览

JavaScript运行环境Bun的核心代码正转向Rust,Bun项目将名为“Rewrite Bun in Rust”的大型拉取请求合并至主分支,使该重写工程进入主干后续开发阶段。根据Bun主要作者Jarred Sumner在X平台的说法,Rust提供的类型与生命周期检查,可让编译器协助预防部分内存错误,减少团队处理内存泄漏、崩溃与稳定性问题的负担。

Jarred Sumner表示,Rust重写版本在Linux x64 glibc环境中,已通过Bun既有测试套件的99.8%。他也提到,重写后大致仍是相同代码基础,但现在可以由编译器协助检查类型的生命周期,并在需要时使用析构函数处理资源释放,而原本较难处理的部分也会以unsafe标记出来,让需要重构的代码更容易被发现。

Bun原本以Zig语言开发,并采用Apple开源的JavaScriptCore作为JavaScript执行引擎,可同时作为JavaScript运行环境、包管理器与测试工具,让开发者在部分场景下以Bun取代Node.js。

Jarred Sumner说明重写原因时提到,他已厌倦持续担心并花费大量时间修正内存泄漏、崩溃与稳定性问题,希望编程语言本身能提供更强的预防工具。他另称,这次重写规模约96万行代码,Linux测试套件已能通过,其他平台也将陆续跟进,后续还会分享重构对Bun的性能、内存使用与可维护性等方面造成的影响。

从目前状态来看,Bun已将Rust重写成果合并至主分支,但Jarred Sumner也提醒,这项工作在进入非Canary版本前仍需进行优化与清理。也就是说,Rust重写虽已进入主线开发流程,但稳定版Bun尚未全面改用Rust。

另外,除了Bun核心以Rust重写的资讯,官方还发布Bun 1.3.14版本,更新包括新增图片处理功能Bun.Image,加入全局虚拟包存储机制,让不同项目的包通过符号链接指向全局存储位置,减少重复复制包文件,也为Bun.serve加入实验性HTTP/3支持,并重写文件变更监控功能。该版本也升级JavaScriptCore,改善运行环境底层兼容性与性能表现,并缩小Linux与Windows版Bun可执行文件体积,macOS版变化则不大。