2GB 降到 123MB:用 Zig 重写的无头浏览器 Lightpanda 是怎么做到的

2GB 降到 123MB:用 Zig 重写的无头浏览器 Lightpanda 是怎么做到的 2GB 降到 123MB用 Zig 重写的无头浏览器 Lightpanda 是怎么做到的【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browser如果你在服务器上并行跑过几十个 Headless Chrome大概都知道那个瞬间内存先扛不住任务还没跑完OOM Killer 已经出手了。Lightpanda 就是为了解决这个问题而生的——它不是 Chromium 的分支也不是 WebKit 的补丁而是一个用 Zig 语言从零写起的无头浏览器只保留自动化浏览真正需要的三块网络请求、DOM 和 JavaScript 执行图形渲染引擎整个都不要。为什么内存能压得这么低先砍掉渲染管线传统无头浏览器其实还在无头地跑渲染布局、绘制、合成一套都少不了只是最后不显示。Lightpanda 干脆不实现渲染--dump markdown之类的输出直接来自 DOM省掉的是整条管线而非某个环节的优化。V8 引擎照用但绑定层是自己写的执行 JavaScript 用的是 Chromium 同款的V8 引擎浏览器里真正跑 JS 的引擎但 Zig 与 V8 之间的绑定层全部是自己实现的放在 src/browser/js/。配合预编译的 V8 快照技术启动时不用重新初始化 JS 运行环境实例频繁创建销毁的场景尤其受益。说 CDP 这套行话它实现了CDP 协议Chrome DevTools ProtocolChrome 远程调试用的通信协议意味着 Puppeteer 等现有自动化工具几乎不用改代码就能接上9222 端口一开就能连。数字能说明多少指标LightpandaHeadless Chrome差距峰值内存100 个页面123MB2GB约 16 倍执行时间100 个页面5 秒46 秒约 9 倍数据来自官方基准测试在 AWS EC2 m5.large 实例上通过真实网络请求加载 933 个真实网页后取的平均表现仅供参考。一条命令跑起来下面两条命令完成安装并抓取第一个页面brew install lightpanda-io/browser/lightpanda lightpanda fetch --dump html https://example.com如果更喜欢容器docker run -d -p 127.0.0.1:9222:9222 lightpanda/browser:nightly一条命令就能起一个 CDP 服务。想从源码构建的话是make build但需要 Zig 0.15.2、Rust 和 clang首次编译要下载并编译 V8预留 20 分钟以上。什么场景下它最顺手AI Agent 的浏览器底座。需求让 LLM 能直接操作网页。Lightpanda 内置了 agent 模式用自然语言下指令它就负责导航、点击、填表、提取数据lightpanda agent --task top story on news.ycombinator.com?会话还能导出成 PandaScript——一段纯 JavaScript之后用lightpanda run session.js确定性重放不需要在运行时再带一个模型。它同样内置了 MCP 服务器lightpanda mcp多个 Agent 各连各的会话页面和 Cookie 互相隔离。大规模抓取与自动化测试。需求同一台机器上跑尽可能多的实例。CDP 服务起好后Puppeteer 直接连const browser await puppeteer.connect({ browserWSEndpoint: ws://127.0.0.1:9222, }); const context await browser.createBrowserContext(); const page await context.newPage(); await page.goto(https://example.com);网络层自带--obey-robots选项、代理支持和请求拦截爬虫场景的规矩不用自己再写一遍。如果哪天你想改这里想动网络行为请求、Cookie、拦截、robots 规则看 src/network/底层是 Libcurl 封装。想动 JS 环境或 DOM API 绑定看 src/browser/webapi/ 和 src/browser/js/仓库里还有 400 多个 HTML 端到端测试用例对应。说几句实话Lightpanda 目前是 Beta官方自己也在文档里承认仍会遇到报错甚至崩溃CORS 还没实现也没有原生 Windows 二进制WSL 可用。所以定位很清楚服务端自动化、AI Agent、大规模抓取——这些场景它现在是同类里最省资源的选项之一但如果你需要完整的 CSS 布局计算或依赖冷门 Web API还是先用 Chrome 打底。想参与的话直接提 Issue 和 PR 即可贡献指南在仓库的 CONTRIBUTING.md 里。【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考