Obscura 是一个 Rust 编写的轻量 Headless 浏览器引擎:内存占用约 30MB、二进制约 70MB,不依赖 Chromium,兼容 Puppeteer/Playwright,定位是 Headless Chrome 的 drop-in replacement(GitHub 仓库,Apache-2.0,22k+ stars)。

为什么 Headless Chrome 这么重

Headless Chrome 并非"去掉界面的 Chrome",仍是完整 Chromium 内核:Blink 渲染引擎、V8、Skia 图形库、数百个 Web 平台特性和完整 DevTools。而 Headless 场景真正需要的只有四件事:执行 JavaScript、渲染页面、截图、导出 PDF——其余功能都是在为用不上的能力买单。

与 Headless Chrome 的对比

指标 Obscura Headless Chrome
内存占用 30 MB 200+ MB
二进制大小 70 MB 300+ MB
反检测 内置 无
页面加载 ~85 ms ~500 ms
启动速度 近即时 ~2 秒
Puppeteer 支持 支持
Playwright 支持 支持

技术实现:Rust 编写,用 V8 跑真实 JavaScript,走 Chrome DevTools Protocol,保留核心能力、砍掉冗余。

上手方式

  1. 当 MCP 用(最省事):Obscura 自带 obscura-mcp,AI Agent 可直接接入作为浏览器自动化工具,无需自己写对接。
  2. 替换 Puppeteer/Playwright:现有脚本只需把连接地址指向 Obscura,代码几乎不动。
  3. 命令行:CLI 支持桌面截图、录屏、导出 PDF。

亮点

  • 内置反检测:规避逻辑做进引擎,而非外挂插件;Chromium headless 指纹易被反爬识别。
  • 截屏、录屏、PDF 原生支持:Agent 工作流最常用的三件事无需额外依赖。
  • 启发 Cloudflare:README 提到 Cloudflare 的 agent-first 浏览器 Kitesurf 原型从移植 Obscura 起步。
  • Apache-2.0 开源:引擎完全免费开源,商业化部分在 Obscura Cloud(托管版)。

局限(作者自述)

  • 无界面,是给脚本和 Agent 跑的引擎,不适合普通用户浏览网页。
  • 生态刚起步,冷门 API / 浏览器特性可能覆盖不全,复杂页面有踩坑风险。
  • 作者仅做了轻量试用与文档层面验证,高并发、上千页面场景无真实数据背书。
  • “30MB"是运行时内存,不是二进制大小——安装包实际约 70MB。

适用人群

  • 爬虫开发者:省掉 Docker 里一整套 Chromium 系统依赖(libnss3、libatk 等)。
  • AI Agent 开发者:需要浏览器自动化、截图、PDF 导出,MCP 接口直接可用。
  • CI/CD:容器里塞 70MB 的浏览器远比 300MB+ 的 Chromium 划算。
  • 服务器端自动化:不想在服务器上装一墙系统依赖的场景。

参考资料