Sobre o projeto
ZeroWeb é um projeto experimental de navegador multiplataforma implementado em Rust, mantendo simultaneamente duas linhas de produtos: a biblioteca ZeroWebView, embarcável e reutilizável, e o aplicativo de navegador completo ZeroBrowser. O projeto posiciona-se com prioridade em incorporação, prioridade em limites de licença (dependências da linha principal tendem a licenças permissivas como MIT, Apache-2.0, BSD, etc.) e uma rota full-stack em Rust, onde DOM, CSS, layout, renderização, navegação e limites de segurança são construídos camada por camada dentro do repositório, em vez de utilizar um núcleo existente.
Arquiteturalmente, adota a divisão multiprocesso: o zero-browser retém apenas a janela, a interface do navegador, o proxy de rede e a importação de quadros IPC para apresentação; a renderização da página e a execução de scripts são assumidas pelo zero-renderer, enquanto a decodificação de imagens e a composição são processadas pelos subprocessos zero-image-decoder e zero-compositor, respectivamente. A versão de lançamento padrão não vincula WebView, sandbox de scripts ou motor JS no processo do navegador; a depuração headless também realiza navegação, scripts e capturas de tela via IPC do renderer. O workspace possui 32 membros, incluindo 22 crates de biblioteca, 7 pontos de entrada de aplicativos, além de ferramentas de teste e desenvolvimento.
A camada de JavaScript da página é fornecida pelo script-sandbox com feature gates para os motores duplos V8/QuickJS, abrangendo Web Worker, ES Modules e fazendo a ponte automática da WebAssembly JS API para o wasm-sandbox; as vinculações nativas de DOM do V8 estão ativadas por padrão, incluindo despacho e propagação de eventos nativos, ciclo de vida de customElements/Web Components, realismo de fetch, diversos callbacks de observadores, além de suporte a controles de formulário e seletores. Na direção de mídia, oferece demux de webm/Matroska, decodificação VP9 em Rust puro, decodificação opcional de AV1 e H.264, drivers de reprodução de decodificação de áudio e VideoPlayer, barramento de mixagem e uma interface mínima de Web Audio. As capacidades de armazenamento e offline cobrem localStorage, sessionStorage, IndexedDB, caches/Cache API, e implementam o ciclo de vida do Service Worker e a interceptação fetch respondWith, com a realização do OPFS ainda em andamento. O lado da segurança inclui a implementação de CSP, pré-carregamento de HSTS, bloqueio e upgrade de conteúdo misto, modelo de permissões e isolamento de sites; a acessibilidade começa com FocusManager e ARIA; a compatibilidade de edição HTML, interação de teclado e comportamento de formulários também avançam como linhas de desenvolvimento independentes.
No lado da engenharia, fornece o serviço W3C WebDriver (34 endpoints, incluindo capturas de tela e testes de integração de ponta a ponta), métricas de compatibilidade de renderização baseadas em WPT/CSSWG reftest (o README registra que cerca de 87,2% do corpus de reftest upstream está alinhado, utilizando a taxa de consistência de pixels do Chromium Oracle como indicador honesto), portões de regressão de pixels para páginas estáticas do produto, além de scripts de empacotamento para Linux/macOS/Windows e Android M0 bootstrap. O projeto indica claramente que está em fase experimental, voltado principalmente para aprendizado, pesquisa e exploração de engenharia, não sendo adequado para uso diário ou em produção; a licença é MIT. É também um experimento de engenharia AI-first, onde o desenvolvimento do código é realizado principalmente por IA, enquanto humanos são responsáveis pelo design da solução, decisões críticas e validação de resultados.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.