Apresentação no HN: o renascimento do navegador Dillo
(dillo-browser.github.io)- Dillo é um navegador web gráfico rápido e pequeno, voltado até para máquinas antigas ou modestas e conexões lentas, rodando em Linux, BSD, MacOS, Windows via Cygwin e Atari
- Combinando C/C++, poucas dependências, seu próprio motor de renderização em tempo real e a biblioteca GUI FLTK, busca baixo uso de memória e renderização rápida mesmo em páginas grandes
- Suporta HTTP, HTTPS, FTP e arquivos locais por padrão, e pode expandir novos protocolos com plugins escritos em qualquer linguagem
- O projeto mantém a direção de reduzir a barreira de entrada da web e valorizar segurança e privacidade pessoais, além da eficiência de software
- A versão mais recente é a 3.2.0, e os dados principais ficam em seu próprio repositório git, com espelhos no Codeberg e no Sourcehut
Navegador gráfico pequeno e rápido
- Dillo é um navegador web gráfico rápido e pequeno
- Roda em Linux, BSD, MacOS, Windows via Cygwin e Atari
-
Como é implementado
- Foi escrito em C e C++ e tem poucas dependências
- Implementa seu próprio motor de renderização em tempo real
- Mantém baixo uso de memória e renderização rápida mesmo em páginas grandes
- Usa a biblioteca GUI FLTK, rápida e sem excessos
-
Recursos básicos e objetivos
- Suporta HTTP, HTTPS, FTP e arquivos locais
- Pode ser expandido com plugins escritos em qualquer linguagem
- É software livre sob licença GPLv3
- O bug meter ajuda autores a seguir os padrões da web
- Tem como objetivos reduzir a barreira de entrada da web, dar suporte a máquinas antigas ou pequenas e conexões lentas, além de priorizar segurança e privacidade pessoais e alta eficiência de software
- As instruções de uso dos recursos podem ser consultadas no User Manual
- O domínio
dillo.orgnão é mais controlado pelos desenvolvedores do Dillo
Infraestrutura do projeto migrada para hospedagem própria
- O Dillo está migrando de uma operação centrada no GitHub para uma infraestrutura própria
- Dados importantes são armazenados em repositórios git fornecidos pelo serviço cgit
- Os repositórios são espelhados no Codeberg e no Sourcehut
- O código-fonte pode ser visto no repositório Git
- Os principais links do projeto incluem Website, Git, Bug tracker, Mastodon, IRC, Mailing list, Liberapay
Lançamentos, documentação e caminhos para contribuir
- É possível baixar a latest release 3.2.0 e compilar seguindo as instruções do
README.md - As mudanças mais recentes podem ser clonadas diretamente do repositório Git
-
Documentação
- User Manual: cobre como usar todos os recursos e é distribuído junto com o navegador para leitura local
- Topic Guide: trata de tópicos extras que não estão no manual, como configurar Dillo e mpv para abrir arquivos multimídia de URLs
- Developer Documentation: cobre o design interno e a implementação do navegador, sendo recomendada para desenvolvedores
-
Como contribuir
- Se você encontrar algo que não funciona ao navegar na web com o Dillo, pode abrir uma issue ou enviar um e-mail para
dillo-dev@mailman3.com - Você pode enviar patches para implementar novos recursos ou corrigir bugs, ou criar um pull request
- É possível apoiar os custos de testes e infraestrutura via Liberapay
- Se você encontrar algo que não funciona ao navegar na web com o Dillo, pode abrir uma issue ou enviar um e-mail para
Suporte a protocolos estendido por plugins
- Os plugins interagem por entrada e saída padrão e adicionam suporte a novos protocolos
- Exemplos de plugins fornecidos:
- Mais plugins podem ser vistos nos repositórios git
- Para adicionar um novo plugin, basta enviar por e-mail o link do repositório e uma descrição curta
1 comentários
Opiniões do Hacker News
O build funcionou bem em um M1 Mac com macOS 12.7, e a instalação foi só seguir as instruções do macOS: instalar o pacote com
brew installe o OpenSSL 3, depois executar oexportpara definir o caminho do OpenSSL antes de./configureDepois disso, rodando
make,sudo make installedillo, ele abriu e funcionou de imediato; é um binário de 1,6 MB, mas também oferece suporte a SSL e é muito rápidoA busca do Google funciona até certo ponto, mesmo com o CSS quebrado, mas o login do Google parece difícil por não haver JavaScript
[0] https://github.com/dillo-browser/dillo/blob/master/doc/insta...
[1] https://github.com/dillo-browser/dillo/blob/master/doc/insta...
[2] https://stackoverflow.com/a/77749836
No CI parece funcionar mesmo sem a flag de include, mas, como não tenho um Mac físico, há limites para testar
Para hardware de baixo desempenho, realmente precisamos de navegadores mais rápidos e leves
SBCs, Raspberry Pi e notebooks de alguns anos atrás ainda são confortáveis em outros aspectos, mas o desempenho do navegador é sempre o gargalo
No fim, acabei aceitando que alguns requisitos exigem um Ryzen 7 e 16 GB de RAM, e é meio triste que a maior carga computacional venha do MS Teams e do webmail
É surpreendentemente lento, confuso, cheio de bugs, e as abas morrem com frequência; parece um exemplo de como software não deveria ser
Ainda me surpreende que a Microsoft tenha achado isso aceitável, e fico curioso para saber como é o Slack
Talvez não haja muita concorrência, então eles não se esforcem tanto para fazê-lo melhor
O Links também oferece suporte a modo gráfico
Uma CPU razoável de desktop/notebook de baixo custo e 4 GB de RAM são suficientes para rodar o MS Teams, e também não entendo muito bem por que usar webmail quando existem agentes de transferência de e-mail mais práticos e eficientes
Considerando a situação, é bom saber que o Dillo vai continuar
Tenho dois netbooks com Intel Atom N270 de mais ou menos 2009 e 1 GB de RAM; o Firefox é absurdamente pesado neles, e o Dillo deve rodar muito bem
Antigamente eu também usava o Dillo no desktop principal para ler documentos cujo CSS não era pesado, e enquanto 20 a 40 abas no Firefox consumiam muita RAM, o Dillo geralmente ficava perto dos 100 MB
Como ele não tem engine JavaScript, também uso o Dillo para abrir links suspeitos, e considero que é um excelente software que venho usando bem há mais de 15 anos
O Dillo não tem sandbox para partes complexas e frequentemente atacadas, como decodificação de imagens, parsing de HTML/CSS, protocolos de rede e acesso a arquivos locais
Na época da universidade, eu usava em casa um Pentium 4 antigo, e em navegadores comuns era preciso esperar cerca de 30 segundos para abrir uma única aba
Por isso eu usava principalmente o Dillo e, para textos que precisavam de JavaScript, passava pelo cache do Google e então ia para o Firefox
Como a rede também era lenta, o fato de baixar apenas HTML ajudava muito, e o Dillo sempre foi muito rápido por vários anos
Ele também é muito leve
doas /sbin/modprobe zramdoas /sbin/zramctl --find --size 1024Mdoas /sbin/mkswap /dev/zram0doas /sbin/swapon /dev/zram0 --priority -1Mesmo que não seja o Firefox, infelizmente o Luakit pode ser uma boa opção para tarefas em páginas únicas em que JavaScript é obrigatório, como sites de administração pública
Consegui recentemente um netbook com Intel Atom e estou procurando um sistema operacional leve e utilizável
Também tentei Debian, mas o Firefox era lento demais; talvez agora valha tentar de novo com o Dillo
O sistema de extensões é interessante e lembra os scripts CGI locais do w3m
O CGI local do w3m pode ser usado para um visualizador de páginas man, um sistema de favoritos e implementações de protocolos adicionais combinadas com
urimethodmapO Dillo também parece ter plugins DPI semelhantes para man e favoritos, e aparentemente também permite esquemas personalizados como
man:Eu não sabia que havia navegadores além do w3m que suportavam esse tipo de abordagem, e estava criando um projeto pessoal em que até HTTP ficava sobre uma estrutura de plugins parecida; agora tenho um segundo caso de referência
[0]: https://dillo-browser.github.io/old/dpi1.html
[1]: https://github.com/dillo-browser/dillo-plugin-man
Há plugins que implementam “sites” como
file:,vsource:,ftp:, e também plugins responsáveis por funções como cookies, downloads e gerenciamento de favoritosComo são processos separados, os downloads continuam mesmo se você fechar o navegador
[1]: https://github.com/dillo-browser/dillo/tree/master/dpi
Em
~/.dillo/dpidrc, os protocolos são associados aos binários dos plugins, e plugins externos permitemgemini:,gopher:e atégit:Até pouco tempo atrás, HTTPS também era implementado como plugin DPI, mas agora foi incorporado ao próprio navegador
Criei uma biblioteca Go enxuta para escrever plugins do Dillo (https://github.com/boomlinde/dpi) e também criei um plugin para o protocolo Gemini (https://github.com/boomlinde/gemini.filter.dpi)
Pelo que sei, nas versões recentes do Dillo, https também era implementado como plugin DPI
Sugiro entrar em contato com Renato Bravo
https://www.youtube.com/channel/UCuklruLsO-CFoKK_rjNXrXg
https://www.youtube.com/watch?v=A6mb9qt2-3o
No vídeo acima, Renato diz “ese es mi compañero Jorge”, ou seja, “aquele é meu colega Jorge”
Encontrei um Renato Bravo no LinkedIn, mas não sei se é a mesma pessoa
Se ele for da mesma região de Valparaíso, no Chile, que Jorge, talvez seja essa pessoa
Não uso LinkedIn, mas seria bom se alguém pudesse mandar uma mensagem
[1]: https://cl.linkedin.com/in/renatobravo
Antigamente eu testava com frequência no Dillo para ver se um site quebrava completamente, mas o Dillo ficou velho demais e migrei para NetSurf, w3m e elinks
A volta é animadora, especialmente para sistemas de baixa potência
Porém, é uma pena migrar de um repositório Mercurial auto-hospedado para um repositório Git pertencente à Microsoft GitHub, uma grande empresa americana; ainda assim, como o mantenedor diz que aceitará patches por e-mail, ninguém é obrigado a criar uma conta nem aceitar termos de uso
Dá para confiar que o GitHub continuará existindo por pelo menos mais 5 a 10 anos, então é possível colocar um aviso de redirecionamento na página principal
Mesmo assim, concordo que seria melhor migrar para auto-hospedagem ou para uma forge federada
Há uma issue relacionada, e o problema atual é que contas gratuitas em outras forges, como Codeberg, não oferecem uma forma de rodar pipelines de CI em outras plataformas, como macOS
No longo prazo, gostaria de conseguir hardware real, configurar runners próprios e testar também em várias arquiteturas
[1]: https://github.com/dillo-browser/dillo/issues/39
O projeto antigo era auto-hospedado até no servidor de e-mail, criando um enorme ponto único de falha; como isso de fato deu muito errado, queremos evitar repetir o problema
Também estou considerando uma lista de discussão para patches por e-mail, mas não conheço muitas opções gratuitas além de sourcehut e googlegroups
Lembro de usar o Dillo no Puppy Linux em um Live CD antigamente
Fico curioso para saber qual é o compilador mínimo visado, se há um plano de longo prazo, se haverá fuzzing e se vão migrar para um sistema de build moderno como CMake
O plano de longo prazo é, antes de tudo, impedir que o Dillo morra e que seja removido das distribuições
Depois disso, depende do tempo livre disponível, mas pelo menos pretendo mantê-lo
Antes do fuzzing, adicionar conjuntos de testes de outros navegadores deve ajudar a encontrar muitos problemas de renderização; o fuzzing pode ser especialmente interessante para os parsers HTML/CSS feitos por nós
Ao mexer em
configure.ac, vi que ele é muito doloroso quando se mira várias plataformas, e a compilação cruzada também está quebradaPrecisamos verificar como o suporte a CMake funciona em outros sistemas antes de ver se é possível remover com segurança a família Automake, mas não quero introduzir grandes mudanças antes do lançamento 3.1
Baixei o código do GitHub e compilei; o site padrão ainda era
dillo.org, e ao tentar visitá-lo o navegador travouduckduckgo.comtambém travou do mesmo jeito, e parecia ter relação com uma falha de assert do OpenSSLAo recompilar com mbedTLS, consegui acessar esses sites
Tentei fazer login neste thread para responder, mas, mesmo inserindo nome de usuário e senha e fazendo login, eu continuava desconectado sem nenhum erro
Se você abrir uma issue no GitHub incluindo as informações do sistema e a versão do OpenSSL, podemos tentar reproduzir
O problema de login provavelmente ocorre porque os cookies estão desativados
https://dillo-browser.github.io/old/dillo3-help.html
https://dillo-browser.github.io/old/Cookies.txt
No Dillo, todos os cookies vêm desativados por padrão, então é recomendável permiti-los manualmente por site
echo "news.ycombinator.com ACCEPT" >> ~/.dillo/cookies.txtDepois, basta reiniciar o daemon DPI para que ele releia as configurações de cookies
dpidc stopÉ bom ver que o Dillo ainda recebe atenção
Tenho vários plugins do Dillo que consegui há algum tempo no scuttlebutt
Há
dillo-adb,dillo-dat,dillo-finger,dillo-git,dillo-gopher,dillo-gemini,dillo-ipfs,dillo-ssb,dillo-ytdl; se quiserem, posso compactá-los em um zip e enviar para que vocês façam um fork e deem continuidade no projetohttps://celehner.com/projects.html#dillo-plugins
Também já conversei com o Charles sobre manter uma cópia no GitHub sob a organização dillo-browser
Seria bom abrir uma issue e fazer upload para que possamos guardar uma cópia do arquivo zip
Fico satisfeito em ver que o trabalho iniciado a partir de uma semente plantada há muito tempo continua
[1]: https://sources.debian.org/src/gzilla/0.1.5-3/bytesink.doc/
Talvez eu possa ajudar a entrar em contato com o Jorge