1 pontos por GN⁺ 2024-01-03 | 1 comentários | Compartilhar no WhatsApp
  • 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.org não é mais controlado pelos desenvolvedores do Dillo

Infraestrutura do projeto migrada para hospedagem própria

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

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:
    • Gemini: gemini://, Bash, plugin do protocolo Gemini
    • Gopher: gopher://, C, plugin do protocolo Gopher
    • IPFS: ipfs://, ipns://, Go, plugin do protocolo IPFS
    • Man: man://, Bash, renderiza páginas man em HTML
    • Spartan: spartan://, Bash, plugin do protocolo Spartan
  • 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

 
GN⁺ 2024-01-03
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 install e o OpenSSL 3, depois executar o export para definir o caminho do OpenSSL antes de ./configure
    Depois disso, rodando make, sudo make install e dillo, ele abriu e funcionou de imediato; é um binário de 1,6 MB, mas também oferece suporte a SSL e é muito rápido
    A 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

    • Acho que as instruções de instalação no macOS precisam acrescentar a configuração do caminho do OpenSSL
      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

    • Depois de usar o MS Teams por uns 2 anos, concordo totalmente
      É 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
    • Tenho uma lembrança clara de navegar bem pela web com Windows 98 e 64 MB de RAM, e é triste que agora, mesmo com vários GB, isso não funcione direito
    • Entre navegadores web mais leves há NetSurf, Pale Moon, K-Meleon on Goanna, Otter Browser e Ultralight; e, como apps de terminal, Carbonyl, Browsh e Links
      O Links também oferece suporte a modo gráfico
    • Acho isso bem exagerado
      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

    • Para abrir links suspeitos, eu recomendaria usar um perfil do Chromium ou Firefox com JavaScript e webfonts desativados, em vez de um software em C de manutenção incerta
      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
    • Esse era justamente o objetivo que Jorge tinha em mente: permitir que pessoas em regiões onde se usam máquinas de baixo desempenho também pudessem acessar a web
      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
    • Fico curioso para saber se você também testou o NetSurf como opção
      Ele também é muito leve
    • Pode ajudar configurar swap em zram com o script zramup
      doas /sbin/modprobe zram
      doas /sbin/zramctl --find --size 1024M
      doas /sbin/mkswap /dev/zram0
      doas /sbin/swapon /dev/zram0 --priority -1
      Mesmo 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
    • Fico curioso sobre qual sistema operacional você usa nesse netbook
      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 urimethodmap
    O 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

    • No Dillo, muitos recursos são implementados como DPI
      Há plugins que implementam “sites” como file:, vsource:, ftp:, e também plugins responsáveis por funções como cookies, downloads e gerenciamento de favoritos
      Como 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 permitem gemini:, 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
    • O sistema de extensões é simples e fácil de lidar
      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
    • Pelo que me lembro, o Arachne também fazia algo parecido
  • 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

    • Boa ideia
      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

    • Considerando que o principal motivo pelo qual a auto-hospedagem desapareceu foi justamente ela ser auto-hospedada, essa reclamação é compreensível, mas soa um pouco estranha
    • A mudança para o GitHub foi considerada um bom ponto de partida para aumentar a visibilidade do projeto e atrair mais contribuições
      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

    • Ainda não definimos um compilador mínimo alvo, mas parece não ser difícil adicioná-lo ao CI
      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á quebrada
      Precisamos 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 travou
    duckduckgo.com também travou do mesmo jeito, e parecia ter relação com uma falha de assert do OpenSSL
    Ao 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

    • Obrigado por testar; o site padrão precisa ser alterado para o novo site
      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.txt
      Depois, 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
    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 projeto

    • A maioria parece ter sido feita pelo Charles, e ele mantém a interface scuttlebutt-web, então dá para baixá-los na página inicial dele
      https://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