lightpanda-io / browser
lightpanda-io/browser
Lightpanda:专为AI和自动化设计的无头浏览器
项目概览
项目概述
Lightpanda 是一个从头构建的无头浏览器,专为 AI 代理和自动化设计。它并非 Chromium 的分支,也不是 WebKit 的补丁,而是使用 Zig 语言编写的新浏览器。项目旨在提供高性能、低资源消耗的浏览器自动化解决方案,支持通过 CDP(Chrome DevTools Protocol)与 Puppeteer、Playwright 等工具集成。
核心功能
- 高性能:相比 Headless Chrome,内存占用减少约 16 倍,执行速度快约 9 倍(基于官方基准测试)。
- CDP 支持:提供 WebSocket 服务器,兼容 Puppeteer 和 Playwright。
- Agent 模式:内置 AI 代理,支持自然语言控制浏览器,可生成 PandaScript 脚本。
- MCP 支持:提供原生 MCP 服务器,支持 stdio 和 HTTP 传输,支持多会话隔离。
- 页面抓取:支持将网页内容转储为 HTML 或 Markdown。
- 网络功能:支持 Cookies、自定义 HTTP 头、代理、网络拦截、robots.txt 遵守。
- JavaScript 执行:基于 V8 引擎,支持 DOM API、Ajax(XHR 和 Fetch)。
适用与不适用场景
适用场景:
- AI 代理的网页自动化任务。
- 大规模网页抓取和数据提取。
- 需要低资源消耗的服务器端浏览器环境。
- 与 Puppeteer/Playwright 生态集成。
不适用场景:
- 需要完整图形渲染的浏览器场景(如视觉测试)。
- 依赖大量 Web API 的复杂网站(当前 API 覆盖有限)。
- 需要 CORS 支持的场景(尚未实现)。
- Windows 原生环境(需通过 WSL2)。
技术架构与依赖
- 语言:Zig 0.15.2
- JavaScript 引擎:V8
- HTTP 加载器:Libcurl
- HTML 解析器:html5ever
- 协议:CDP、MCP
- 构建工具:Make、Zig Build
- 测试:单元测试、端到端测试、Web Platform Tests
安装与快速开始
包管理器安装:
- Homebrew(macOS):
brew install lightpanda-io/browser/lightpanda - Arch Linux(AUR):
yay -S lightpanda-nightly-bin
下载二进制:从 nightly builds 下载 Linux 或 macOS 的二进制文件。
Docker 安装:
docker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda/browser:nightly
快速开始:
- 抓取网页:
./lightpanda fetch --dump html https://example.com - 启动 CDP 服务器:
./lightpanda serve --host 127.0.0.1 --port 9222
典型使用方法
使用 Puppeteer 连接:
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.connect({ browserWSEndpoint: "ws://127.0.0.1:9222" });
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.title();
console.log(title);
Agent 模式:
./lightpanda agent --task "top story on news.ycombinator.com?"
MCP 配置:
{
"mcpServers": {
"lightpanda": {
"command": "/path/to/lightpanda",
"args": ["mcp"]
}
}
}
配置与部署要点
- 环境变量:
LIGHTPANDA_DISABLE_TELEMETRY=true禁用遥测;LIGHTPANDA_DISABLE_CORE_DUMP禁用核心转储。 - Linux 依赖:需要 glibc,musl 发行版需使用 glibc 基础镜像或从源码构建。
- Windows:需通过 WSL2 运行。
- MCP HTTP 传输:使用
lightpanda mcp --port 9223启动,支持会话隔离和共享。 - 构建:需要 Zig 0.15.2、V8、Libcurl、html5ever,以及 Rust 等依赖。
限制、风险与许可证
- 限制:Beta 阶段,Web API 覆盖有限,可能遇到错误或崩溃;CORS 未实现。
- 风险:项目仍在开发中,稳定性有待提高;依赖 V8 构建复杂。
- 许可证:AGPL-3.0。
官方链接
信息来源和分析时间
- 信息来源:GitHub 仓库 README、CONTRIBUTING.md、发布信息。
- 分析时间:2025年(基于仓库最新发布信息)。