Glaze
Binding desktop para WebView em Go, sem CGO, com foco em integração explícita, utilitários práticos e exemplos interativos.
Glaze é um binding desktop para WebView em Go, construído em cima de webview/webview e purego para evitar CGo.
O projeto começou como fork do go-webview, mas divergiu o suficiente para virar codebase separada, com objetivos próprios.
A razão para evitar CGo: arrastar uma toolchain C dentro de um projeto Go só para abrir uma janela com HTML quebra muita coisa que eu valorizo no ecossistema – cross-compile simples, build reprodutível, go install que funciona pra quem clona o repo. Com purego, a biblioteca nativa é carregada em tempo de execução via dlopen / LoadLibrary. As libs nativas vão embutidas no binário e são extraídas em runtime, com verificação BLAKE2b-256 para garantir que o arquivo no disco bate com o que está embutido.
O que fica fora do core:
BindMethods– registra todos os métodos exportados de um struct Go como funções JavaScript, com nomes em snake_case. Útil quando você tem um service object e quer expor uma API consistente sem escrever uma chamada deBindpor método.RenderHTML– renderiza umhtml/templateGo para usar emSetHtml. Para quando você quer renderização estilo servidor sem subir um servidor.AppWindow– embrulha umhttp.Handlerem uma janela nativa, com servidor HTTP local. Em macOS e Linux usa Unix socket por padrão; em Windows, TCP loopback. É o caminho mais curto de uma app HTTP existente para uma app de desktop sem reescrever rotas, templates e assets.
Funciona em Windows, macOS e Linux. Os exemplos no repositório incluem Game of Life, Mandelbrot, Doom Fire, Raycasting e um REPL do Filo.