Simon Willison · 博客

Bun 1.4新Bun.WebView上的shot-scraper风格JSON API

A shot-scraper-style JSON API on Bun 1.4's new Bun.WebView

二〇二六年八月二十一日 · 英文原文

Bun 1.4 发布,为自 Rust 重写后的首个稳定版本,新增 1,517 项 Node.js 兼容测试,修复超 2,900 个问题,空闲 CPU 使用率降低 5 倍,内存最多减少 35%,Linux 启动提速 50%。新功能包括 Bun.WebView、Bun.Image、Bun.cron() 等。作者基于 Bun.WebView 构建 shot-scraper 风格 JSON API,通过 WebKit 或 CDP 控制 Chromium,原型需 192MB-256MB 容器运行完整 Chrome,已用 cgroups 测试。

研究:基于 Bun 1.4 新 Bun.WebView 的 shot-scraper 风格 JSON API

今天迎来了期待已久的 Bun 1.4 发布,这是自几个月前那次著名的 Rust 重写以来的首个稳定版本。有趣的是,发布说明中对 Rust 重写轻描淡写,转而介绍了一系列令人眼花缭乱的新功能,并声称修复了 2,900 多个额外 bug:Bun 1.4 新增了来自 Node.js 测试套件的 1,517 项测试——这是自 Bun 1.0 以来在 Node.js 兼容性上最大的一次跃升。Bun v1.4 还修复了超过 2,900 个问题。它将空闲 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 从 Zig 重写为 Rust。

其中,最吸引我注意的是 Bun.WebView,它为 Bun 核心添加了对浏览器自动化的第一等支持,可通过 macOS WebKit 或通过 Chrome DevTools 协议(CDP)控制本地 Chromium 进程。我让 Claude Code for web 构建了一个 web API 原型,该 API 提供加载网页并对其执行 JavaScript 的能力,灵感来自我的 shot-scraper javascript CLI 工具——部分是为了看看此类服务需要多少 RAM。以下是该 TypeScript 服务器实现,它似乎需要 192MB-256MB 的容器才能针对复杂网页运行完整的 Chrome——已使用 cgroups 进行测试。

标签:浏览器、JavaScript、AI、Rust、TypeScript、生成式 AI、LLM、编码代理、Bun

译自 Simon Willison · 博客 · 录于 二〇二六年八月二十一日