Bun这个兼具运行时、打包工具、转译器和包管理器多重功能的JavaScript工具,在日前迎来了1.0.23版本的更新。本次更新针对社区反馈修复了40个bug,共计获得了194个赞。更新使Bun在打包部署等方面的易用性有所提升。
引入SQLite数据库:轻松管理数据
Bun v1.0.23的一大亮点是引入了对SQLite数据库的支持。开发者现在可以直接在Bun中导入SQLite数据库,极大简化了在项目中使用SQLite的流程。通过简单的import
语句,开发者能够轻松导入和管理数据库,这对于需要处理数据存储和读取的应用程序来说,无疑是一个巨大的便利。
import db from './my.db' with {type: "sqlite"};
此外,Bun也支持将SQLite数据库嵌入到单文件可执行程序中。这意味着开发者可以创建包含数据库的独立应用程序,极大地简化了部署过程。
性能提升:更快的TCP和bug修复
在性能方面,Bun v1.0.23做出了显著的优化。特别是在Linux系统上,TCP传输性能提升了4%,这得益于减少了系统调用次数。这一改进对于需要处理大量网络数据的应用来说,无疑是一个巨大的提升。
Node.js兼容性和资源管理
对于Node.js的兼容性,Bun v1.0.23也进行了重要的更新,解决了一些先前版本中存在的问题。例如,现在可以在Bun环境中无缝使用Node.js内置模块,如fs
和path
。此外,Bun还引入了对TC39提出的第三阶段提案——资源管理(Resource Management)的支持。这意味着开发者可以更加有效地管理文件句柄、数据库连接和网络套接字等资源。
async function * g() {
await using handle = acquireFileHandle(); // async-block-scoped critical resource
}
其他重要更新
- SQLite升级至3.45.0版本:加入了JSONB支持,使得存储和读取JSON数据更加高效。
- 嵌入.node文件的支持:允许开发者在构建时将NAPI插件
.node
文件嵌入,使得打包本地Node.js模块变得简单。 - HTTP服务器头部限制提升:从50提升到100,增强了服务器的处理能力。
- 增强的
import.meta
支持:新增了import.meta.dirname
和import.meta.filename
支持,增强了与Node.js的兼容性。 fs/promises
中的FileHandle
支持:使得文件操作更加灵活和强大。- 众多bug修复和性能优化:包括zlibBufferSync的错误处理、
Bun.spawn()
中的文件描述符泄漏、URL处理的一致性问题等。
本次更新使Bun成为Web应用打包部署更便捷高效的选择。相信随着Bun的持续完善,会有更多开发者加入使用。