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 fixbun dedupebun 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 时,浏览器本身的资源占用仍是部署时需要重点考虑的因素。

评论

请登录后发表观点

暂无数据