Cloudflare сделала свой браузер для разработчиков: как Kitesurf снижает нагрузку на память в 7 раз и ускоряет авто-тесты
Cloudflare создал Kitesurf — специальный легкий браузер, в котором нет Chromium. Он создан с нуля исключительно для работы программ и искусственного интеллекта.
Источник — Cloudflare.
🛠 Отказ от Chrome и разделение на мелкие блоки
Разработчики написали браузер на языке Rust. Вместо одного тяжелого процесса Kitesurf делит работу между четырьмя:
- Engine: Единственная публичная точка входа. Отвечает за хранение сессий и реализует стандартный протокол Chrome DevTools Protoco через WebSocket и REST.
- PageScript: Каждая страница открывается в отдельном контейнере. Внутри него создаётся всё, что нужно для работы страницы: глобальные переменные и структура документа (DOM). HTML и CSS разбирают специальные быстрые компоненты на Rust, а JavaScript выполняется в том же контейнере. Для опасных операций вроде eval подключается дополнительный лёгкий движок Boa JS.
- PageRenderer: Этот компонент не хранит состояние. Он загружает шрифты и картинки из Static Assets, а затем превращает сцену в JPEG, PNG или PDF, используя blitz-paint для отрисовки и Parley для работы с текстом.
- SandboxOutbound: Единственный модуль всей архитектуры, имеющий прямой доступ во внешнюю сеть. Он обрабатывает CORS, инжектирует браузерные заголовки и изолирует cookie-jar. Все остальные блоки физически изолированы от интернета.
📊 В 7 раз меньше памяти, но чуть дольше рендеринг
Цель создания Kitesurf — перестать забивать серверы и компьютеры лишней работой при обработке тысяч сайтов одновременно.
- Оперативная память: Чтобы просто прочитать и извлечь текст с веб-страницы, Kitesurf тратит всего 39 МБ памяти, тогда как Chrome съедает 273 МБ. На создание скриншота уходит 58 МБ против 271 МБ.
- Нагрузка на процессор: Процессор компьютера напрягается в 3.8 раза меньше, делая работу программ практически незаметной.
- Главный компромисс: Kitesurf тратит чуть больше времени на отрисовку финальной картинки 1.1 секунды против 0.6 секунды у Chrome. Это сознательная жертва за легкость: браузер не держит в памяти разогретые графические движки, а формирует изображение с нуля только по запросу.
Защита от хитростей
Когда ИИ заходит на сайт, он может попытаться заставить выполнить вредоносную команду или слить данные. Kitesurf решает эту проблему — как только страница обработана, весь виртуальный отсек полностью уничтожается вместе со всеми следами.
⚡ Совместимость с программами и открытый код
Kitesurf полностью понимает стандартные команды, которыми программисты управляют браузерами через популярные библиотеки: Playwright и Puppeteer. Чтобы перевести своих агентов на новый легкий движок, достаточно просто поменять название браузера в одной строчке настройки.
Kitesurf успешно проходит 96–99% всех международных тестов на правильность отображения сайтов. Проект был написан командой Cloudflare всего за 12 недель — при этом часть кода помогал генерировать сам искусственный интеллект. Сейчас браузер доступен в бесплатном тестовом режиме, а в будущем разработчики обещают выложить его исходный код в открытый доступ, чтобы любой желающий мог установить его на свой личный сервер.