Lightpanda — headless-браузер на Zig, который в 11 раз быстрее Chrome и создан специально для AI-агентов
Lightpanda — headless-браузер на Zig, который в 11 раз быстрее Chrome и создан специально для AI-агентов
Каждый AI-агент, которому нужно работать с вебом, упирается в одну и ту же стену: headless Chrome. Один инстанс жрёт гигабайт оперативки. Сто параллельных вкладок превращают EC2-инстанс в обогреватель. А ведь агенту не нужны CSS-анимации, шрифты и GPU-композитинг — ему нужен DOM и JavaScript.
Lightpanda — первый headless-браузер, написанный с нуля именно для этого сценария. Не форк Chromium, не обёртка над WebKit. Новый браузерный движок на Zig с V8 внутри, который отбрасывает всё визуальное и оставляет только то, что нужно автоматизации.
TL;DR: Lightpanda — headless-браузер на Zig, 11x быстрее Chrome в бенчмарках, 19x меньше памяти. Совместим с Puppeteer и Playwright через CDP. 26.2K звёзд на GitHub. Но бета: скриншоты не работают, CORS не реализован, сегфолты случаются. Ставить в staging — да, в прод — подождать.
Почему вообще нужен другой браузер
Команда Lightpanda до этого проекта занималась скрапингом и прогоняла миллионы страниц в день через headless Chrome. Боль была конкретной: на одном сервере помещалось 15 инстансов Chrome. Каждый — отдельный процесс с рендерингом, композитингом и пятью подпроцессами, которые никому в headless-режиме не нужны.
Идея простая: если убрать CSS, layout, painting и GPU-слой — останется HTTP + HTML-парсер + DOM + JavaScript. Это и есть Lightpanda. Браузер для машин, а не для людей.
Бенчмарки — впечатляющие, но с оговоркой
Все бенчмарки проведены на AWS m5.xlarge (Ubuntu), исходники и методология открыты в репозитории demo.
Краулер (933 страницы, chromedp, Go):
- 1 процесс: Lightpanda 51 сек, 27 МБ RAM | Chrome 82 сек, 1.3 ГБ RAM
- 100 параллельных процессов: Lightpanda 5 сек, 410 МБ | Chrome 69 минут, 4.2 ГБ
Разница в параллельном режиме — не проценты, а порядки. Chrome на 100 вкладках работал больше часа. Lightpanda — пять секунд.
E-commerce (Puppeteer/CDP, 100 итераций):
- Chrome: 18,551 мс (185 мс/запуск), пик 402 МБ RAM, CPU 158%
- Lightpanda: 1,698 мс (16 мс/запуск), пик 21 МБ RAM, CPU 4.6%
11x по скорости, 19x по памяти. Но есть важная оговорка: e-commerce бенчмарк использовал специально созданную тестовую страницу, потому что «Lightpanda browser is not yet fully compliant» с веб-стандартами, как честно пишут авторы. То есть 11x — это не на реальном Amazon, а на странице, которую оба движка гарантированно обрабатывают корректно.
Для краулера (933 реальных страниц) цифры честнее, и там разница тоже впечатляющая — особенно по памяти.
Как устроен
Архитектура минималистичная:
- Zig — системный язык, который команда выбрала за простоту и контроль над памятью (на HN это вызвало жаркий спор — почему не Rust?)
- V8 — движок JavaScript (тот же, что в Chrome)
- html5ever — HTML-парсер на Rust
- libcurl — HTTP-клиент
- CDP (Chrome DevTools Protocol) через WebSocket — именно поэтому работает с Puppeteer и Playwright
Никакого CSS-парсера, layout engine, GPU-композитинга. Lightpanda парсит HTML, строит DOM, выполняет JavaScript — и всё. Этого достаточно, чтобы кликнуть кнопку, заполнить форму, перехватить запрос и вытащить данные.
Установка за 2 минуты
Самый быстрый способ:
curl -fsSL https://pkg.lightpanda.io/install.sh | bash
Docker:
docker run -d --name lightpanda -p 9222:9222 lightpanda/browser:nightly
Или скачать бинарник напрямую (Linux x86_64):
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux chmod a+x ./lightpanda
macOS (Apple Silicon):
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-aarch64-macos chmod a+x ./lightpanda
Как использовать
Запустить CDP-сервер:
./lightpanda serve --host 127.0.0.1 --port 9222
Подключиться через Puppeteer — тот же код, что для Chrome, только endpoint другой:
import puppeteer from 'puppeteer-core'; 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', { waitUntil: "networkidle0" }); const title = await page.title(); console.log(title); await page.close(); await browser.disconnect();
Или просто вытащить HTML:
./lightpanda fetch --obey-robots https://example.com
Флаг --obey-robots — приятная деталь: браузер из коробки уважает robots.txt. Chrome headless этого не делает.
Подводные камни
Сегфолты. Issue #1304 озаглавлен прямо: «Very unstable, the browser is crashing frequently in segmentation faults». На ARM64 с 64K page kernel — отдельный баг (#1370). Это бета, и она ведёт себя как бета.
Нет скриншотов и PDF. page.screenshot() и page.pdf() не работают — Lightpanda не рендерит визуально. Для AI-агентов, которым нужна визуальная верификация (а таких всё больше), это стоп-фактор.
CORS не реализован. Issue #2015 открыт. Если ваши страницы делают cross-origin запросы — а они почти наверняка делают — будут проблемы.
Multi-client баг. Закрытие одного CDP-соединения убивает все остальные (#1892). Для сценария «один процесс, много агентов» это критично.
WebSocket не определён. Issue #1952 — если страница использует WebSocket (чаты, нотификации, real-time данные), Lightpanda упадёт.
Playwright — с оговорками. Авторы предупреждают: Playwright использует промежуточный JS-слой, который адаптирует стратегию выполнения под возможности браузера. Когда Lightpanda добавляет новые Web API, Playwright может маршрутизировать на ещё нереализованные фичи — и скрипт сломается.
AGPL-3.0 лицензия. Если вы встраиваете Lightpanda в коммерческий продукт, который вы распространяете — придётся открывать исходный код или покупать коммерческую лицензию.
Альтернативы
-
Browser Use — Python SDK для AI-агентов поверх обычного Chrome/Playwright. 78K+ звёзд, проверенный подход. Медленнее и тяжелее, зато 100% совместимость с вебом. Если стабильность важнее скорости — это выбор.
-
Browserless — облачный headless Chrome как сервис. Зрелый продукт с готовой инфраструктурой, но $200+/мес за серьёзные объёмы. Для тех, кому лень поднимать своё.
-
Browserbase — облачная браузерная инфраструктура, поддерживаемая Y Combinator. Фокус на AI-агентов, интеграция со Stagehand. Дороже, чем self-hosted, но без головной боли с масштабированием.
-
Steel.dev — open-source cloud browser API. Позиционируется как «Browserbase, но с открытым кодом». Раньше по функционалу, но активно развивается.
Вердикт
Если ты гоняешь сотни headless Chrome инстансов для скрапинга или AI-агентов и платишь за серверы больше, чем за модель — Lightpanda стоит попробовать в staging прямо сейчас. На 100 параллельных задачах разница в 800 раз по скорости — это не оптимизация, это другая лига.
Но в продакшен рано. Сегфолты, отсутствие CORS, баг с мульти-клиентом — всё это говорит «бета». Подожди версию, где закроют хотя бы #1304 и #2015. А если тебе нужны скриншоты для визуальной верификации — Lightpanda пока вообще не вариант, смотри на Browser Use.
Как попробовать
- Установить:
curl -fsSL https://pkg.lightpanda.io/install.sh | bash - Запустить CDP-сервер:
./lightpanda serve --host 127.0.0.1 --port 9222 - Подключить Puppeteer:
puppeteer.connect({ browserWSEndpoint: "ws://127.0.0.1:9222" }) - Попробовать краулинг:
./lightpanda fetch --obey-robots https://news.ycombinator.com - Прогнать свой Puppeteer-скрипт и сравнить время/память с Chrome — результат удивит
- GitHub — исходный код, issues, nightly-билды
- Документация — установка и настройка
- Бенчмарки — методология и числа
- Discord — сообщество и поддержка