>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
C

Zo launch je een GUI in HTML in vijf minuten zonder Electron en gedoe

Stel je voor: je hebt een geweldig tool geschreven in C++, Go of Python. Het werkt snel, berekent accuraat, maar het gebruiken via de terminal is alleen handig voor jou. Een klant of collega's vragen om een "normale interface". En dan begint de hoofdpijn. Qt installeren? Te zwaar en lang om te leren. In Electron schrijven? Je moet honderden megabytes aan Chromium en Node.js meeslepen voor een paar knoppen.

Onlangs kwam ik WebUI tegen. Dit is een kleine C-bibliotheek die het probleem elegant oplost: het zet elke browser die op het systeem is geïnstalleerd om in je grafische interface. Zonder onnodige afhankelijkheden en enorme binaries.

Logo

Waar zit het trucje

Het hoofdidee van WebUI is dat de browser al een kant-en-klare, perfect geoptimaliseerde GUI-engine is. Elke gebruiker heeft hem al. Waarom nog een exemplaar van Chrome in je applicatie verpakken als je gewoon kunt verbinden met degene die al geïnstalleerd is?

In tegenstelling tot Tauri dwingt WebUI je niet om te rommelen met systeem WebView-componenten (hoewel zo'n optie ook bestaat). De bibliotheek start simpelweg een browsersessie in applicatiemodus en organiseert een snel communicatiekanaal via WebSocket.

Diagram

Wat zit er onder de motorkap

De bibliotheek weegt slechts een paar kilobytes. Het is een enkel header-bestand dat gemakkelijk te integreren is in een bestaand project. Hier zijn een paar dingen die mijn aandacht trokken:

  • Cross-platform. Werkt op Windows, Linux en macOS even voorspelbaar.
  • Ondersteuning voor alle populaire browsers. Chrome, Firefox, Edge en zelfs Yandex.Browser worden "on the fly" opgepikt.
  • Privéprofielen. Het programma mengt de cookies van je applicatie niet met de persoonlijke gegevens van de gebruiker in de browser.
  • Draagbaarheid. Je hebt geen zware SDK's nodig om het project te bouwen.

Hoe het er in code uitziet

Laten we een klassiek "Hello World" bekijken. In C ziet het er bijna uit als een script, geen magie en codedumps:

#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;
}

En hier is een voorbeeld in C++, waar alles in handige objecten is gewikkeld:

#include "webui.hpp"

int main() {
    webui::window my_window;
    my_window.show("<html><script src=\"webui.js\"></script> Привет из C++! </html>");
    webui::wait();
    return 0;
}

Slechts een paar regels — en je hebt een volwaardig venster met HTML/CSS-content. Tegelijkertijd blijft de backend in je favoriete taal, of het nu Python, Rust, Go of zelfs Pascal is.

Gewichtsklasse vergelijking

De ontwikkelaars hebben een uitstekende tabel op GitHub geleverd, en het laat duidelijk zien waarom WebUI draait om minimalisme. Als Electron Chromium en Node.js in het pakket vereist, vereist WebUI niets anders dan de browser zelf in het systeem. Dit bespaart RAM en schijfruimte. Zelfs moderne WebView-oplossingen zoals Tauri halen afhankelijkheden zoals GTK of WebKitGTK binnen op Linux, terwijl WebUI simpelweg een browservenster opent.

Voor wie en wanneer dit nuttig is

Natuurlijk zal WebUI geen complexe professionele tools vervangen voor interfaces waar microseconde-responstijd belangrijk is. Maar er zijn genoeg situaties waarin het een levensredder zal zijn.

Als je een kleine interne utility maakt voor het bedrijf, helpt WebUI je om in een avond een interface in Bootstrap of Tailwind in elkaar te zetten. Voor prototyping is dit praktisch de ideale optie: je focust op backend-logica, en de frontend wordt getekend als een gewone website.

Een interessant punt — SSL/TLS-ondersteuning. Als je applicatie veilig moet zijn, stelt WebUI je in staat om OpenSSL-ondersteuning in te schakelen met een simpele vlag tijdens het bouwen.

Samenvatting

WebUI is een frisse wind voor wie moe is van logge GUI-frameworks. Het project ontwikkelt actief, het heeft al meer dan 4.000 sterren op GitHub en een heleboel wrappers voor verschillende programmeertalen.

De moeite waard om te proberen als:

  • Je een snelle en mooie GUI nodig hebt, maar geen tijd hebt om Qt te leren.
  • Je de binary-grootte niet wilt opblazen tot honderden megabytes.
  • Je frontend-ontwikkelaar HTML/JS kent, en jij systeemprogrammering.

Ik zou dit niet aanbevelen voor games met hoge belasting, maar voor systeemutilities, dashboards en configuratietools — het is praktisch de ideale keuze. Je kunt beginnen met de officiële documentatie op webui.me, daar staat alles uitgelegd.

Gerelateerde projecten