Bun 0.8.1 版本发布,修复上一版本的问题

Bun v0.8.1版本发布。这一版在0.8.0发布一天后发布,重点主要是修复了多个存在的问题和bug。

首先,新版本解决了一个很关键的问题:在处理格式错误的版本名时,bun install会崩溃。这意味着如果用户输入"^0.0.2rc1"等无效版本标识符,系统会停止运行。在Bun v0.8.1中,开发者团队成功地修复了这个问题,使得bun install面对这类输入不会再崩溃。这对于用户来说,无疑增加了操作的稳定性和可靠性,提高了整体的用户体验。

此外,另一个比较严重的问题也得到了修复。原本,打包器会在知道运行时会失败且位于try/catch块内的require()调用时自动内联,这在打包使用可选依赖的代码时非常有用。然而这个特性被误启用,导致在某些情况下可能出现运行错误。现在这个问题已经得到了修正,大大提高了代码的运行效率和稳定性。

除此之外,Bun v0.8.1还修复了其他几个bug,包括node:http中关于代理URL的bug、bun install处理过期package.json脚本的问题,以及bun --inspect中源代码映射bug。这些改进都有助于提升Bun的整体性能和用户体验。

在引入新功能方面,v0.8.1版本新增了对Unix域套接字的支持。这项新功能让你可以将套接字指向文件系统上的文件,而非网络主机/端口。这在运行只能从同一台机器访问的服务器时十分有用,如在某些容器或代理环境下。通过这种方式,可以有效地提高数据传输的效率和安全性。

const server = Bun.serve({
  unix: "/tmp/my-socket.sock", // <-- new option
  fetch(req){
    console.log(req.url);
    return new Response("Hello world!");
  }
});

console.log(`Listening on unix:///tmp/my-socket.sock!`);

性能优化是这次更新的另一个重要内容。在v0.8.0中,存在一个性能退化的问题,事件循环调度工作得不够好,造成读取请求体时未能及时处理微任务队列。但是在v0.8.1中,这个问题得到了修复。测试结果显示,新版本处理请求的速度比v0.8.0快了2.8倍,这对于用户来说,将感受到明显的速度提升。

内存管理也是Bun v0.8.1版本进行改进的地方。原先,HeadersBlob并未向垃圾收集器报告它们的大小,导致当HeadersBlob足够大时,可能会导致垃圾收集器没有如期运行。现在,Bun会向垃圾收集器报告HeadersBlob的大小,并且每次调用fetch()都会向垃圾收集器报告所用内存。这一改变将有助于更好地管理内存资源,避免因内存使用过大而影响Bun的运行效率。

最后,值得一提的是,Bun 1.0计划在9月7日发布。这一新的重大版本将会带来更多功能的改进和更新,让我们一起期待它的到来!

猜你喜欢

转载自www.oschina.net/news/255433/bun-v0-8-1
Bun