Comment créer une interface graphique HTML en cinq minutes sans Electron et sans souffrance
Imaginez la situation : vous avez écrit un excellent outil en C++, Go ou Python. Il fonctionne rapidement, calcule avec précision, mais l'utiliser via le terminal n'est pratique que pour vous. Un client ou des collègues vous demandent une « interface normale ». Et là, les ennuis commencent. Installer Qt ? Trop lourd et long à apprendre. Écrire avec Electron ? Vous devrez traîner des centaines de mégaoctets de Chromium et Node.js pour quelques boutons.
Récemment, je suis tombé sur WebUI. C'est une petite bibliothèque C qui résout le problème avec élégance : elle transforme n'importe quel navigateur installé sur le système en interface graphique. Sans dépendances inutiles ni binaires volumineux.
Quel est le secret
L'idée principale de WebUI est que le navigateur est déjà un moteur d'interface graphique prêt à l'emploi et parfaitement optimisé. Chaque utilisateur l'a déjà. Pourquoi emballer une autre instance de Chrome dans votre application si vous pouvez simplement vous connecter à celle déjà installée ?
Contrairement à Tauri, WebUI ne vous force pas à vous battre avec les composants WebView du système (bien qu'une telle option existe aussi). La bibliothèque lance simplement une session de navigateur en mode application et organise un canal de communication rapide via WebSocket.

Sous le capot
La bibliothèque ne pèse que quelques kilo-octets. C'est un seul fichier d'en-tête qui s'intègre facilement dans un projet existant. Ce qui m'a frappé :
- Multiplateforme. Fonctionne de manière prévisible sur Windows, Linux et macOS.
- Prise en charge de tous les navigateurs populaires. Chrome, Firefox, Edge et même Yandex.Browser sont détectés « à la volée ».
- Profils privés. Le programme ne mélangera pas les cookies de votre application avec les données personnelles de l'utilisateur dans le navigateur.
- Portabilité. Vous n'avez pas besoin d'installer des SDK lourds pour compiler le projet.
À quoi ça ressemble dans le code
Regardons un classique « Hello World ». En C, ça ressemble presque à un script, pas de magie ni de blocs de code :
#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;
}
Et voici un exemple en C++, où tout est enveloppé dans des objets pratiques :
#include "webui.hpp"
int main() {
webui::window my_window;
my_window.show("<html><script src=\"webui.js\"></script> Привет из C++! </html>");
webui::wait();
return 0;
}
Juste quelques lignes — et vous avez une fenêtre complète avec du contenu HTML/CSS. Dans le même temps, le backend reste dans votre langage préféré, qu'il s'agisse de Python, Rust, Go ou même Pascal.
Comparaison des catégories de poids
Les développeurs ont fourni un excellent tableau sur GitHub, et il montre clairement pourquoi WebUI est une question de minimalisme. Si Electron nécessite Chromium et Node.js dans le package, WebUI ne nécessite rien d'autre que le navigateur lui-même dans le système. Cela économise de la RAM et de l'espace disque. Même les solutions WebView modernes comme Tauri entraînent des dépendances comme GTK ou WebKitGTK sur Linux, alors que WebUI ouvre simplement une fenêtre de navigateur.
À qui et quand cela sera utile
Bien sûr, WebUI ne remplacera pas les outils professionnels complexes pour les interfaces où la réactivité en microsecondes est importante. Mais il y a plenty de situations où ce sera un sauveur.
Si vous créez un petit utilitaire interne pour l'entreprise, WebUI vous aidera à assembler une interface en Bootstrap ou Tailwind en une soirée. Pour le prototypage, c'est pratiquement l'option idéale : vous vous concentrez sur la logique backend, et le frontend est dessiné comme un site web ordinaire.
Un point intéressant — la prise en charge SSL/TLS. Si votre application a besoin d'être sécurisée, WebUI vous permet d'activer la prise en charge d'OpenSSL avec un simple indicateur lors de la compilation.
Résumé
WebUI est un souffle d'air frais pour ceux qui sont fatigués des frameworks d'interface graphique lourds. Le projet se développe activement, il a déjà plus de 4 000 étoiles sur GitHub et un tas de wrappers pour différents langages de programmation.
Ça vaut le coup d'essayer si :
- Vous avez besoin d'une interface graphique rapide et belle, mais vous n'avez pas le temps d'apprendre Qt.
- Vous ne voulez pas gonfler la taille du binaire à des centaines de mégaoctets.
- Votre développeur frontend connaît HTML/JS, et vous connaissez la programmation système.
Je ne recommanderais pas de l'utiliser pour des jeux gourmands en ressources, mais pour les utilitaires système, les tableaux de bord et les outils de configuration — c'est pratiquement le choix idéal. Vous pouvez commencer avec la documentation officielle sur webui.me, tout y est expliqué.
Projets similaires