Chawan TUI-Webbrowser
(chawan.net)- Chawan ist ein neuer TUI-Webbrowser, der in einer textbasierten Terminalumgebung läuft
- Diese Version 0.2.0 enthält alle essenziellen Funktionen der MVP-Phase und ist frei von kritischen Bugs
- Erforderlich sind nur die Bibliotheken libssh2, libbrotli und OpenSSL/LibreSSL; mehrere Abhängigkeiten aus früheren Versionen wurden entfernt
- Für amd64-Linux wird er auch als statisches Binärprogramm und .deb-Paket bereitgestellt, was Verteilung und Installation erleichtert
- Für die nächste Version sind Performance-Verbesserungen im Layout-Modul und ein besseres UI-Erlebnis geplant
Einführung in Chawan 0.2.0
Chawan ist ein leichtgewichtiger Webbrowser auf Basis einer Terminal User Interface (TUI), der als Open-Source-Projekt dafür entwickelt wurde, das Web in Textumgebungen bequem zu durchsuchen. Die Version 0.2.0 ist die erste stabilisierte Veröffentlichung mit allen zentralen Funktionen der Minimum Viable Product (MVP)-Phase; derzeit sind keine schwerwiegenden kritischen Bugs gemeldet.
Bereitstellung und Installation
- Ein Tarball des Source Trees wird bereitgestellt; wer selbst kompilieren möchte, kann den Anweisungen im README folgen
- Für amd64-Linux wird eine statische Binärdistribution angeboten, die sich nach dem Entpacken des Archivs einfach mit dem Befehl
make installinstallieren lässt- Die Deinstallation ist mit
make uninstallmöglich
- Die Deinstallation ist mit
- Dieselbe Distribution ist auch als .deb-Paket verfügbar und kann auf Debian-basierten Systemen direkt installiert werden
Informationen für Paketbetreuer
- Die erforderlichen Laufzeit-Abhängigkeiten von Chawan sind:
- libssh2
- libbrotli (einschließlich libbrotlicommon und libbrotlidec)
- OpenSSL (3.0 oder höher) oder LibreSSL (getestet mit OpenBSD 7.7)
- zlib, libseccomp, termcap/ncurses, libcurl und weitere, die in früheren Entwicklungsversionen verwendet wurden, werden nicht mehr benötigt und wurden daher aus den Abhängigkeiten entfernt
- Falls beim Paketieren Probleme auftreten, sollte vor einem Patch zunächst der Entwickler kontaktiert werden, da das Problem wahrscheinlich direkt Upstream gelöst werden kann
Ausblick
- Diese Version 0.2.0 hat länger als erwartet gebraucht, wurde aber zur offiziellen Veröffentlichung bestimmt, da nun alle MVP-Funktionen vorhanden sind
- Im v0.2-Branch werden künftig nur noch Bugfixes vorgenommen; neue Funktionen werden weiterhin im master-Branch hinzugefügt
- Die nächste Veröffentlichung konzentriert sich auf Verbesserungen bei Performance und Genauigkeit des Layout-Moduls sowie auf eine benutzerfreundlichere UI
Bedeutung und Vorteile des Projekts
- Chawan ist ein für Terminalumgebungen optimierter Webbrowser, der den Zugriff auf Webinhalte auch auf ressourcenbeschränkten Servern und in eingeschränkten Umgebungen ermöglicht
- Im Unterschied zu bestehenden textbasierten Webbrowsern bietet er moderne Verschlüsselungs- und Komprimierungsprotokolle sowie minimale Abhängigkeiten als Alleinstellungsmerkmale
- Durch den Open-Source-Ansatz eignet er sich gut für Erweiterungen und individuelle Anpassungen
1 Kommentare
Hacker-News-Kommentare
Ich freue mich immer, wenn ich ein in Nim geschriebenes Projekt sehe. Ich habe den Eindruck, dass Nim irgendwo zwischen C/C++ und Python liegt und eine der interessantesten Sprachen überhaupt ist. Gemessen an der Größe der Nim-Community scheint die Produktivität ihrer Nutzer sehr hoch zu sein, sodass ich mich, obwohl ich mich nicht wirklich auskenne, in meiner Einschätzung zu Nim bestätigt fühle. Schade, dass Nim nicht stärker im Mainstream gewachsen ist.
@shiomiru, ich würde gern wissen, was die beste Ressource ist, um Konzepte rund um TTY zu lernen. Empfehlungen sind willkommen, egal ob kostenlos oder kostenpflichtig. Zu TTY kenne ich den einführenden Artikel zu TTY auf linusakesson.net, aber mir ist bewusst, dass er termcap/terminfo/curses nicht abdeckt. In einem anderen Kommentar wurde auch das Buch O'Reillys Termcap & Terminfo erwähnt (online hier einsehbar).
Ich freue mich immer über neue Ansätze, die man mal kurz zum Experimentieren nutzen kann, ohne noch eine weitere Chrome-basierte Engine verwenden zu müssen. Das heute Vorgestellte möchte ich nach der Schule selbst testen. Als sehr coole Alternative, besonders in Umgebungen ohne sixel, empfehle ich Chromiums Terminal-Port: carbonyl. Der ursprüngliche Autor kann es leider nicht mehr aktiv weiterentwickeln, daher ist der Funktionsumfang stark eingeschränkt und etliche Dinge wie Tastenkürzel oder Dateispeicherung werden noch nicht unterstützt. Trotzdem finde ich Web-Kompatibilität und den frischen Ansatz sehr beeindruckend. Ich hoffe, dass jemand mit Rust-Kenntnissen das Projekt weiterführt; als ich vor ein paar Monaten nachgesehen habe, gab es noch keinen populären Fork.
Ich mag solche Projekte wirklich sehr. Es wäre schön, eine Liste textbasierter Websites zu haben. Zwei, die ich persönlich mag, sind plaintextsports.com und lite.cnn.com.
Wirklich großartig. Ich habe den Quellcode auf einem Lenovo M8 der 4. Generation mit Termux selbst gebaut, und man braucht nur Nim zu installieren. Besonders beeindruckt hat mich, dass es sich auch ohne Root-Benutzer sauber installieren ließ.
Wirklich eine schöne Implementierung. Ich freue mich darauf, sie in verschiedenen Arbeitskontexten praktisch einzusetzen und selbst zu sehen, wie weit sie sich nutzen lässt. Die HN-Website ist damit sehr angenehm anzusehen.
Ich habe immer versucht sicherzustellen, dass meine Website auch in Links gut aussieht, und jetzt gibt es offenbar einen neuen Kandidaten. Durch die gewisse CSS-Unterstützung gibt es jetzt mehr Dinge zu bedenken, etwa Abstände zwischen Elementen. In Links wurden margin/padding komplett ignoriert, sodass man Menüs und Ähnliches sauber in einer Zeile anordnen konnte, aber jetzt ist die Lage etwas komplizierter geworden.
Wirklich ein tolles Projekt, und ich finde es klasse, dass es in Nim gemacht ist. Wenn ich
cha example.comeingebe, bin ich allerdings verwirrt, weil ich überhaupt nicht weiß, wie die Standardbefehle (hjkl usw.) funktionieren. Wenn ich Zahlen drücke, werden sie unten links angezeigt, ansonsten passiert aber gar nichts. Ich habe es unter macOS Sequoia 15.5 auf Apple Silicon mit Nim 2.24 selbst gebaut. Die Webseite wird korrekt geladen, aber die Befehle funktionieren nicht. Ich frage mich, ob ich etwas übersehe oder ob das ein Bug ist.Ich finde es bemerkenswert, dass termcap/ncurses nicht mehr verwendet wird. Heißt das, dass die Terminalbehandlung direkt selbst implementiert wird?
Auf macOS lässt es sich beeindruckend einfach mit nur einem
make-Befehl bauen. Schön, einen modernen Ersatz für elinks zu haben.