lightpanda-io / browser

lightpanda-io/browser

open_in_new前往仓库

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年(基于仓库最新发布信息)。