摘要:v1.2.21 版本于 2025 年 8 月 25 日发布,修复了 69 个问题并引入了多项重磅新特性;紧接着 9 月 14 日发布的 v1.2.22 版本则带来了备受期待的异步堆栈跟踪功能,进一步提升了开发体验。
JavaScript 运行时 Bun 近期发布了两个重要版本更新。
v1.2.21 版本于 2025 年 8 月 25 日发布,修复了 69 个问题并引入了多项重磅新特性;紧接着 9 月 14 日发布的 v1.2.22 版本则带来了备受期待的异步堆栈跟踪功能,进一步提升了开发体验。
Bun 的 MySQL/MariaDB 驱动使用 Zig 语言编写,性能表现出色。开发者可以通过选项对象或 URL 字符串来建立连接:
import { SQL } from"bun";const sql = new SQL({
adapter: "mysql",
hostname: "127.0.0.1",
username: "user",
password: "password",
database: "buns_burgers",
});
// 使用标记模板字面量执行查询
const users = await sql`SELECT * FROM users;`.all;
在 v1.2.22 中,MySQL 适配器得到了进一步改进,新增了affectedRows和lastInsertRowid属性,修复了列类型处理问题,并支持了 TLS 连接和mysql_native_password认证。SQLite 集成Bun.SQL同样内置了 SQLite 支持,将之前仅适用于 PostgreSQL 的简洁标记模板字面量 API 扩展到了 SQLite 用户:const db = new SQL(":memory:");
await db`CREATETABLEusers (idINTEGER PRIMARY KEY, nameTEXT)`;
const users = await db`SELECT * FROMusersORDERBYnameASC`;
Bun v1.2.21 内置了 YAML 解析器,开发者可以直接导入.yaml.yml文件,或使用Bun.YAML.parse在运行时解析 YAML 字符串。这与 Bun 对 JSON 和 TOML 的内置支持保持一致:// 直接导入 YAML 文件
import pkg from"./package.yaml";
console.log(pkg.name); // "my-package"
// 解析 YAML 字符串
import { YAML } from"bun";
const items = YAML.parse("- item1\\n- item2");
Bun v1.2.21 大幅优化了 Worker 间使用postMessage发送字符串的性能,以及使用structuredClone克隆字符串的速度,性能提升高达 500 倍。v1.2.22 进一步优化了简单对象的处理,为纯 JavaScript 对象(仅包含字符串、数字、布尔值等原始类型)添加了快速路径,性能提升 240 倍。降低空闲 CPU 使用率之前Bun.serve会每秒唤醒一次来更新缓存的 Date 头部,即使服务器完全空闲也会消耗少量 CPU。现在这个定时器只在有请求时才激活,当服务器空闲时,Bun 进程将真正休眠,几乎不消耗 CPU 资源。
Bun v1.2.22 实现了开发者期待已久的异步堆栈跟踪功能。现在错误堆栈会包含完整的异步执行路径,大幅提升了 async/await 代码的调试体验:
asyncfunctionfoo {returnawait bar;
}
asyncfunctionbaz {
await1;
thrownewError("oops");
}
// 现在会显示完整的异步调用链:
// at baz (async.js:11:13)
// at async bar (async.js:6:16)
// at async foo (async.js:2:16)
Bun.secrets使用操作系统的原生凭据存储来安全地存储和检索凭据,避免了在纯文本文件中存储敏感数据。它在 macOS 上使用钥匙串服务,在 Linux 上使用 libsecret,在 Windows 上使用凭据管理器。包管理器安全扫描 APIbun install现在支持在安装前扫描包的安全漏洞。开发者可以在bunfig.toml中配置安全扫描器,当检测到致命级别的漏洞时,安装将被取消。bun audit 新增过滤选项bun audit命令新增了多个过滤标志,包括--audit-level设置最低严重级别、--prod仅审计生产依赖、忽略特定 CVE 等,便于集成到 CI/CD 管道中。之前只能通过 CLI 使用的--compile功能现在可以在 JavaScript API 中使用。开发者可以通过编程方式创建独立的可执行文件,并支持跨平台编译:awaitBun.build({
entrypoints: ["./cli.ts"],
compile: {
target: "bun-windows-x64",
outfile: "./my-app-windows",
windows: {
icon: "./icon.ico",
},
},
});
Windows 可执行文件元数据
Windows 平台的独立可执行文件现在可以嵌入元数据,包括应用程序标题、发布者、版本、描述和版权信息,这些信息将在 Windows 资源管理器的文件属性中可见。
两个版本共修复了大量 Node.js 兼容性问题,包括:
WebSocket 升级中断时的 TypeError
N-API 插件的多个断言失败问题
child_process 中 stdio 流的处理
crypto 模块的算法名称大小写问题
readline、net、http2 等模块的各种兼容性修复
详情查看: https://bun.com/blog/bun-v1.2.22
AI造物社区创作激励计划来啦 ⬇️
来源:opendotnet
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!