So erstellst du in fünf Minuten eine GUI mit HTML – ohne Electron und Qual
Stell dir folgende Situation vor: Du hast ein großartiges Tool in C++, Go oder Python geschrieben. Es funktioniert schnell, rechnet präzise, aber die Nutzung über das Terminal ist nur für dich bequem. Ein Kunde oder Kollegen bitten um eine „normale Oberfläche". Und dann beginnt das Kopfzerbrechen. Qt installieren? Zu schwergewichtig und langwierig zu lernen. Mit Electron schreiben? Du müsstest hunderte Megabyte an Chromium und Node.js für ein paar Buttons mitschleppen.
Neulich bin ich auf WebUI gestoßen. Das ist eine kleine C-Bibliothek, die das Problem elegant löst: Sie verwandelt jeden im System installierten Browser in deine grafische Oberfläche. Ohne überflüssige Abhängigkeiten und riesige Binärdateien.
Was steckt dahinter
Die Grundidee von WebUI ist, dass der Browser bereits eine fertige, perfekt optimierte GUI-Engine ist. Jeder Benutzer hat ihn bereits. Warum eine weitere Chrome-Instanz in deine Anwendung packen, wenn du dich einfach mit der bereits installierten verbinden kannst?
Im Gegensatz zu Tauri zwingt dich WebUI nicht, dich mit System-WebView-Komponenten herumzuschlagen (obwohl es auch eine solche Option gibt). Die Bibliothek startet einfach eine Browser-Sitzung im Anwendungsmodus und richtet einen schnellen Kommunikationskanal über WebSocket ein.

Was steckt unter der Haube
Die Bibliothek wiegt nur wenige Kilobytes. Es ist eine einzelne Header-Datei, die sich leicht in ein bestehendes Projekt integrieren lässt. Folgendes hat mich beeindruckt:
- Plattformübergreifend. Funktioniert unter Windows, Linux und macOS gleichermaßen zuverlässig.
- Unterstützung aller gängigen Browser. Chrome, Firefox, Edge und sogar Yandex.Browser werden „on the fly" erkannt.
- Private Profile. Das Programm vermischt die Cookies deiner Anwendung nicht mit den persönlichen Daten des Benutzers im Browser.
- Portabilität. Du brauchst keine schweren SDKs, um das Projekt zu bauen.
Wie es im Code aussieht
Schauen wir uns ein klassisches „Hello World" an. In C sieht es fast wie ein Skript aus, keine Magie und Code-Dumps:
#include "webui.h"
int main() {
size_t window = webui_new_window();
webui_show(window, "<html><script src=\"webui.js\"></script> Hello World! </html>");
webui_wait();
return 0;
}
Und hier ein Beispiel in C++, wo alles in praktische Objekte verpackt ist:
#include "webui.hpp"
int main() {
webui::window my_window;
my_window.show("<html><script src=\"webui.js\"></script> Привет из C++! </html>");
webui::wait();
return 0;
}
Nur ein paar Zeilen – und du hast ein vollwertiges Fenster mit HTML/CSS-Inhalt. Dabei bleibt das Backend in deiner Lieblingssprache, ob Python, Rust, Go oder sogar Pascal.
Größenklassen-Vergleich
Die Entwickler haben eine ausgezeichnete Tabelle auf GitHub bereitgestellt, und sie zeigt klar, warum es bei WebUI um Minimalismus geht. Wenn Electron Chromium und Node.js im Paket benötigt, braucht WebUI außer dem Browser selbst im System nichts. Das spart RAM und Festplattenspeicher. Selbst moderne WebView-Lösungen wie Tauri ziehen unter Linux Abhängigkeiten wie GTK oder WebKitGTK mit sich, während WebUI einfach ein Browser-Fenster öffnet.
Wem und wann das nützlich sein wird
Natürlich wird WebUI keine komplexen professionellen Tools für Interfaces ersetzen, bei denen Mikrosekunden-Ansprechzeiten entscheidend sind. Aber es gibt plenty of Situationen, in denen es ein Lebensretter sein wird.
Wenn du ein kleines internes Utility für die Firma erstellst, hilft dir WebUI, an einem Abend eine Oberfläche in Bootstrap oder Tailwind zusammenzubauen. Für Prototyping ist das praktisch die ideale Option: Du konzentrierst dich auf die Backend-Logik, und das Frontend wird wie eine normale Website gezeichnet.
Ein interessanter Punkt – SSL/TLS-Unterstützung. Wenn deine Anwendung sicher sein muss, erlaubt dir WebUI, OpenSSL-Unterstützung mit einem einfachen Flag beim Build zu aktivieren.
Fazit
WebUI ist ein frischer Wind für alle, die leidgeprüfte GUI-Frameworks satt haben. Das Projekt entwickelt sich aktiv weiter, hat bereits über 4.000 Sterne auf GitHub und eine Menge Wrapper für verschiedene Programmiersprachen.
Lohnt sich auszuprobieren, wenn:
- Du eine schnelle und schöne GUI brauchst, aber keine Zeit hast, Qt zu lernen.
- Du nicht willst, dass die Binärgröße auf hunderte Megabytes anschwillt.
- Dein Frontend-Entwickler HTML/JS kann und du Systems-Programmierung beherrschst.
Ich würde das nicht für rechenintensive Spiele empfehlen, aber für System-Tools, Dashboards und Konfigurationswerkzeuge – das ist praktisch die ideale Wahl. Du kannst mit der offiziellen Dokumentation unter webui.me beginnen, dort ist alles übersichtlich erklärt.
Ähnliche Projekte