L'entreprise Cloudflare a annoncĂ© l'ouverture du code source du navigateur web Kitesurf, conçu pour ĂȘtre utilisĂ© par des agents AI et des bots. Kitesurf prend en charge l'analyse HTML, l'application de styles CSS, l'exĂ©cution de JavaScript et la gĂ©nĂ©ration de captures d'Ă©cran, mais est dĂ©pourvu de toutes les complexitĂ©s et ornements destinĂ©s aux humains et inutiles pour les bots. La suppression de fonctionnalitĂ©s telles que le rendu parfait et la prise en charge des extensions a permis de rĂ©duire considĂ©rablement la charge sur le CPU et la consommation de mĂ©moire. Le code est Ă©crit en Rust et TypeScript et est distribuĂ© sous la licence Apache 2.0.
Au lieu de moteurs de navigateur lourds, Kitesurf utilise des bibliothÚques ouvertes en Rust : Blitz pour l'analyse HTML, la manipulation du DOM, la mise en page et le rendu de la page ; Stylo (utilisé dans Firefox) pour le traitement CSS ; Boa pour l'exécution de JavaScript et la prise en charge de WebAssembly ; Linebender pour la manipulation de texte et de graphiques 2D ; Krilla pour la génération de sorties au format PDF.
ComparĂ© Ă l'utilisation du moteur Chromium pour la crĂ©ation de captures d'Ă©cran, Kitesurf prĂ©sente une rĂ©duction de la charge CPU de 3,1 fois et une diminution de la consommation de mĂ©moire de 4,7 fois, et pour l'analyse HTML, les rĂ©ductions sont respectivement de 3,8 et 7 fois. Toutefois, le temps d'exĂ©cution global des tests s'est rĂ©vĂ©lĂ© ĂȘtre 1,7 et 1,8 fois plus lent en raison des temps de dĂ©marrage Ă froid, de la rasterisation et de l'encodage en JPEG/PNG.
Kitesurf réussit plus de 215 000 tests issus de l'ensemble WPT (Web Platform Tests), rend correctement les pages de sites standards comme Wikipedia, prend en charge différents frameworks web (React, Vue, Angular, Preact) et peut exécuter le jeu Doom, compilé en WebAssembly.
Parmi les limitations, on note l'absence de support pour la lecture vidéo, WebGL, des scripts complexes pour la vérification des CAPTCHA et des sessions authentifiées longues nécessitant la sauvegarde de l'état.
Le navigateur se compose de trois composants :
- Un moteur pour gérer les sessions, traiter les connexions client et prendre en charge le protocole CDP (Chrome DevTools Protocol);
- PageScript pour le traitement isolé des pages web et l'exécution de JavaScript;
- PageRenderer pour le rendu des pages, la génération de captures d'écran et l'exportation au format PDF.
Les composants sont isolés les uns des autres et n'ont accÚs qu'aux ressources nécessaires. Le fonctionnement se fait en mode Stateless sans sauvegarde de l'état.

Kitesurf est conçu pour ĂȘtre lancĂ© via la plateforme Cloudflare Workers (un runtime workerd est disponible) avec une compilation en WebAssembly, mais il peut ĂȘtre utilisĂ© non seulement dans l'infrastructure Cloudflare, mais aussi sur des systĂšmes locaux avec Node.js. Pour gĂ©rer et automatiser les interactions avec Kitesurf, il est proposĂ© d'utiliser une API Web via WebSocket, une interface en ligne de commande et un protocole CDP compatible avec la bibliothĂšque Puppeteer.
Source : opennet.ru
