Bun 1.4 用 WebView 构建网页执行 API
Simon Willison3 天前
Bun 1.4 的新能力
Bun 1.4 是 Bun 完成从 Zig 重写为 Rust 后发布的首个稳定版本。该版本加入了 1,517 项来自 Node.js 测试套件的测试,并修复超过 2,900 个问题。官方还表示,Bun 1.4:
- 将空闲状态下的 CPU 使用量降低约 5 倍
- 将内存使用量最多降低 35%
- 在 Linux 上的启动速度提升约 50%
- 新增
Bun.Image - 新增
Bun.WebView - 新增
Bun.markdown - 新增
Bun.cron() - 新增
Bun.Terminal - 支持
bun run --parallel - 支持
bun test --parallel - 新增
bun audit fix、bun dedupe和bun prune
Bun.WebView 能做什么
其中,Bun.WebView 为 Bun 核心增加了浏览器自动化支持。它可以使用 macOS WebKit,也可以通过 Chrome DevTools Protocol(CDP)控制本地 Chromium 进程。
基于这一能力,有人制作了一个类似 shot-scraper 的 JSON API 原型:服务接收网页地址,加载页面后执行指定的 JavaScript,并返回处理结果。这个设计适合将网页加载与脚本执行能力封装成可调用的接口。
内存开销测试
在使用 cgroups 进行测试时,该 TypeScript 服务运行完整 Chrome 并处理复杂网页,似乎需要约 192MB 至 256MB 的容器内存。
这一结果仅针对该原型及其测试场景,实际开销仍会受到网页复杂度、并发量、浏览器进程管理方式和执行脚本的影响。它至少说明,基于 Bun.WebView 构建浏览器自动化 API 时,浏览器本身的资源占用仍是部署时需要重点考虑的因素。
