Go Wasm Widget base
  • Go 60.7%
  • JavaScript 37%
  • Python 2%
  • Shell 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-24 03:49:52 -05:00
cmd feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
docs docs: describe reusable capabilities without named consumers 2026-10-24 03:49:52 -05:00
examples fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
internal feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
scripts feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
tests fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
wasm feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
web/static fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
workflow docs: close GoWW v1 publication and workflow admission 2026-10-24 03:35:31 -05:00
.gitignore Add GoWW base docs 2026-05-31 03:37:05 -05:00
api.go feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
api_test.go Expose GoWW external API facade 2026-05-31 21:17:13 -05:00
engine.go fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
engine_test.go feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
go.mod feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
go.sum preview: render TQQQ candlesticks from financial DB 2026-05-31 20:18:35 -05:00
LICENSE feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
README.md docs: describe reusable capabilities without named consumers 2026-10-24 03:49:52 -05:00
svg.go fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
svg_test.go fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
THIRD-PARTY-NOTICES.md feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
viewport.go feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
viewport_test.go feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
widget.go fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
widget_test.go fix: enforce canonical SVG keys and isolated bounded lifecycles 2026-10-24 02:53:14 -05:00
workflow.events.jsonl feat: implement reusable Go WASM SVG widget candidate for v1 2026-10-24 02:34:26 -05:00
workflow.schema.json workflow: leave V1 complete state idle 2026-05-31 16:41:14 -05:00
workflow.toml docs: close GoWW v1 publication and workflow admission 2026-10-24 03:35:31 -05:00

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

License

MIT. Redistributed Go runtime assets must also retain the applicable notices in THIRD-PARTY-NOTICES.md and the release bundle's GO-LICENSE.