1 Punkte von GN⁺ 2024-01-03 | 1 Kommentare | Auf WhatsApp teilen
  • Dillo ist ein schneller, kleiner grafischer Webbrowser, der auch auf alte oder kleine Rechner und langsame Verbindungen abzielt; er läuft unter Linux, BSD, MacOS, Windows über Cygwin und Atari
  • Mit C/C++, wenigen Abhängigkeiten, einer eigenen Echtzeit-Rendering-Engine und der FLTK-GUI-Bibliothek strebt er auch bei großen Seiten geringen Speicherverbrauch und schnelles Rendering an
  • HTTP, HTTPS, FTP und lokale Dateien werden standardmäßig unterstützt; neue Protokolle lassen sich über Plugins erweitern, die in jeder Sprache geschrieben sein können
  • Das Projekt hält an seiner Ausrichtung fest, die Einstiegshürden ins Web zu senken und persönliche Sicherheit, Datenschutz sowie Softwareeffizienz in den Mittelpunkt zu stellen
  • Die aktuelle Version ist 3.2.0; wichtige Daten werden in einem eigenen Git-Repository gespeichert und außerdem auf Codeberg und Sourcehut gespiegelt

Kleiner und schneller grafischer Browser

  • Dillo ist ein schneller und kleiner grafischer Webbrowser
  • Er läuft unter Linux, BSD, MacOS, Windows über Cygwin und Atari
  • Implementierung

    • Er ist in C und C++ geschrieben und hat nur wenige Abhängigkeiten
    • Er implementiert eine eigene Echtzeit-Rendering-Engine
    • Auch bei großen Seiten bleibt der Speicherverbrauch niedrig und das Rendering schnell
    • Er nutzt die schnelle, schlanke GUI-Bibliothek FLTK
  • Grundfunktionen und Ausrichtung

    • Unterstützt HTTP, HTTPS, FTP und lokale Dateien
    • Lässt sich über Plugins erweitern, die in jeder Sprache geschrieben sein können
    • Freie Software unter der GPLv3-Lizenz
    • Der bug meter hilft Autoren dabei, Webstandards einzuhalten
    • Ziel sind niedrigere Einstiegshürden ins Web, Unterstützung für alte oder kleine Rechner und langsame Verbindungen, persönliche Sicherheit und Datenschutz sowie hohe Softwareeffizienz
    • Die Nutzung der Funktionen ist im User Manual beschrieben
    • Die Domain dillo.org wird nicht mehr von den Dillo-Entwicklern kontrolliert

Projektinfrastruktur zieht auf Self-Hosting um

Releases, Dokumentation und Wege zur Mitarbeit

  • Das latest release 3.2.0 kann heruntergeladen und gemäß den Anweisungen in README.md gebaut werden
  • Die neuesten Änderungen lassen sich direkt aus dem Git repository klonen
  • Dokumentation

    • User Manual: Behandelt die Nutzung aller Funktionen, wird mit dem Browser ausgeliefert und kann lokal gelesen werden
    • Topic Guide: Behandelt zusätzliche Themen, die nicht im Handbuch stehen, etwa wie man Dillo und mpv so konfiguriert, dass Multimediadateien von URLs geöffnet werden
    • Developer Documentation: Behandelt das interne Design und die Implementierung des Browsers und wird Entwicklern empfohlen
  • Wie man beitragen kann

    • Wenn beim Surfen mit Dillo etwas nicht funktioniert, kann man ein issue eröffnen oder eine E-Mail an dillo-dev@mailman3.com senden
    • Man kann Patches für neue Funktionen oder Bugfixes einsenden oder einen Pull Request erstellen
    • Über Liberapay kann man Test- und Infrastrukturkosten unterstützen

Über Plugins erweiterte Protokollunterstützung

  • Plugins interagieren über Standardeingabe und -ausgabe und fügen Unterstützung für neue Protokolle hinzu
  • Beispiele für bereitgestellte Plugins sind:
    • Gemini: gemini://, Bash, Plugin für das Gemini-Protokoll
    • Gopher: gopher://, C, Plugin für das Gopher-Protokoll
    • IPFS: ipfs://, ipns://, Go, Plugin für das IPFS-Protokoll
    • Man: man://, Bash, rendert Manpages als HTML
    • Spartan: spartan://, Bash, Plugin für das Spartan-Protokoll
  • Weitere Plugins sind in den git repositories zu finden
  • Um ein neues Plugin hinzuzufügen, genügt es, einen Repository-Link und eine kurze Beschreibung per E-Mail zu senden

1 Kommentare

 
GN⁺ 2024-01-03
Meinungen auf Hacker News
  • Der Build lief auf einem M1 Mac mit macOS 12.7 problemlos; für die Installation reicht es, wie in der macOS-Anleitung die brew install-Pakete und OpenSSL 3 zu installieren und vor ./configure ein export auszuführen, das den OpenSSL-Pfad setzt
    Danach mit make, sudo make install, dillo starten – es funktionierte sofort; ein 1,6-MB-Binary, das sogar SSL unterstützt und sehr schnell ist
    Die Google-Suche funktioniert trotz kaputtem CSS einigermaßen, aber ohne JavaScript dürfte ein Google-Login schwierig sein
    [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

    • Ich denke, die macOS-Installationsanleitung sollte um das Setzen des OpenSSL-Pfads ergänzt werden
      In CI scheint es auch ohne Include-Flags zu gehen, aber da ich keinen eigenen Mac habe, sind Tests nur begrenzt möglich
  • Für leistungsschwache Hardware braucht es wirklich schnellere und leichtere Browser
    SBCs, Raspberry Pis und ein paar Jahre alte Notebooks sind in anderen Bereichen noch angenehm nutzbar, aber immer bremst die Browser-Performance
    Am Ende musste ich akzeptieren, dass bestimmte Anforderungen einen Ryzen 7 und 16 GB RAM nötig machen; bitter ist, dass die größte Rechenlast von MS Teams und Webmail kommt

    • Nachdem ich MS Teams etwa zwei Jahre genutzt habe, kann ich dem wirklich zustimmen
      Es ist erstaunlich langsam, verwirrend und voller Bugs, Tabs sterben häufig ab, und es fühlte sich an wie ein Beispiel dafür, wie Software nicht sein sollte
      Dass Microsoft das für in Ordnung hält, wundert mich immer noch; ich frage mich, wie Slack im Vergleich ist
      Vielleicht geben sie sich auch deshalb weniger Mühe, weil es kaum Wettbewerb gibt
    • Ich erinnere mich noch gut daran, wie man mit Windows 98 und 64 MB RAM ziemlich ordentlich im Web surfen konnte; traurig, dass es heute selbst mit mehreren GB kaum noch gut funktioniert
    • Als leichtere Webbrowser gibt es NetSurf, Pale Moon, K-Meleon on Goanna, Otter Browser und Ultralight; als Terminal-Apps außerdem Carbonyl, Browsh und Links
      Links unterstützt auch einen Grafikmodus
    • Ich halte das für ziemlich übertrieben
      Eine vernünftige günstige Desktop-/Notebook-CPU und 4 GB RAM reichen aus, um MS Teams laufen zu lassen, und ich verstehe auch nicht ganz, warum man Webmail nutzt, wenn es praktischere und effizientere Mail Transfer Agents gibt
  • Angesichts der Lage ist es erfreulich zu hören, dass Dillo weitergeführt wird
    Ich habe zwei Intel-Atom-N270-Netbooks von etwa 2009 mit 1 GB RAM; Firefox ist darauf absurd schwerfällig, während Dillo sehr gut laufen dürfte
    Früher habe ich Dillo auch auf meinem Haupt-Desktop genutzt, wenn ich Dokumente ohne schweres CSS ansehen wollte; während 20–40 Tabs in Firefox viel RAM fraßen, blieb Dillo meist in der Nähe von 100 MB
    Weil es keine JavaScript-Engine hat, nutze ich Dillo auch zum Öffnen verdächtiger Links, und ich finde, es ist großartige Software, die mir seit über 15 Jahren gute Dienste leistet

    • Zum Öffnen verdächtiger Links würde ich eher ein Chromium- oder Firefox-Profil mit deaktiviertem JavaScript und deaktivierten Webfonts empfehlen als C-Software mit unklarer Wartung
      Dillo hat keine Sandbox für komplexe, häufig angegriffene Bereiche wie Bilddekodierung, HTML/CSS-Parsing, Netzwerkprotokolle oder lokalen Dateizugriff
    • Genau das war Jorges Ziel: Menschen in Regionen mit leistungsschwächeren Rechnern den Zugang zum Web zu ermöglichen
      Während des Studiums hatte ich zu Hause einen alten Pentium 4; in normalen Browsern musste man etwa 30 Sekunden warten, um einen einzelnen Tab zu öffnen
      Deshalb nutzte ich hauptsächlich Dillo, und bei Artikeln, die JavaScript brauchten, ging ich über den Google-Cache weiter zu Firefox
      Da auch das Netzwerk langsam war, half es sehr, nur HTML abzurufen, und Dillo war über Jahre hinweg immer sehr schnell
    • Mich würde interessieren, ob du als Alternative auch NetSurf ausprobiert hast
      Es ist ebenfalls sehr leichtgewichtig
    • Es kann helfen, mit dem zramup-Skript zram-Swap einzurichten
      doas /sbin/modprobe zram
      doas /sbin/zramctl --find --size 1024M
      doas /sbin/mkswap /dev/zram0
      doas /sbin/swapon /dev/zram0 --priority -1
      Wenn schon nicht Firefox, könnte Luakit für einzelne Aufgaben, bei denen JavaScript leider zwingend ist – etwa Websites der staatlichen Verwaltung –, ganz brauchbar sein
    • Mich würde interessieren, welches Betriebssystem du auf diesen Netbooks verwendest
      Ich habe kürzlich ein Intel-Atom-Netbook bekommen und suche nach einem leichten, brauchbaren Betriebssystem
      Debian habe ich auch versucht, aber Firefox war zu langsam; vielleicht lohnt sich jetzt ein neuer Versuch mit Dillo
  • Das Erweiterungssystem ist interessant und erinnert an die lokalen CGI-Skripte von w3m
    Lokales CGI in w3m kann für einen man-Page-Viewer, ein Bookmark-System und, kombiniert mit urimethodmap, für die Implementierung zusätzlicher Protokolle genutzt werden
    Dillo scheint ähnlich ein man-Plugin und ein DPI-Plugin für Bookmarks zu haben; auch benutzerdefinierte Schemes wie man: scheinen möglich zu sein
    Ich wusste nicht, dass es außer w3m Browser gibt, die diesen Ansatz unterstützen, und ich arbeitete an einem privaten Projekt, bei dem sogar HTTP auf einer ähnlichen Plugin-Struktur aufsetzt; nun habe ich ein zweites Referenzbeispiel
    [0]: https://dillo-browser.github.io/old/dpi1.html
    [1]: https://github.com/dillo-browser/dillo-plugin-man

    • In Dillo sind viele Funktionen als DPI implementiert
      Es gibt Plugins, die „Websites“ wie file:, vsource: oder ftp: implementieren, und solche, die Funktionen wie Cookies, Downloads oder Bookmark-Verwaltung übernehmen
      Da sie in separaten Prozessen laufen, gehen Downloads auch weiter, wenn der Browser geschlossen wird
      [1]: https://github.com/dillo-browser/dillo/tree/master/dpi
      In ~/.dillo/dpidrc werden Protokolle mit Plugin-Binärdateien verknüpft; mit externen Plugins sind gemini:, gopher: und sogar git: möglich
      Bis vor Kurzem war auch HTTPS als DPI-Plugin implementiert, ist inzwischen aber in den Browser selbst gewandert
    • Das Erweiterungssystem ist schlicht und gut handhabbar
      Ich habe eine schlanke Go-Bibliothek zum Schreiben von Dillo-Plugins erstellt (https://github.com/boomlinde/dpi) und auch ein Plugin für das Gemini-Protokoll gebaut (https://github.com/boomlinde/gemini.filter.dpi)
      Soweit ich weiß, war in neueren Dillo-Versionen auch https als DPI-Plugin implementiert
    • Soweit ich mich erinnere, hat Arachne etwas Ähnliches gemacht
  • Ich schlage vor, Renato Bravo zu kontaktieren
    https://www.youtube.com/channel/UCuklruLsO-CFoKK_rjNXrXg
    https://www.youtube.com/watch?v=A6mb9qt2-3o
    In dem Video oben sagt Renato „ese es mi compañero Jorge“, also „das ist mein Kollege Jorge“
    Ich habe Renato Bravo auf LinkedIn gefunden, weiß aber nicht, ob es dieselbe Person ist

    • Gute Idee
      Wenn er wie Jorge aus der Region Valparaíso in Chile stammt, könnte es vermutlich diese Person sein
      Ich nutze LinkedIn nicht, aber es wäre gut, wenn jemand ihm eine Nachricht schicken könnte
      [1]: https://cl.linkedin.com/in/renatobravo
  • Früher habe ich oft mit Dillo getestet, um zu sehen, ob eine Website komplett kaputtgeht, bin dann aber auf NetSurf, w3m und elinks umgestiegen, weil Dillo zu sehr veraltet war
    Die Wiederbelebung ist besonders für stromsparende Systeme ermutigend
    Schade ist allerdings der Umzug von einem selbst gehosteten Mercurial-Repository zu einem Git-Repository auf Microsoft GitHub, einem US-Großkonzern; immerhin sagt der Maintainer, dass er E-Mail-Patches annimmt, sodass weder Kontoerstellung noch Zustimmung zu Nutzungsbedingungen erzwungen werden

    • Wenn man bedenkt, dass der Hauptgrund für das Verschwinden des Self-Hostings eben das Self-Hosting war, klingt diese Beschwerde zwar nachvollziehbar, aber auch etwas merkwürdig
    • Der Umzug zu GitHub erschien als guter erster Schritt, um die Sichtbarkeit des Projekts zu erhöhen und mehr Beiträge anzuziehen
      Bei GitHub kann man zumindest darauf vertrauen, dass es in den nächsten 5 bis 10 Jahren noch existiert, sodass man auf der Haupt-Webseite einen Redirect-Hinweis platzieren kann
      Trotzdem stimme ich zu, dass Self-Hosting oder der Umzug zu einer föderierten Forge besser wäre
      Dazu gibt es ein Issue; das aktuelle Problem ist, dass man bei kostenlosen Accounts anderer Forges wie Codeberg keine CI-Pipelines auf anderen Plattformen wie macOS ausführen kann
      Langfristig möchte ich echte Hardware beschaffen, eigene Runner aufsetzen und auch auf mehreren Architekturen testen
      [1]: https://github.com/dillo-browser/dillo/issues/39
      Das frühere Projekt hat sogar den Mailserver selbst gehostet, wodurch ein riesiger Single Point of Failure entstand, der tatsächlich schwer gescheitert ist; das wollen wir vermeiden
      Für E-Mail-Patches denke ich auch über eine Mailingliste nach, kenne aber neben sourcehut und googlegroups nicht viele kostenlose Anbieter
  • Ich erinnere mich daran, Dillo früher auf Puppy Linux von einer Live-CD genutzt zu haben
    Mich würde interessieren, welcher minimale Compiler angepeilt wird, ob es langfristige Pläne gibt, ob Fuzzing vorgesehen ist und ob ein Umstieg auf ein modernes Build-System wie CMake geplant ist

    • Einen Ziel-Minimalcompiler haben wir noch nicht festgelegt, aber ihn in CI aufzunehmen dürfte nicht schwierig sein
      Der langfristige Plan ist zunächst, Dillo am Leben zu halten und zu verhindern, dass es aus Distributionen entfernt wird
      Danach hängt es von der verfügbaren Freizeit ab, aber zumindest Wartung soll es geben
      Vor dem Fuzzing könnte das Hinzufügen weiterer Browser-Test-Suites viele Rendering-Probleme aufdecken; besonders für den selbst geschriebenen HTML/CSS-Parser könnte Fuzzing interessant sein
      Beim Bearbeiten von configure.ac zeigte sich, dass es für mehrere Plattformen sehr schmerzhaft ist, und auch Cross-Compilation ist kaputt
      Wir müssen prüfen, wie gut CMake-Unterstützung auf anderen Systemen funktioniert, bevor wir die Automake-Familie sicher entfernen können, aber vor dem Release 3.1 möchte ich keine großen Änderungen einbauen
  • Ich habe den Code von GitHub geholt und gebaut; die Standardseite ist noch dillo.org, und als ich sie aufrufen wollte, ist der Browser abgestürzt.
    Bei duckduckgo.com passierte dasselbe, und es schien mit einem fehlgeschlagenen Assert in OpenSSL zusammenzuhängen.
    Nachdem ich mit mbedTLS neu kompiliert hatte, konnte ich diese Seiten aufrufen.
    Ich wollte mich in diesem Thread einloggen und antworten, aber selbst nach Eingabe von Benutzername und Passwort und dem Login blieb ich ohne Fehlermeldung weiter ausgeloggt.

    • Danke fürs Testen; die Standardseite müssen wir auf die neue Website umstellen.
      Wenn du mit Systeminformationen und der OpenSSL-Version ein GitHub-Issue eröffnest, können wir versuchen, das zu reproduzieren.
      Das Login-Problem liegt wahrscheinlich daran, dass Cookies deaktiviert sind.
      https://dillo-browser.github.io/old/dillo3-help.html
      https://dillo-browser.github.io/old/Cookies.txt
      In Dillo sind standardmäßig alle Cookies deaktiviert; empfohlen ist daher, sie pro Website manuell zu erlauben.
      echo "news.ycombinator.com ACCEPT" >> ~/.dillo/cookies.txt
      Danach musst du den DPI-Daemon neu starten, damit die Cookie-Einstellungen neu eingelesen werden.
      dpidc stop
  • Schön zu sehen, dass Dillo noch Interesse weckt.
    Ich habe ziemlich viele Dillo-Plugins, die ich früher aus scuttlebutt bekommen habe.
    Es gibt dillo-adb, dillo-dat, dillo-finger, dillo-git, dillo-gopher, dillo-gemini, dillo-ipfs, dillo-ssb, dillo-ytdl; wenn ihr möchtet, kann ich sie als ZIP packen und schicken, damit ihr sie forken und im Projekt weiterführen könnt.

    • Die meisten scheinen von Charles zu stammen, und er pflegt das scuttlebutt-web-Interface, daher kann man sie von seiner Homepage herunterladen.
      https://celehner.com/projects.html#dillo-plugins
      Über das Ablegen von Kopien auf GitHub unter der dillo-browser-Organisation habe ich bereits mit Charles gesprochen.
      Du kannst auch gern ein Issue eröffnen und die ZIP-Datei hochladen, damit wir eine Kopie archivieren können.
  • Es macht mich stolz zu sehen, dass die Arbeit aus einem vor langer Zeit gepflanzten Samen weitergeht.