>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
C

Como criar uma GUI em HTML em cinco minutos sem Electron e sofrimento

Imagine uma situação: você escreveu uma ótima ferramenta em C++, Go ou Python. Ela funciona rápido, calcula com precisão, mas usá-la pelo terminal é conveniente apenas para você. Um cliente ou colegas pedem uma "interface normal". E então a dor de cabeça começa. Instalar o Qt? Pesado demais e demorado para aprender. Escrever em Electron? Você terá que arrastar centenas de megabytes de Chromium e Node.js para alguns botões.

Recentemente me deparei com o WebUI. Esta é uma pequena biblioteca C que resolve o problema de forma elegante: ela transforma qualquer navegador instalado no sistema em sua interface gráfica. Sem dependências desnecessárias e binários enormes.

Logo

Qual é o truque aqui

A ideia principal do WebUI é que o navegador já é um motor de GUI pronto e perfeitamente otimizado. Todo usuário já o tem. Por que empacotar outra instância do Chrome dentro da sua aplicação se você pode simplesmente conectar-se à que já está instalada?

Ao contrário do Tauri, o WebUI não te força a mexer com componentes WebView do sistema (embora essa opção também exista). A biblioteca simplesmente inicia uma sessão do navegador em modo aplicativo e organiza um canal de comunicação rápido via WebSocket.

Diagrama

O que está sob o capô

A biblioteca pesa apenas alguns kilobytes. É um único arquivo de cabeçalho que é fácil de integrar em um projeto existente. Aqui está o que chamou minha atenção:

  • Multiplataforma. Funciona no Windows, Linux e macOS de forma igualmente previsível.
  • Suporte para todos os navegadores populares. Chrome, Firefox, Edge e até o Yandex.Browser são detectados "on the fly".
  • Perfis privados. O programa não vai misturar os cookies da sua aplicação com os dados pessoais do usuário no navegador.
  • Portabilidade. Você não precisa instalar SDKs pesados para compilar o projeto.

Como fica no código

Vamos olhar um "Hello World" clássico. Em C fica quase como um script, sem magia e despejos de código:

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

E aqui está um exemplo em C++, onde tudo é envolvido em objetos convenientes:

#include "webui.hpp"

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

Apenas algumas linhas — e você tem uma janela completa com conteúdo HTML/CSS. Ao mesmo tempo, o backend permanece na sua linguagem favorita, seja Python, Rust, Go ou até Pascal.

Comparação de categorias de peso

Os desenvolvedores forneceram uma tabela excelente no GitHub, e ela mostra claramente por que o WebUI é sobre minimalismo. Se o Electron requer Chromium e Node.js dentro do pacote, o WebUI não requer nada além do próprio navegador no sistema. Isso economiza RAM e espaço em disco. Até mesmo soluções WebView modernas como o Tauri puxam dependências como GTK ou WebKitGTK no Linux, enquanto o WebUI simplesmente abre uma janela do navegador.

Para quem e quando isso será útil

Claro, o WebUI não vai substituir ferramentas profissionais complexas para interfaces onde a responsividade em microssegundos importa. Mas há muitas situações em que será um salva-vidas.

Se você está fazendo uma pequena utilitária interna para a empresa, o WebUI vai te ajudar a montar uma interface em Bootstrap ou Tailwind em uma noite. Para prototipagem, esta é praticamente a opção ideal: você foca na lógica do backend, e o frontend é desenhado como um site normal.

Um ponto interessante — suporte a SSL/TLS. Se sua aplicação precisa ser segura, o WebUI permite ativar o suporte a OpenSSL com uma simples flag durante a compilação.

Resumo

O WebUI é um sopro de ar fresco para quem está cansado de frameworks GUI pesados. O projeto está em desenvolvimento ativo, já tem mais de 4.000 estrelas no GitHub e um monte de wrappers para diferentes linguagens de programação.

Vale a pena experimentar se:

  • Você precisa de uma GUI rápida e bonita, mas não tem tempo para aprender Qt.
  • Você não quer inchar o tamanho do binário para centenas de megabytes.
  • Seu desenvolvedor frontend conhece HTML/JS, e você conhece programação de sistemas.

Eu não recomendaria usar isso para jogos de alta carga, mas para utilitários de sistema, dashboards e ferramentas de configuração — é praticamente a escolha ideal. Você pode começar com a documentação oficial em webui.me, tudo está bem explicado lá.

Projetos relacionados