Glaze
Desktop WebView binding for Go, without CGO, focused on explicit integration, practical utilities, and interactive examples.
Glaze is a Go binding for desktop WebViews. It’s built on top of webview/webview and purego to keep CGo out of the picture.
The project started as a fork of go-webview but has diverged enough to live as a separate codebase with its own goals.
The reason for avoiding CGo: dragging a C toolchain into a Go project just to open a window with HTML breaks too much of what I like about the Go ecosystem – easy cross-compilation, reproducible builds, go install that works for whoever clones the repo. With purego, the native library is loaded at runtime via dlopen / LoadLibrary. The native libraries ship embedded in the binary and are extracted at runtime, with BLAKE2b-256 verification to make sure the file on disk matches the embedded bytes.
What sits outside the core:
BindMethods– registers every exported method on a Go struct as a JavaScript function, with snake_case names. Useful when you have a service object and want to expose a consistent API without writing oneBindcall per method.RenderHTML– renders a Gohtml/templatefor use withSetHtml. For when you want server-style template rendering without running a server.AppWindow– wraps anhttp.Handlerin a native window backed by a local HTTP server. macOS and Linux default to Unix sockets, Windows uses TCP loopback. The shortest path from an existing HTTP app to a desktop app without rewriting routes, templates, or assets.
Works on Windows, macOS, and Linux. Examples in the repository include Game of Life, Mandelbrot, Doom Fire, Raycasting, and a REPL for Filo.