- Go 60.7%
- JavaScript 37%
- Python 2%
- Shell 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| cmd | ||
| docs | ||
| examples | ||
| internal | ||
| scripts | ||
| tests | ||
| wasm | ||
| web/static | ||
| workflow | ||
| .gitignore | ||
| api.go | ||
| api_test.go | ||
| engine.go | ||
| engine_test.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
| svg.go | ||
| svg_test.go | ||
| THIRD-PARTY-NOTICES.md | ||
| viewport.go | ||
| viewport_test.go | ||
| widget.go | ||
| widget_test.go | ||
| workflow.events.jsonl | ||
| workflow.schema.json | ||
| workflow.toml | ||
GoWW
GoWW means Go Wasm Widget.
GoWW is a reusable widget library for Go web applications. It combines server-rendered HTML and SVG fallbacks with a Go WebAssembly-backed interactive SVG viewport. Applications retain control of their data, layout and persistence.
Capabilities
- Structured SVG scenes with rectangles, circles, lines and paths.
- Local pan, zoom, coordinate conversion and container-aware resizing.
- Mouse, keyboard and touch input, with labeled controls and keyboard guidance.
- Explicit mount, update and disposal lifecycles, including DOM removal and HTMX cleanup.
- Validated, bounded data and correlated save acknowledgements.
- Content-addressed browser assets with a matched Go WASM support runtime.
- A separate chart facade and financial contract packages, retained for existing consumers.
The generic SVG profile does not require a financial symbol, trading model or subscription. Domain-specific behavior belongs to the application.
Stable v1
v1.0.0 is published. The release includes the generic SVG profile, its Go API and browser runtime, installation guidance, examples and verified release assets.
go get git.dannyhunn.com/linus/GoWW@v1.0.0
Import git.dannyhunn.com/linus/GoWW as package goww. Start with the
SVG API and installation guide, then obtain the matched
JavaScript/WASM bundle from the
v1.0.0 release.
Serve those assets from the same origin as the application.
The verified runtime target is Linux with Chromium 156 and the Go 1.27.3 WASM toolchain. Touch verification uses browser-emulated input, not physical mobile devices. Other browser engines and platforms are not admitted by this release. The chart facade retains its existing contract; it does not imply a production financial backend or that its legacy proof assets are the new SVG runtime. See the frozen support contract and release notes for exact scope and limitations.
Application boundary
The host application owns routing, authentication, authorization, domain state, persistence and layout. GoWW owns the interactive surface inside its assigned container. It must not resize or rearrange the surrounding page.
- Go renders the widget shell and fallback; templ can compose the surrounding HTML.
- WASM manages the validated scene and viewport; the browser adapter handles DOM input and lifecycle.
- Pan and zoom remain local. Optional explicit commits use host-provided routes.
- The host validates permissions, domain data and revisions before saving, then acknowledges actual persistence.
- Fallback rendering remains available when enhancement is unavailable or disabled.
GoWW does not accept arbitrary SVG markup or grant browser code access to secrets, credentials or privileged server operations. It does not supply a database, application authorization system or general-purpose frontend framework.
Documentation
- Public SVG API and installation
- Product requirements
- Architecture
- Implementation specification
- Stable release contract
- Implementation and verification evidence
- Changelog
License
MIT. Redistributed Go runtime assets must also retain the applicable
notices in THIRD-PARTY-NOTICES.md and the release bundle's
GO-LICENSE.