Společnost Cloudflare oznámila otevření zdrojového kódu webového prohlížeče Kitesurf, určeného pro použití AI agenty a boty. Kitesurf podporuje analýzu HTML, aplikaci CSS stylů, spuštění JavaScriptu a generování snímků obrazovky, avšak postrádá složitosti a nadbytky vytvořené pro lidi, které jsou pro boty zbytečné. Odstranění takových funkcí, jako je dokonalé vykreslování a podpora rozšíření, umožnilo výrazně snížit zátěž na CPU a spotřebu paměti. Kód je napsán v jazycích Rust a TypeScript a je distribuován pod licencí Apache 2.0.
Místo těžkopádných prohlížečových enginů Kitesurf využívá otevřené knihovny napsané v jazyce Rust: Blitz pro analýzu HTML, práci s DOM, formátování a vykreslování stránky; Stylo (používá se ve Firefoxu) pro zpracování CSS; Boa pro provádění JavaScriptu a podporu WebAssembly; Linebender pro práci s textem a 2D grafikou; Krilla pro generaci výstupu ve formátu PDF.
Ve srovnání s použitím enginu Chromium při provádění operací generování snímků obrazovky v Kitesurf bylo zaznamenáno snížení zátěže na CPU o 3,1krát a snížení spotřeby paměti o 4,7krát, zatímco při analýze HTML došlo ke snížení o 3,8 a 7krát. Celkový čas provádění testů byl přitom 1,7 a 1,8krát déle kvůli studenému startu, rasterizaci a kódování do JPEG/PNG.
Kitesurf úspěšně prošel více než 215 tisíc testy z kolekce WPT (Web Platform Tests), správně vykresluje stránky typických webů, jako je Wikipedia, podporuje různé webové frameworky (React, Vue, Angular, Preact) a dokáže spustit hru Doom, zkompilovanou do WebAssembly.
Z omezení je uvedena absence podpory přehrávání videa, WebGL, složitých skriptů pro ověření CAPTCHA a dlouhých autentifikovaných sezení, které vyžadují uchování stavu.
Prohlížeč se skládá ze tří komponent:
- Engin pro řízení sezení, zpracování klientských spojení a podporu protokolu CDP (Chrome DevTools Protocol);
- PageScript pro izolované zpracování webové stránky a provádění JavaScriptu;
- PageRenderer pro vykreslování stránek, generování snímků obrazovky a export do PDF.
Komponenty jsou izolovány od sebe a mají přístup pouze k nezbytným zdrojům. Práce probíhá v režimu Stateless bez uchovávání stavu.

Kitesurf je navržen tak, aby byl spuštěn na platformě Cloudflare Workers (dostupný otevřený runtime workerd) s kompilací do WebAssembly, ale může být použit nejen v infrastruktuře Cloudflare, ale také na místních systémech s Node.js. Pro správu a automatizaci interakce s Kitesurf se doporučuje používat Web API přes WebSocket, rozhraní příkazového řádku a CDP protokol kompatibilní s knihovnou Puppeteer.
Zdroj: opennet.ru
