A Cloudflare anunciou a abertura do código-fonte do navegador web Kitesurf, projetado para uso por agentes de IA e bots. O Kitesurf suporta a análise de HTML, a aplicação de estilos CSS, a execução de JavaScript e a geração de capturas de tela, mas não possui as complicações e excessos criados para humanos e inúteis para bots. A eliminação de funcionalidades como renderização perfeita e suporte a extensões permitiu uma redução significativa na carga de CPU e no consumo de memória. O código é escrito nas linguagens Rust e TypeScript e é distribuído sob a licença Apache 2.0.
Em vez de motores de navegador pesados, o Kitesurf utiliza bibliotecas abertas escritas em Rust: Blitz para análise de HTML, manipulação de DOM, layout e renderização da página; Stylo (usado no Firefox) para processamento de CSS; Boa para execução de JavaScript e suporte a WebAssembly; Linebender para manipulação de texto e gráficos 2D; Krilla para geração de saída em formato PDF.
Comparado ao uso do motor Chromium, durante a realização de operações de criação de capturas de tela no Kitesurf, foi observada uma redução na carga de CPU de 3,1 vezes e uma redução no consumo de memória de 4,7 vezes, enquanto a análise de HTML mostrou uma redução de 3,8 e 7 vezes, respectivamente. O tempo total de execução dos testes foi cerca de 1,7 e 1,8 vezes mais lento devido ao início a frio, rasterização e codificação em JPEG/PNG.
O Kitesurf passa com sucesso mais de 215 mil testes do conjunto WPT (Web Platform Tests), renderiza corretamente páginas de sites típicos, como a Wikipedia, suporta diferentes frameworks web (React, Vue, Angular, Preact) e é capaz de executar o jogo Doom, compilado em WebAssembly.
Dentre as limitações, destaca-se a ausência de suporte à reprodução de vídeo, WebGL, scripts complexos para verificação de captcha e sessões autenticadas prolongadas que exigem a preservação do estado.
O navegador é composto por três componentes:
- Um motor para gerenciar sessões, processar conexões de clientes e suportar o protocolo CDP (Chrome DevTools Protocol);
- PageScript para processamento isolado de web pages e execução de JavaScript;
- PageRenderer para renderização de páginas, geração de capturas de tela e exportação para PDF.
Os componentes são isolados entre si e têm acesso apenas aos recursos necessários. A operação acontece em modo Stateless sem preservação do estado.

Kitesurf foi projetado para ser iniciado usando a plataforma Cloudflare Workers (com um runtime workerd disponível), com compilação em WebAssembly, mas pode ser utilizado não apenas na infraestrutura do Cloudflare, mas também em sistemas locais com Node.js. Para gerenciar e automatizar a interação com o Kitesurf, recomenda-se o uso da API Web via WebSocket, interface de linha de comando e protocolo CDP, que é compatível com a biblioteca Puppeteer.
Fonte: opennet.ru
