Spoločnosť Cloudflare oznámila otvorenie zdrojového kódu webového prehliadača Kitesurf, ktorý je určený na použitie AI agentmi a botmi. Kitesurf podporuje analýzu HTML, aplikáciu CSS štýlov, spúšťanie JavaScriptu a generovanie screenshotov, pričom je zbavený zložitostí a nadbytočností, ktoré sú určené pre ľudí a sú pre bota zbytočné. Odstránenie takých funkcií, ako je dokonalé vykreslenie a podpora rozšírení, umožnilo výrazne znížiť zaťaženie CPU a spotrebu pamäte. Kód je napísaný v jazykoch Rust a TypeScript a šíri sa pod licenciou Apache 2.0.
Namiesto ťažkých prehliadačových enginov sú v Kitesurf použitá otvorená knižnica napísaná v jazyku Rust: Blitz na analýzu HTML, prácu s DOM, rozloženie a vykreslenie stránky; Stylo (používa sa vo Firefoxe) na spracovanie CSS; Boa na vykonávanie JavaScriptu a podporu WebAssembly; Linebender na prácu s textom a 2D grafikou; Krilla na generovanie výstupu vo formáte PDF.
V porovnaní s použitím enginu Chromium pri vykonávaní operácií vytvárania screenshotov zaznamenal Kitesurf zníženie zaťaženia CPU o 3,1-krát a zníženie spotreby pamäte o 4,7-krát, pri analýze HTML - o 3,8 a 7-krát, resp. Celkový čas vykonávania testov bol pomalší o 1,7 a 1,8-krát kvôli studenému štartu, rasterizácii a kódovaniu do JPEG/PNG.
Kitesurf úspešne prechádza viac ako 215 000 testami z balíka WPT (Web Platform Tests), správne vykresľuje stránky typických webov, ako napríklad Wikipedia, podporuje rôzne webové frameworky (React, Vue, Angular, Preact) a je schopný vykonať hru Doom, skompilovanú do WebAssembly.
Z obmedzení sa uvádza absencia podpory prehrávania videa, WebGL, komplexných skriptov na overenie CAPTCHA a dlhých autentifikovaných relácií, ktoré si vyžadujú ukladanie stavu.
Prehliadač sa skladá z troch komponentov:
- Engine na riadenie relácií, spracovanie klientských spojení a podporu protokolu CDP (Chrome DevTools Protocol);
- PageScript na izolované spracovanie webovej stránky a vykonávanie JavaScriptu;
- PageRenderer na vykresľovanie stránok, generovanie screenshotov a export do PDF.
Komponenty sú navzájom izolované a majú prístup iba k potrebným zdrojom. Práca prebieha v režime Stateless bez uchovávania stavu.

Kitesurf je navrhnutý na spúšťanie pomocou platformy Cloudflare Workers (otvorený runtime workerd je k dispozícii) s kompiláciou do WebAssembly, ale môže sa využívať nielen v infraštruktúre Cloudflare, ale aj na lokálnych systémoch s Node.js. Na správu a automatizáciu interakcie s Kitesurf sa odporúča použiť Web API cez WebSocket, príkazový riadok a protokol CDP, kompatibilný s knižnicou Puppeteer.
Zdroj: opennet.ru
