新型高速 JavaScript 运行时 Bun 0.7 发布

导读 近日,新型 JavaScript 运行时 Bun 正式发布了 0.7 版本,带来了重大的升级。据悉,Bun 是一个配套齐全的 JavaScript 解决方案,集运行时、打包器、转译器和包管理器于一体,追求极致的运行速度。此次更新主要集中在与 Node.js 的兼容性提升和新功能支持上。

新型高速 JavaScript 运行时 Bun 0.7 发布新型高速 JavaScript 运行时 Bun 0.7 发布

首先,Bun 宣布与流行的前端打包工具 Vite 实现了初步兼容。开发者现在可以使用 Bun 直接运行 Vite 项目,享受热更新等方便功能,无需进行额外配置。不过由于 Bun 和 Vite 内部机制不同,Vite 目前仍未使用 Bun 的打包和转译优势。但这为未来的深度集成创造了条件。

然后,Bun 实现了浏览器环境下的 Worker 线程支持。开发者现在可以通过新加的 Worker 类创建子线程,利用多核 CPU 提升计算密集型任务的执行效率。Bun 的 Worker 天生支持模块化、TypeScript 等特性,比浏览器原生 Worker 用起来更顺手。值得一提的是,流行的 comlink 库也可以无缝应用在 Bun 的 Worker 中,让线程间通信更加方便。

此外,Bun 还原生支持了异步上下文存储 AsyncLocalStorage,这是许多框架实现异步操作追踪的关键。接下来 Bun 有望兼容 Next.js 等流行框架。

在 Node.js 兼容性方面,Bun 追加实现了事件循环中的定时器回调保证异步执行的特性,对命令行应用来说重要的标准输出流也增强了窗口尺寸查询支持。特别是在 TLS 网络方面,Bun 改进了密钥导出、会话重用等接口的实现,满足了流行加密库的需求。

当然,此次更新也增加了实用的新功能。比如,开发者现在可以更容易地在主线程与 Worker 之间传递数据,还可以利用结构化克隆算法(structuredClone())进行高效的深拷贝。将可读流转换为 FormData 对象的 API 也成为可能。测试框架方面,新增了在第一个测试失败后立即结束的 “--bail” 模式,提高了 CI/CD 环境下的效率。WebSocket 连接也增强了 ping/pong 监听支持。

一些棘手的 Bug 导致的内存泄露和性能问题也得到修复。总体来看,Bun 0.7 版本带来的升级让其在与 Node.js 的竞争中又近了一步。随着兼容性进一步提高,开发者可能会看到越来越多的项目转向使用 Bun。我们拭目以待 Bun 后续的表现。毕竟,一个快速、高效、易用的 JavaScript 解决方案,对开发者的吸引力可想而知。

原文来自:https://www.oschina.net/news/250429

猜你喜欢

转载自blog.csdn.net/weixin_56035688/article/details/132185288
Bun