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上使用凭据管理器。这样可以避免在纯文本文件中存储密码和令牌等敏感数据,提高安全性。
好文章,需要你的鼓励
今天讲的出海案例是开创电气,一家金华手持式电动工具制造商,在越南基地完成首款产品验收并形成80万台年产能力。
JETSPEC是由UC San Diego等机构联合提出的推测解码框架,通过树形因果掩码让草稿头在一次前向传播中生成分支一致的候选树,在MATH-500上实现最高9.64倍端到端加速。
研究人员意外发现,标准MOSFET晶体管可同时模拟神经元和突触行为,形成"神经突触随机存取存储器"(NSRAM)。该技术仅需一至两个晶体管即可实现传统需数十乃至数百个元件才能完成的神经信号处理,且与现有硅基制造工艺完全兼容,良率达100%。未来有望应用于边缘AI及高能效神经形态芯片,长远或可挑战GPU地位。
本文介绍了中国科学院自动化所的研究,揭示了大型语言模型在多轮工具调用强化学习中崩溃的根本原因,并系统评估了五种监督信号对训练稳定性和泛化能力的影响。