Executando verificação de segurança...
10

Ladybird: um novo navegador multiplataforma

Andreas Kling, conhecido por ter dado início ao desenvolvimento do sistema operacional open source SerenityOS, compartilhou recentemente sobre seu novo projeto: o navegador web multiplataforma Ladybird.

Segundo Kling, o Ladybird ganhou vida no dia 4 de julho, quando ele gravou um vídeo criando uma interface gráfica Qt simples para a engine do navegador LibWeb. Inicialmente, a equipe estava trabalhando em um navegador headless e, a partir daí, percebeu a necessidade de avançar e construir uma interface de usuário simples em torno dele.

Originalmente, o Ladybird funcionaria como uma ferramenta de correção de bugs que tornaria mais fácil para as pessoas permanecerem no Linux enquanto trabalhassem na LibWeb, caso quisessem.

Assim, o escopo de criar uma “engine de navegador para SerenityOS” foi alterado para criar uma “engine de navegador multiplataforma” - algo que muito mais pessoas poderiam usar futuramente.

Arquitetura básica

Tanto o LibWeb quanto o LibJS são engines novas que, vale lembrar, receberam a influência de centenas de pessoas que estão trabalhando na base do código desde o início.

Como o Jakt - linguagem memory-safe que está sendo desenvolvida para o SerenityOS - ainda não está pronto para o uso no Ladybird, o navegador e as bibliotecas são todos escritos em C++.

Uma divisão aproximada do stack atual:

Ladybird: navegador com interface gráfica e abas

LibWeb: engine web com vários padrões: HTML, DOM, CSS, SVG, entre outras
LibJS: linguagem ECMAScript, runtime library, garbage collector
LibGfx: gráficos 2D, renderização de texto, formatos de imagem (PNG, JPG, GIF, entre outras)
LibRegex: engine de expressão regular
LibXML: analisador XML
LibWasm: analisador e interpretador WebAssembly
LibUnicode: biblioteca de suporte Unicode
LibTextCodec: biblioteca de conversão de codificação de texto
LibMarkdown: analisador de Markdown
LibCore: funções de suporte diversas (E/S, data e hora, dados MIME, entre outras)
Qt: interface gráfica multiplataforma e protocolos de rede

Licença e “modelo de negócios”

O Ladybird e sua engine estão disponíveis gratuitamente sob a licença 2-clause BSD. Não é possível comprar influência sobre o projeto, mas é possível melhorar o navegador participando do desenvolvimento.

Sobre a maturidade

Como o projeto ainda está no início, muitos recursos estão ausentes ou quebrados. Vai levar muito tempo até que o Ladybird esteja pronto para a navegação diária.

Segundo Kling, a equipe ainda está na parte do “make it work” do ciclo “make it work, make it good, make it faster”. Assim, a tendência é se concentrar na correção e no suporte a recursos, em vez de na otimização. O trabalho de desempenho acontece principalmente no nível de arquitetura, embora também ocorram otimizações direcionadas que solucionam pontos problemáticos específicos.

Um gráfico mostrando a nota 100 de 100 em um teste de Acid3

O navegador passou no teste de padrões Acid3, que abrange vários recursos básicos de layout CSS e várias APIs DOM/HTML - mas que, no entanto, não cobre muitos dos recursos usados ​​na web hoje (como CSS flexbox e CSS grid).

A fidelidade de sites modernos está melhorando constantemente, mas é comum haver problemas de layout e compatibilidade. Como nesse exemplo abaixo:

Um print de uma página do Reddit com vários bugs

Kling também deixa claro que seu objetivo não é apresentar um novo aplicativo de uso geral. O Ladybrid seria mais como um novo projeto pessoal: a criação de um navegador multiplataforma verdadeiramente independente e um convite para quem estiver interessado em trabalhar em um navegador completamente novo.

Carregando publicação patrocinada...