LedoCorp · UI toolkit · 0.7.0
Gru
Build desktop UI in Go without dragging a whole browser stack along for the ride. Compose widgets, run a retained-mode frame loop, draw with Raylib. Optional WebView2 when you need an HTML panel on Windows.
What it is
Gru (GRU) is a retained-mode UI toolkit for desktop apps written in Go.
The public package is github.com/ledocorp/gru/ui: widgets, layout, text, theme,
window chrome, and an inspector. You import it like any other module, then either
copy cmd/hello or scaffold with the gru CLI.
Primary platform today is Windows. Linux builds exist for basic samples. License is MPL 2.0. Version 0.7.0 is the first public release.
How it works
- Retained tree · widgets are
Nodes that persist across frames (not rebuilt every paint) - Frame phases · each frame is
Update→Layout(if dirty) →Draw/ blit - Document · owns the root, chrome insets (title bar), focus, and the main-thread work queue
- Signals · UI state is usually
Signal[T]; mutations mark the tree dirty - Composition · build pages with flex +
Panel/Card/ListTile(named shell recipes in the docs) - Rendering · Raylib + supersampled draw when needed; idle frames blit the last frame
- WebView2 · optional child HWND host for HTML; native widgets stay in the GL tree
What you use it for
- Desktop tools and utilities with native-feeling chrome and controls
- Apps that need a Go widget tree plus an occasional embedded web view
- Learning patterns from the curated demo catalog (
-tags grudemo)
Try it
Grab a Go toolchain and open a window in a minute. WebView samples also need the WebView2 Runtime (Windows).
go get github.com/ledocorp/gru@v0.7.0
# from a clone of github.com/ledocorp/GRU:
go run ./cmd/hello
go run -tags webview2 ./cmd/webviewhello
go run -tags grudemo . # Tab = next scene, F12 = Inspector
go run ./cmd/gru new myapp
github.com/ledocorp/GRU Documentation MPL 2.0 · LedoCorp · version 0.7.0
What’s in the package
ui/· widgets, layout, text, inspector, themecmd/gru·new,build,packagecmd/hello· minimal native sample (copy this loop)cmd/webviewhello· FillClient WebView sample-tags grudemo· scene catalog for composition and controlsdocs/· guides + architecture chapters (also summarized on this site)