Compania Cloudflare a anunțat deschiderea codului sursă pentru browserul web Kitesurf, destinat utilizării de către agenți AI și boți. Kitesurf suportă analiza HTML, aplicarea stilurilor CSS, rularea JavaScript-ului și generarea de capturi de ecran, dar este lipsit de complicațiile și excesul creat pentru oameni, care sunt inutile pentru boți. Eliminarea unor funcționalități precum redarea perfectă și suportul pentru extensii a permis reducerea semnificativă a sarcinii CPU și a consumului de memorie. Codul este scris în Rust și TypeScript și este distribuit sub licența Apache 2.0.
În locul motoarelor browserului greoaie, Kitesurf utilizează biblioteci deschise în Rust: Blitz pentru analiza HTML, manipularea DOM, aranjarea și redarea paginii; Stylo (folosit în Firefox) pentru procesarea CSS; Boa pentru executarea JavaScript-ului și suportul WebAssembly; Linebender pentru manipularea textului și graficii 2D; Krilla pentru generarea de ieșiri în format PDF.
Comparativ cu utilizarea motorului Chromium, în timpul operațiunilor de captură de ecran, Kitesurf a prezentat o reducere a sarcinii CPU cu 3.1x și o reducere a consumului de memorie cu 4.7x, iar la analiza HTML — cu 3.8 și 7 ori respectiv. În același timp, timpul total de execuție al testelor s-a dovedit a fi de 1.7 și 1.8 ori mai lent din cauza pornirii reci, rasterizării și codării în JPEG/PNG.
Kitesurf trece cu succes peste 215.000 de teste din setul WPT (Web Platform Tests), redă corect paginile site-urilor tipice, cum ar fi Wikipedia, suportă diferite framework-uri web (React, Vue, Angular, Preact) și este capabil să ruleze jocul Doom, compilat în WebAssembly.
Printre limitările observate se numără absența suportului pentru redarea video, WebGL, scripturi complexe pentru verificarea CAPTCHA și sesiuni autentificate lungi care necesită păstrarea stării.
Browserul este compus din trei componente:
- Un motor pentru gestionarea sesiunilor, procesarea conexiunilor client și suportarea protocolului CDP (Chrome DevTools Protocol);
- PageScript pentru procesarea izolată a paginilor web și executarea JavaScript-ului;
- PageRenderer pentru redarea paginilor, generarea de capturi de ecran și exportul în PDF.
Componentele sunt izolate unele de altele și au acces doar la resursele necesare. Funcționarea se desfășoară în modul Stateless fără păstrarea stării.

Kitesurf este destinat să fie lansat folosind platforma Cloudflare Workers (runtime-ul workerd este disponibil) cu compilare în WebAssembly, dar poate fi utilizat nu doar în infrastructura Cloudflare, ci și pe sisteme locale cu Node.js. Pentru gestionarea și automatizarea interacțiunii cu Kitesurf, se recomandă utilizarea API-ului Web prin WebSocket, a interfeței de linie de comandă și a protocolului CDP, compatibil cu biblioteca Puppeteer.
Sursa: opennet.ro
