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,保留核心能力、砍掉冗余。
上手方式
- 当 MCP 用(最省事):Obscura 自带
obscura-mcp,AI Agent 可直接接入作为浏览器自动化工具,无需自己写对接。 - 替换 Puppeteer/Playwright:现有脚本只需把连接地址指向 Obscura,代码几乎不动。
- 命令行: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 划算。
- 服务器端自动化:不想在服务器上装一墙系统依赖的场景。
参考资料
- 项目地址:github.com/h4ckf0r0day/obscura
- 文档:docs.obscura.sh
- 原文:公众号「木子空间Pro」《Chromium 装到崩溃?一个内存只要 30MB 的 Rust 浏览器,还兼容 Puppeteer》(微信原文,发布于 2026-08-29)