GoFrame v0.1.0-preview.1
Pre-releaseRelease Notes: v0.1.0-preview.1
Summary
GoFrame is an experimental Go-first application platform. This preview
validates the current browser/WASM interactive application layer: the
pkg/goframe runtime, GOX generation, the goxc toolchain, static packaging,
examples, docs, and CI evidence.
The preview scope is narrower than the project vision. Router, resources, Error
Boundaries, package/export workflow, and the reference app are real working
surfaces. Player/Engine, broader host/runtime targets, richer editor tooling,
and a package ecosystem remain outside this preview promise.
Preview Scope
This preview is for evaluators who want to inspect and try the current
browser/WASM layer:
- Go-authored interactive browser apps;
- GOX components and package-qualified component tags;
- component-scoped state, effects, context, memoization, fixed-height
virtualization, resources, and hash routing; - static
goxc packageoutput with generated package metadata; - focused examples plus the router-dashboard reference app;
- Linux/Chrome browser smoke evidence and minimal macOS/Windows Go/toolchain
evidence.
It is not a production-ready release and does not create a stable 1.0 API
promise.
What Is Included
pkg/goframe: nodes, typed component identity, hooks, context, events,
virtualized collections, hash router, component-scoped resources, runtime
error reporting, and scoped render Error Boundaries.pkg/gox: GOX parsing/code generation, source-oriented diagnostics,
package-qualified component tags, golden/error golden tests, and bounded fuzz
seeds.cmd/goxc: generate, build, package, export, serve, size, clean, doctor, and
version commands.- Package workflow: versionless
goframe.json, recommended
"assets": "./assets", legacy explicit asset lists, generated or custom root
index.html, versionedasset-manifest.json, and authoritative
goframe-package.jsoncompletion metadata. - Examples: quickstart, focused primitives, toolchain/layout examples,
examples/router-dashboardas the reference app, andexamples/dashboardas
the pressure/performance example.
How To Try It
Install the current toolchain:
go install github.com/graybuton/goframe/cmd/goxc@latest
goxc doctorFrom a local checkout, install the local goxc instead:
go install ./cmd/goxc
goxc doctorRun the quickstart:
goxc package ./examples/counter --compiler=tinygo
goxc serve ./examples/counter --port=8080Run the reference app:
goxc package ./examples/router-dashboard --compiler=tinygo
goxc serve ./examples/router-dashboard --port=8080For the intentional ErrorBoundary panic demo in the reference app, use the
recover-capable Go/WASM package path:
goxc package ./examples/router-dashboard --compiler=go
goxc serve ./examples/router-dashboard --port=8080See the evaluator guide for a shorter evaluation path and
the tutorial for the guided reference-app walkthrough.
Compatibility Notes
- Public-Candidate API shapes are documented in
API stability. They remain pre-1.0 and can change with
migration notes. - Some exported API shapes are public-candidate while deeper lifecycle,
routing, fallback, and edge-case semantics remain Experimental Frontier. - Generated typed component identity is stable enough for one app/module tree.
Broad reusable multi-module package identity is not promised by this preview. goframe.jsonremains versionless forv0.1.0-preview.1.assets: "./assets"is the recommended static asset form. Legacy explicit
asset lists remain supported.- Package root
index.htmlis always produced: selected custom templates are
rewritten, andgoxc packagegenerates a default entrypoint when no custom
template exists. - Generated
asset-manifest.jsonandgoframe-package.jsonare versioned
tooling metadata.goframe-package.jsonis the authoritative current package
completion marker.
Known Limitations
- Browser/WASM DOM target only.
- Linux/Chrome is the strongest browser evidence. Firefox and Safari are
unverified in current CI evidence. - macOS and Windows have minimal Go/toolchain CI evidence, not full browser or
TinyGo smoke coverage. - TinyGo size-oriented builds use trap-style panic behavior by default.
Recover-based ErrorBoundary demos use Go/WASM. - Resources are component-scoped. There is no global cache, deduplication,
automatic retry, Suspense behavior, route loader, or runtime fetch API. - The router is hash-based. History-mode routing, file-based routing,
middleware, route guards, and production fallback automation are outside this
preview. - Package publication is metadata-last and fail-closed, but not a transactional
rollback installer. goxc serveis development-only and not a production static server.
Validation Evidence
Current repository evidence includes:
go test ./...;- race tests for
./pkg/... ./cmd/...; go vet ./...;- debug-tag tests;
- GOX golden/error golden tests;
- bounded GOX fuzz seed targets through normal tests;
- TinyGo size budgets;
- browser smoke on Linux/Chrome;
- dashboard DOM pressure checks;
- artifact/module path gates;
- docs consistency checks;
- VS Code extension compile checks.
See CI and regression gates, platform support,
and public preview readiness for the current
evidence matrix.
Non-Goals
v0.1.0-preview.1 does not include:
- production readiness;
- stable 1.0 compatibility;
- SSR or hydration;
- history-mode router or server fallback automation;
- route loaders, middleware, auth guards, or route-level data APIs;
- Suspense, server resources, or a global resource cache;
- schema validation framework or mutation framework;
- production deployment server;
- LSP/formatter;
- Player/Engine or
.gfapppackaging.