Cloudflare har annonceret åbningen af kildekoden til webbrowseren Kitesurf, der er designet til brug af AI-agenter og bots. Kitesurf understøtter parsing af HTML, anvendelse af CSS-stilarter, kørsel af JavaScript og generering af skærmbilleder, men mangler de kompleksiteter og overflødigheder, der er skabt for mennesker og er unyttige for bots. Afskaffelsen af funktioner som perfekt rendering og understøttelse af udvidelser har betydeligt reduceret CPU-belastningen og hukommelsesforbruget. Koden er skrevet i Rust og TypeScript og distribueres under Apache 2.0-licensen.
I stedet for tunge browsermotorer anvender Kitesurf åbne biblioteker skrevet i Rust: Blitz til HTML-parsing, DOM-håndtering, layout og rendering af siden; Stylo (brugt i Firefox) til CSS-behandling; Boa til kørsel af JavaScript og understøttelse af WebAssembly; Linebender til tekst- og 2D-grafikbehandling; Krilla til generering af output i PDF-format.
Sammenlignet med brugen af Chromium-motoren til oprettelse af skærmbilleder bemærkes der en reduktion i CPU-belastning på 3,1 gange og reduktion i hukommelsesforbrug på 4,7 gange i Kitesurf, mens HTML-parsing reduceres med 3,8 og 7 gange henholdsvis. Samtidig viste den samlede tid til udførelse af tests sig at være 1,7 og 1,8 gange langsommere på grund af kold opstart, rasterisering og kodning i JPEG/PNG.
Kitesurf bestået over 215.000 tests fra WPT (Web Platform Tests), renderer korrekt sider fra typiske websteder som Wikipedia, understøtter forskellige web-rammer (React, Vue, Angular, Preact) og er i stand til at køre Doom-spillet, der er kompileret til WebAssembly.
Blandt begrænsningerne bemærkes manglen på understøttelse af videoafspilning, WebGL, komplekse scripts til captcha-verifikation og lange autentificerede sessioner, der kræver opbevaring af tilstand.
Browseren består af tre komponenter:
- En motor til håndtering af sessioner, behandling af klientforbindelser og understøttelse af CDP-protokollen (Chrome DevTools Protocol);
- PageScript til isoleret behandling af webside og udførelse af JavaScript;
- PageRenderer til rendering af sider, generering af skærmbilleder og eksport til PDF.
Komponenterne er isolerede fra hinanden og har kun adgang til de nødvendige ressourcer. Arbejdet udføres i Stateless-tilstand uden bevarelse af tilstand.

Kitesurf er designet til at køre på Cloudflare Workers-platformen (tilgængelig med den åbne runtime workerd) og kan kompileres til WebAssembly, men kan også anvendes på lokale systemer med Node.js. For at styre og automatisere interaktionen med Kitesurf anbefales det at bruge Web API via WebSocket, kommandolinjegrænsefladen og CDP-protokollen, der er kompatibel med Puppeteer-biblioteket.
Kilde: opennet.ru
