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上使用凭据管理器。这样可以避免在纯文本文件中存储密码和令牌等敏感数据,提高安全性。
好文章,需要你的鼓励
印度理工学院研究团队从大脑神经科学的戴尔定律出发,开发了基于几何布朗运动的全新AI图像生成技术。该方法使用乘性更新规则替代传统加性方法,使AI训练过程更符合生物学习原理,权重分布呈现对数正态特征。研究团队创建了乘性分数匹配理论框架,在标准数据集上验证了方法的有效性,为生物学启发的AI技术发展开辟了新方向。
英伟达和诺基亚宣布战略合作,将英伟达AI驱动的无线接入网产品集成到诺基亚RAN产品组合中,助力运营商在英伟达平台上部署AI原生5G Advanced和6G网络。双方将推出AI-RAN系统,提升网络性能和效率,为生成式AI和智能体AI应用提供无缝体验。英伟达将投资10亿美元并推出6G就绪的ARC-Pro计算平台,试验预计2026年开始。
Sony AI开发出SoundReactor框架,首次实现逐帧在线视频转音频生成,无需预知未来画面即可实时生成高质量立体声音效。该技术采用因果解码器和扩散头设计,在游戏视频测试中表现出色,延迟仅26.3毫秒,为实时内容创作、游戏世界生成和互动应用开辟新可能。