Lightpanda Browser
ヘッドレス用途のオープンソースブラウザ。Zig 製。CDP で Playwright / Puppeteer / chromedp と互換。
Lightpanda はヘッドレス利用に特化したオープンソースブラウザ。JavaScript 実行と Web API(一部・WIP)を備え、Chrome DevTools Protocol (CDP) 経由で Playwright・Puppeteer・chromedp と接続できる。AI エージェント・LLM 学習・スクレイピング・テスト向けの高速 Web 自動化を目指している。
公式: lightpanda.io
- HTTP ローダー: Libcurl
- HTML パーサ: html5ever (Servo)
- JavaScript: V8(zig-js-runtime)
- DOM: ツリー + DOM API、XHR / Fetch(Ajax)
- CDP / WebSocket サーバ: 既存の自動化クライアントから接続可能
テレメトリはデフォルト有効。無効化する場合は LIGHTPANDA_DISABLE_TELEMETRY=true を設定する。
Linux x86_64:
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux && chmod +x ./lightpanda
macOS aarch64:
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-aarch64-macos && chmod +x ./lightpanda
Docker の場合(CDP を 9222 で公開):
docker run -d --name lightpanda -p 9222:9222 lightpanda/browser:nightly
./lightpanda fetch --obey_robots --log_format pretty --log_level info https://demo-browser.lightpanda.io/campfire-commerce/
./lightpanda serve --obey_robots --log_format pretty --log_level info --host 127.0.0.1 --port 9222
起動後、Puppeteer では browserWSEndpoint: "ws://127.0.0.1:9222" で接続できる。既存の Puppeteer スクリプトの多くはそのまま利用可能。
Lightpanda は Beta。安定性とカバレッジは改善中。多くのサイトは動作するが、エラーやクラッシュに遭遇する場合は Issue で報告が推奨される。
| 機能 | 備考 |
|---|---|
| HTTP loader | Libcurl |
| HTML parser | html5ever |
| DOM tree / DOM APIs | — |
| JavaScript | V8 |
| Ajax | XHR API / Fetch API |
| DOM dump | — |
| CDP / WebSocket server | — |
| Click / Input form | — |
| Cookies / Custom headers / Proxy | — |
| Network interception | — |
| robots.txt | --obey_robots |
Web API は数百あり、ヘッドレス専用でもカバーは段階的に増やす方針。JavaScript 対応の進捗は zig-js-runtime リポジトリを参照。
Zig 0.15.2、zig-js-runtime(V8)、Libcurl、html5ever。v8 ビルド用に Linux では xz-utils ca-certificates pkg-config libglib2.0-dev clang make curl git と Rust、macOS では cmake と Rust。Nix の場合は nix develop で devShell を利用可能。
ビルド・実行
make build
# または
zig build run
スナップショットを埋め込む場合は zig build snapshot_creator -- src/snapshot.bin のあと zig build -Dsnapshot_path=../../snapshot.bin でビルド。
テスト
単体: make test。E2E は demo リポジトリを ../demo にクローンし、Node 依存と Go > v1.24 を入れたうえで make end2end。Web Platform Tests 用には lightpanda-io の wpt フォークとホスト設定が必要。
リポジトリ: lightpanda-io/browser
Nightly ビルド: Releases (nightly)
Docker: lightpanda/browser
技術: Zig、V8(zig-js-runtime)、Libcurl、html5ever、CDP。Playwright 利用時はバージョンによって挙動が変わる可能性があるため、不具合時は Issue に「最後に動いていたスクリプトのバージョン」を記載するとよい。