Bun 1.2大更新强化Node.js兼容性,原生支持S3与PostgreSQL

360影视 2025-01-27 16:24 2

摘要:轻量级JavaScript执行环境Bun发布1.2版本,大幅提升对Node.js的兼容性,使开发者更容易移植现有项目。新版本更原生支持Amazon S3与PostgreSQL,简化了访问S3存储桶和PostgreSQL数据库的流程,并提升相关操作的性能,进一步

轻量级JavaScript执行环境Bun发布1.2版本,大幅提升对Node.js的兼容性,使开发者更容易移植现有项目。新版本更原生支持Amazon S3与PostgreSQL,简化了访问S3存储桶和PostgreSQL数据库的流程,并提升相关操作的性能,进一步加速云计算应用程序的开发。

在Node.js兼容性方面,Bun 1.2采用了Node.js的官方测试组件来验证其兼容性。这项改变让Bun 1.2在执行fs、path、events、string_decoder与stream等Node.js模块时,可通过90%的Node.js官方测试案例,因此开发者在将依赖这些核心模块的Node.js项目,移植到Bun环境时,将会更加顺利。

而Bun 1.2现在也添加node:http2、node:dgram、node:cluster与node:zlib等模块的支持,在功能上更进一步拉近与Node.js生态系的差距,同时又能提供更快地执行速度,以node:zlib测试来说(下图),Node.js吞吐量为171 mb/s,而Bun 1.2则为205 mb/s。

由于Node.js与Bun的JavaScript引擎不同,Node.js采用Chrome V8,Bun则使用Safari的JavaScriptCore,而Bun开发团队现在于JavaScriptCore中实例了V8的公开C++ API,让原本依赖这些API的C++组件,也能在Bun环境运行。

除了Node.js兼容性外,Bun 1.2原生支持S3与Postgres也是这次更新的一大亮点。Bun 1.2添加了Bun.s3 API,让开发者能直接操作S3,支持读取、写入、删除文件,以及产生预签章URL等操作。开发团队表示,因为Bun.s3 API采用原生程序代码编写,读取性能为使用JavaScript SDK的5倍。此外,Bun 1.2更进一步将S3集成进现有的Bun.file API中,开发者通过使用s3://协议,就可直接访问S3上的文件,简化了开发流程。

而对于PostgreSQL数据库,Bun 1.2也提供了内置的Bun.sql客户端,支持以标签模板语法执行SQL查询,并自动处理字符串跳脱(Escape),避免SQL注入风险。Bun.sql同样以原生程序代码开发,并针对性能进行优化,因此Bun.sql可比其他PostgreSQL客户端快50%(下图)。官方还预告,他们很快也会支持MySQL。

在组件管理方面,Bun 1.2将默认的锁定文件(Lockfile)格式从二进制的bun.lockb改为文本格式的bun.lock。新的bun.lock采用JSONC格式,支持注解与尾逗号(Trailing commas),更易于人工阅读与版本控制系统比对差异。不过,Bun 1.2仍将维持向下兼容支持bun.lockb。开发团队强调,即使bun.lock是文本格式,但bun install的性能仍比前一版本提升30%。

来源:正能量直击现场

相关推荐