Bun JS工具包新增MySQL驱动和密钥管理功能

Bun团队发布了1.2.21版本,新增MySQL和SQLite内置驱动、YAML解析器和密钥管理器等功能。新的数据库驱动属于Bun.SQL API,现已支持MySQL、MariaDB和SQLite。据称其MySQL客户端比Node.js的mysql2包快9倍。Bun.secrets为CLI工具和本地开发提供原生密钥管理。此版本还包含安全扫描API、独立可执行文件构建API等更新。

Bun团队发布了其JavaScript打包器和运行时的1.2.21版本,该工具使用Zig语言编写,新增了包括MySQL和SQLite内置驱动、YAML解析器以及用于工具和本地开发的密钥管理器等功能。

新的数据库驱动是bun.SQL API的一部分,该API于今年1月推出,最初仅支持PostgreSQL。现在Bun还支持MySQL和MariaDB。此外,长期作为bun:sqlite存在的SQLite客户端也被添加到Bun.SQL中,文档将其描述为"多数据库系统的统一API"。

根据Bun创始人Jarred Sumner的说法,基于运行10万次简单查询所需的时间,Bun.SQL比在Node.js中使用mysql2包快9倍,比在Node中使用MariaDB客户端快4倍多。MySQL驱动与Bun本身一样,都是用Zig语言编写的。

本次发布还新增了Bun.secrets,这是一个面向CLI工具和本地开发的原生密钥管理器。在macOS上使用Keychain,在Linux上使用libsecret,在Windows上使用凭据管理器。其优势是避免在纯文本文件中存储密码和令牌等数据。

最新版本还向Bun API添加了YAML解析器,其工作方式与现有的JSON和TOML解析器相同。

本次更新的其他功能包括安全扫描器API、更细粒度的审计命令用于报告漏洞、构建独立可执行文件的API,以及Windows上的代码签名bun.exe二进制文件,消除了安全警告。

Bun 1.0于2023年9月发布,此前从2022年7月开始发布预览版本。它不仅因使用Zig语言而备受关注,还因使用苹果的JavaScriptCore作为运行时引擎而与使用谷歌V8引擎的竞争对手Node.js和Deno区别开来。

虽然Bun这个名字暗示了打包器功能,但该工具的范围远超此功能,文档现在将其描述为"JavaScript和TypeScript应用的一体化工具包"。团队致力于实现完整的Node.js兼容性,但目前尚未完成。Bun还包括测试运行器、支持热重载的服务器,以及数据库、S3兼容对象存储和Redis客户端的内置API。

Bun的附加功能使其容易受到功能蔓延的指责,一些开发者认为数据库客户端等功能不应该属于核心运行时。有人在X平台上对最新更新评论说:"下一步:bunos操作系统"。

反对的观点认为,这些功能对开发者来说很方便,并且减少了应用程序中的依赖数量。有人在GitHub上对Bun路线图的评论中说:"Bun中几乎没有JavaScript生态系统中不存在的东西。可以说,几乎所有这些都是大量重复的工作。但实际上不是,因为Bun很棒,将它们整合到一个地方,具有惊人的性能和良好的人机工程学。"

Sumner在X平台上表示,下一个主要版本Bun 1.3的发布日期将很快公布。

Q&A

Q1:Bun.SQL API支持哪些数据库?

A:Bun.SQL API现在支持PostgreSQL、MySQL、MariaDB和SQLite四种数据库。该API最初于今年1月推出时仅支持PostgreSQL,现在已扩展为多数据库系统的统一API,为开发者提供更全面的数据库连接选择。

Q2:Bun的性能相比Node.js有什么优势?

A:根据Bun创始人的测试数据,基于运行10万次简单查询的时间,Bun.SQL比在Node.js中使用mysql2包快9倍,比使用MariaDB客户端快4倍多。这主要得益于Bun使用Zig语言编写和苹果JavaScriptCore运行时引擎。

Q3:Bun.secrets密钥管理器如何在不同操作系统上工作?

A:Bun.secrets会根据操作系统使用相应的安全存储机制:在macOS上使用Keychain,在Linux上使用libsecret,在Windows上使用凭据管理器。这样可以避免在纯文本文件中存储密码和令牌等敏感数据,提高安全性。

来源:The Register

0赞

好文章,需要你的鼓励

2025

08/28

08:09

分享

点赞

邮件订阅