HN-Vorstellung: Die Wiederbelebung des Dillo-Browsers
(dillo-browser.github.io)- 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.orgwird nicht mehr von den Dillo-Entwicklern kontrolliert
Projektinfrastruktur zieht auf Self-Hosting um
- Dillo bewegt sich von einem GitHub-zentrierten Betrieb hin zu selbst gehosteter Infrastruktur
- Wichtige Daten werden in Git-Repositories gespeichert, die vom cgit service bereitgestellt werden
- Die Repositories werden auf Codeberg und Sourcehut gespiegelt
- Den Quellcode kann man im Git-Repository einsehen
- Wichtige projektbezogene Links werden über Website, Git, Bug tracker, Mastodon, IRC, Mailing list und Liberapay bereitgestellt
Releases, Dokumentation und Wege zur Mitarbeit
- Das latest release 3.2.0 kann heruntergeladen und gemäß den Anweisungen in
README.mdgebaut 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
Ü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:
- 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
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./configureeinexportauszuführen, das den OpenSSL-Pfad setztDanach mit
make,sudo make install,dillostarten – es funktionierte sofort; ein 1,6-MB-Binary, das sogar SSL unterstützt und sehr schnell istDie 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
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
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
Links unterstützt auch einen Grafikmodus
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
Dillo hat keine Sandbox für komplexe, häufig angegriffene Bereiche wie Bilddekodierung, HTML/CSS-Parsing, Netzwerkprotokolle oder lokalen Dateizugriff
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
Es ist ebenfalls sehr leichtgewichtig
doas /sbin/modprobe zramdoas /sbin/zramctl --find --size 1024Mdoas /sbin/mkswap /dev/zram0doas /sbin/swapon /dev/zram0 --priority -1Wenn schon nicht Firefox, könnte Luakit für einzelne Aufgaben, bei denen JavaScript leider zwingend ist – etwa Websites der staatlichen Verwaltung –, ganz brauchbar sein
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 werdenDillo scheint ähnlich ein man-Plugin und ein DPI-Plugin für Bookmarks zu haben; auch benutzerdefinierte Schemes wie
man:scheinen möglich zu seinIch 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
Es gibt Plugins, die „Websites“ wie
file:,vsource:oderftp:implementieren, und solche, die Funktionen wie Cookies, Downloads oder Bookmark-Verwaltung übernehmenDa 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/dpidrcwerden Protokolle mit Plugin-Binärdateien verknüpft; mit externen Plugins sindgemini:,gopher:und sogargit:möglichBis vor Kurzem war auch HTTPS als DPI-Plugin implementiert, ist inzwischen aber in den Browser selbst gewandert
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
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
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
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
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.aczeigte sich, dass es für mehrere Plattformen sehr schmerzhaft ist, und auch Cross-Compilation ist kaputtWir 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.compassierte 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.
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.txtDanach musst du den DPI-Daemon neu starten, damit die Cookie-Einstellungen neu eingelesen werden.
dpidc stopSchö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.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.
[1]: https://sources.debian.org/src/gzilla/0.1.5-3/bytesink.doc/
Vielleicht kann ich dabei helfen, Jorge zu kontaktieren.