2026 年 10 月 2 日,Lightpanda 发布 1.0.0,两年开发、一万次提交之后摘掉 Beta 标签;随后三周连出 1.0.1(10 月 15 日)与 1.0.2(10 月 23 日)。这个用 Zig 语言实现的浏览器引擎在 GitHub 累计 40055 个 star、单日新增 827 个,重新回到 Trending 前列。它的定位写在 README 第一行:为 AI Agent 和自动化场景构建的无头浏览器(headless browser,指没有图形界面、供程序调用的浏览器),引擎代码与 Chromium、WebKit 均无继承关系。

一个动机:每天 2000 万页的 Chrome 舰队养不起
创始人 Francis Bouvier 的前一家公司 BlueBoard(电商数据分析平台,2020 年被 ChannelAdvisor 收购)每天要从 2000 万个网页采集数据,靠一支无头 Chrome 实例舰队撑着。他对这段经历的总结很具体:RAM 和 CPU 开销大,打包和部署难,无头模式用不到的功能占了一大堆。Lightpanda 从这个痛点里长出来,1.0 公告给出的现状是:部分生产客户每天经它取回超过 3000 万个页面,用在 AI Agent、搜索 API、索引和数据提取上。
现代网页离不开 JavaScript 执行。单页应用、无限滚动、即时搜索,静态 HTTP 请求拿到的常是个空壳,所以无头浏览器必须带 JS 引擎。Lightpanda 的取舍是引擎自己写,把资源集中在 JS 与 DOM 上,图形渲染整条管线砍掉。
933 页爬取基准的完整数据
基准方法论公开在 demo 仓库:Go 爬虫(基于 chromedp)爬 Amiibo 演示站全部子页共 933 个 URL,真实走网络;对照浏览器为 Google Chrome 143.0.7499.169;测试机为 AWS m5.xlarge(x86_64)全新 Ubuntu;内存用 smem 统计(计入共享内存页),每 100ms 采样一次取峰值,CPU 用 ps 累计。


README 的头条口径(100 页批次):内存峰值 123MB 对 2GB,约 16 倍差距;执行时间 5 秒对 46 秒,约 9 倍。完整数据表如下(引自 BENCHMARKS.md):
| 配置 | 耗时 | 内存峰值 | CPU 占用 |
|---|---|---|---|
| Lightpanda 1 进程 | 0:51.68 | 27.2M | 11.1% |
| Lightpanda 2 进程 | 0:29.79 | 31.7M | 26.6% |
| Lightpanda 5 进程 | 0:11.70 | 43.9M | 71.6% |
| Lightpanda 10 进程 | 0:06.76 | 63.7M | 135.3% |
| Lightpanda 25 进程 | 0:04.81 | 123.0M | 204.7% |
| Lightpanda 100 进程 | 0:05.23 | 410.2M | 202.8% |
| Chrome 1 标签页 | 1:22.83 | 1.3G | 124.9% |
| Chrome 2 标签页 | 0:53.11 | 1.3G | 202.3% |
按表中数字换算,单进程对单标签页,Lightpanda 快约 1.6 倍、内存差约 48 倍;差距随并发放大。Chrome 开到两个标签页内存就钉死在 1.3G,Lightpanda 拉到 25 进程、耗时压进 5 秒区间时峰值内存也只有 123M,100 进程也才 410M。它的优势来自横向扩展,单实例对比的差距其实有限,选型时应该按自己的并发形态算这笔账。
砍掉渲染管线,换来什么、失去什么
引擎的组件分工:JS 引擎用 V8(1.0 跟进到 15.5.35.13,与 Chrome、Node.js 同源的最新稳定版),HTML 解析用 Servo 项目的 html5ever,HTTP 栈是 libcurl,其余部分以 Zig 编写。布局计算与绘制整条不做。
收益是内存与速度,代价写进了 Web Platform Tests(WPT,浏览器厂商共用的标准符合度测试套件)成绩单:Lightpanda 通过 1,739,845 个子测试,Chrome 通过 2,184,491 个、Firefox 通过 2,137,997 个(2026 年 9 月 wpt.fyi 数据,引自 1.0 公告),约为 Chrome 的八成。差距的一半以上集中在 CSS、editing、SVG 套件,这些恰恰测试布局与绘制,属于被主动放弃的部分。
增长曲线能看出工程节奏:2024 年 11 月 Beta 发布时只通过 2,645 个子测试;到 2026 年 3 月靠 DOM、HTML、Fetch、URL、cookie、events 补到约 29 万;2026 年 4 月 encoding 套件整体通过,这一个套件就有约 115 万个子测试(大部分是字符映射生成表),总数几天内跳涨;4 月到 9 月再从 workers、Shadow DOM、IndexedDB、XPath、WebSockets、forms 补进约 34 万。每轮结果每日公开在其 WPT dashboard。
为什么是 Zig
选型文章的标题起得坦率:《Why We Built Lightpanda in Zig》,副标题 Because We're Not Smart Enough for C++ or Rust。Bouvier 自述的理由是语言要简单:他写了很多年 Go,浏览器引擎需要系统级性能所以 Go 出局,又想要比 C 更现代的工具链与安全性,Zig 卡在中间。
技术理由有三条。第一,浏览器引擎的内存模式(每页一个生命周期、共享缓存、交叉引用密集的对象图)与 Rust 借用检查器冲突,绕不开就写 unsafe Rust,unsafe 里的裸指针操作并不比 C 好受;Zig 的 allocator 显式传递让「每个页面加载分配一个 arena、结束整块回收」成为自然写法。第二,comptime 元编程在编译期反射 struct,自动生成本地类型到 V8 的绑定代码,替代另一套宏语言。第三,C 互操作是一等公民,libcurl 头文件 @cImport 直接用,缓解 Zig 生态小的短板;V8 是 C++ 写的且无 C API,团队用 Deno 项目 rusty_v8 生成的 C 头文件做桥。全量重编译一分钟内完成。同用 Zig 的项目文中点名了终端模拟器 Ghostty、运行时 Bun、数据库 TigerBeetle 与 GPU 框架 ZML,并提到 Anthropic 收购 Bun 一事作为大厂关注该语言的注脚。
1.0 的门槛:安全模型补齐
转正的两个硬条件,公告里列得明白:真实网站能跑,安全规则与其他浏览器对齐,因为它执行的是你没写过的代码。
CORS(跨源资源共享,服务器用响应头声明哪些外部来源可以读取资源的机制)从 1.0 起默认强制:页面内 fetch() 与 XHR 的跨源请求,服务器未授权就读不到响应。cors/ 套件通过 371/463。对跑在云内网、由 Agent 驱动的无头浏览器,这条规则挡的是恶意页面回读内网服务与已登录会话;CDP 驱动的 page.goto() 不受影响,page.evaluate() 里的跨源 fetch 与 Chrome 同规则。
其余安全项按版本捋:
- 网络过滤:--block-private-networks 封锁不可路由地址段,1.0.2 扩到 CGNAT、multicast、reserved、NAT64 等段;--block-cidrs 自定义封锁。
- 跨源重定向剥离 Authorization 头(0.4.0)。
- iframe、worker、外部样式表默认不加载,--load-resources 显式开启(0.4.0)。
- Cookie 收紧(0.2.9 至 0.4.1):页面 JS 不可改 HttpOnly cookie,SameSite=Strict 跨站导航保持,Lax 例外仅限安全方法,公共后缀域的 Set-Cookie 拒绝。
- 解析与协议加固:URL authority 的 CR/LF 注入修复(0.3.1)、WebSocket 帧长整型溢出修复(0.4.1),以及跨版本的数十个 UAF 与双重释放修复。
- V8 跟随上游版本,页面发来的每行 JS 都由 V8 执行,上游安全补丁随之生效。
接口层:CDP 兼容、原生 MCP、PandaScript
调用方式贴着现有技术栈走:serve 起 CDP(Chrome DevTools Protocol)服务,Puppeteer 把 browserWSEndpoint 指到 ws://127.0.0.1:9222 即可,Playwright、Selenium、chromedp 同理;--protocol webdriver 另有 WebDriver Bidi。包管理器直装也行:pip install lightpanda 或 npm install @lightpanda/browser。
Agent 集成是这一阶段的重点。原生 MCP 服务器 lightpanda mcp 走 stdio 的 JSON-RPC 2.0;加 --port 9223 切到 HTTP,每个连接按 Mcp-Session-Id 路由到独立浏览会话(独立页面、cookie、内存),多个 Agent 互不踩页面,传同一个 ID 则共享上下文,session_new/session_list/session_close 显式管理。run 工具执行 PandaScript 脚本,默认 60 秒超时;脚本结束页面关闭,cookie 与存储保留,登录态跨次复用。
agent 模式(lightpanda agent)用自然语言下指令驱动浏览器,会话产物是 PandaScript:带少量原生浏览器原语的普通 JavaScript,/save 导出后 lightpanda run 确定性重放,运行时不消耗 token。官方设计的用法是用 LLM 做原型、把脚本送上生产环境跑。模型侧支持 Anthropic、OpenAI、Gemini、Vertex、Mistral、Hugging Face、Vercel AI Gateway、OpenRouter、任意 OpenAI 兼容端点与 Ollama、llama.cpp 本地模型,--no-llm 则进纯 REPL。
生态位方面,公告点名 Hermes Agent(Nous Research)将其列为本地浏览器引擎:配置三行,启动时自行拉起 lightpanda serve、每会话一进程,Lightpanda 暂不支持的动作用例自动回落 Chrome。Vercel 的 agent-browser CLI 加 --engine lightpanda 一个参数切换引擎。与 Tencent BrowserSkill 复用已登录浏览器做执行层的思路相反,Lightpanda 从引擎层重写、刻意不带日常浏览器的登录态,专用、隔离、可丢弃。
生产环境的两组读数
Keenable(为 AI Agent 做网页搜索)的技术人员给出的账:超过 35% 的答案依赖动态渲染站点,渲染比读静态 HTML 最多贵 400 倍;换 Lightpanda 后快 4 倍、成本效率优 6 倍。DeveloperHub.io 把预渲染服务从无头 Chrome 迁过来:页面服务快 4 倍(常摸到 6 倍),负载均值降 10 倍,随 Chrome 而来的定时重启与 CPU 告警消失。两组读数出自 1.0 公告引用的客户陈述。
上手五分钟
安装途径:brew install lightpanda-io/browser/lightpanda(Homebrew)、AUR 的 lightpanda-nightly-bin、GitHub nightly 二进制(Linux 与 macOS 的 x86_64/aarch64)、Nix flake、Docker 官方镜像 lightpanda/browser:latest 映射 9222 端口,或官方安装脚本。
# 单页取 Markdown
lightpanda fetch --obey-robots --dump markdown https://demo-browser.lightpanda.io/campfire-commerce/
# 结构化数据(JSON-LD / OpenGraph / meta 打成 JSON)
lightpanda fetch --dump structured_data <url>
# 起 CDP 服务,接 Puppeteer / Playwright
lightpanda serve --host 127.0.0.1 --port 9222边界提前列清:没有图形渲染管线,--dump png/pdf 输出的是 Markdown 排版而非页面像素,真截图需求暂无解;Linux 二进制链接 glibc,x86_64 需 2.35、arm64 需 2.38,Alpine 直接报 cannot execute;无原生 Windows 构建(WSL2 内可用,localhost:9222 自动转发)、无 Android/Termux 支持;遥测默认开启,设 LIGHTPANDA_DISABLE_TELEMETRY=true 关闭;robots.txt 需 --obey-robots 显式尊重。
38 天四个版本的节奏
0.4.1(9 月 15 日)到 1.0.2(10 月 23 日)38 天出了四版。1.0.0 补齐 WebDriver 经典协议、CORS 默认强制与 WebAssembly.compileStreaming 等一批 Web API;1.0.1 加入 Web Locks、Compression Streams、RSA-OAEP;1.0.2 把 Web Crypto 补到 Ed25519、X25519、AES-KW,鼠标事件进入 shadow DOM 与 iframe,--block-private-networks 扩段。WPT 每日运行、结果公开,遇到跑坏的页面开 issue 附上 URL 即可,DeveloperHub.io 迁移前提的两个 issue 都在切换生产环境前修掉了。项目对 1.0 的定义是第一个可承载生产系统的稳定版本,接下来的优先级仍写在原文里:继续补 Web API 覆盖,速度与内存永远优先。
来源:
- Lightpanda 1.0 官方公告(lightpanda.io/blog/posts/lightpanda-1-0,2026-10-02)
- Why We Built Lightpanda in Zig(lightpanda.io/blog/posts/why-we-built-lightpanda-in-zig,2025-12-05)
- GitHub lightpanda-io/browser README 与 1.0.0/1.0.1/1.0.2 Release Notes
- lightpanda-io/demo 仓库 BENCHMARKS.md(爬虫基准方法学与数据表)