Firma Cloudflare ogłosiła otwarcie kodu źródłowego przeglądarki internetowej Kitesurf, zaprojektowanej do użycia przez agentów AI i boty. Kitesurf obsługuje analizę HTML, zastosowanie stylów CSS, uruchamianie JavaScript i generowanie zrzutów ekranu, ale jednocześnie pozbawiona jest komplikacji i zbędnych elementów stworzonych dla ludzi, a bezużytecznych dla botów. Eliminacja takich możliwości jak idealna renderowanie oraz wsparcie dla rozszerzeń pozwoliła znacznie zmniejszyć obciążenie CPU i zużycie pamięci. Kod napisany jest w językach Rust i TypeScript i rozpowszechniany na licencji Apache 2.0.
Zamiast ciężkich silników przeglądarkowych, w Kitesurf wykorzystano otwarte biblioteki napisane w języku Rust: Blitz do analizy HTML, pracy z DOM, kompozycji i renderowania strony; Stylo (wykorzystywany w Firefox) do przetwarzania CSS; Boa do wykonywania JavaScript i wsparcia WebAssembly; Linebender do pracy z tekstem i grafiką 2D; Krilla do generowania wyjścia w formacie PDF.
W porównaniu do użycia silnika Chromium podczas tworzenia zrzutów ekranu w Kitesurf zaobserwowano zmniejszenie obciążenia CPU o 3,1 razy oraz zmniejszenie zużycia pamięci o 4,7 razy, a przy analizie HTML - o 3,8 i 7 razy odpowiednio. Przy tym całkowity czas wykonywania testów był o 1,7 i 1,8 razy wolniejszy z powodu zimnego startu, rasteryzacji i kodowania w JPEG/PNG.
Kitesurf pomyślnie przeszedł ponad 215 tysięcy testów z pakietu WPT (Web Platform Tests), poprawnie renderuje strony typowych witryn, takich jak Wikipedia, obsługuje różne frameworki webowe (React, Vue, Angular, Preact) i jest w stanie uruchomić grę Doom, skompilowaną w WebAssembly.
Zauważono, że ograniczenia obejmują brak wsparcia dla odtwarzania wideo, WebGL, skomplikowanych skryptów do weryfikacji captchy oraz długoterminowych uwierzytelnionych sesji wymagających zachowania stanu.
Przeglądarka składa się z trzech komponentów:
- Silnik do zarządzania sesjami, przetwarzania połączeń klienckich i wsparcia dla protokołu CDP (Chrome DevTools Protocol);
- PageScript do izolowanego przetwarzania stron webowych i wykonywania JavaScript;
- PageRenderer do renderowania stron, generowania zrzutów ekranu i eksportu do PDF.
Komponenty są od siebie izolowane i mają dostęp tylko do niezbędnych zasobów. Praca odbywa się w trybie Stateless bez zachowania stanu.

Kitesurf jest zaprojektowany do uruchamiania na platformie Cloudflare Workers (dostępny otwarty runtime workerd) z kompilacją do WebAssembly, ale może być używany nie tylko w infrastrukturze Cloudflare, ale także na lokalnych systemach z Node.js. Do zarządzania i automatyzacji interakcji z Kitesurf zaleca się korzystanie z Web API za pośrednictwem WebSocket, interfejsu wiersza poleceń oraz protokołu CDP zgodnego z biblioteką Puppeteer.
Źródło: opennet.ru
