MoUI is a multi-platform MoonBit GUI framework for building declarative UI apps with shared platform-neutral app logic. Native host cores own windows, events, services, and lifecycle, then receive concrete renderers through platform renderer provider packages.
Contributions are welcome — see CONTRIBUTING.md.
The current mainline is native Skia raster plus the Web
wasm-gc + window/web + browser WebGPU host imports path. Native WGPU remains
available as an experimental diagnostic route while the MoonBit WGPU ecosystem
matures.
The runtime pipeline is explicit:
View[Msg] -> ElementTree -> LayoutTree -> RenderTree -> DrawCommand -> renderer
moui/core/owns platform-neutral contracts, opaqueView, typed events,Program,Effect,Subscription, geometry, draw, semantics, and the private custom view protocol wrapped byView[Msg].moui/views/owns public view constructors and concrete control behavior implemented with@core.View::node, without adding newcoreenum variants.moui/runtime/exposes app/hostAppRuntimeconstruction entrypoints and owns runtime state, tree/layout/paint, event dispatch, program message drain, effect task, subscription lifecycle, and diagnostics.moui/views/returns app-facing@moui.View[Msg]values for app code.moui/backend/host/defines shared host contracts; platform backends normalize window and input events intoHostEvent.moui/backend/<platform>/skiaselects the native Skia raster mainline provider;moui/backend/<platform>/wgpukeeps native WGPU diagnostics available.moui/render/provides the renderer facade, with native Skia raster, WebGPU adapter, and experimental native WGPU implementations underrender/skia/,render/webgpu_adapter/, andrender/wgpu/.moui_theme/is an optional addon workspace member for source-mapped Material, Carbon, Primer, and Fluent theme previews.examples/*/app/contains shared app logic, while platform subpackages are thin entrypoints.website/is the MoUI homepage and Web demo surface.
The default daily baseline covers the core framework, maintenance baseline
ratchets, Web wasm-gc, native Skia mainline contracts, Showcase, and Markdown
Editor. Design Systems is addon diagnostic coverage; run
sh scripts/dev-check.sh --theme-diagnostics when changing moui_theme or
examples/design_systems.
For current-host backend/provider checks, run:
sh scripts/dev-check.sh --platform-examples-test
sh scripts/conformance-check.sh --platform-servicesFor release-oriented screenshot and benchmark handoffs, use:
sh scripts/conformance-check.sh --golden
sh scripts/conformance-check.sh --benchThese commands generate local scaffold manifests and logs under artifacts/;
release notes should cite the relevant CI run, uploaded artifact, or smoke log
instead of committing generated artifacts.
artifacts/ is ignored; keep those files as local or CI evidence.
The source docs live under docs/. The website preview copies those Markdown
files into website/web_wasm/docs/ with node scripts/sync-website-docs.mjs.
- Architecture
- Development
- Testing
- API surface
- Maintenance mainline
- Platform notes
- Renderer capability report
- View catalog
- Views API guide
- Non-render component cookbook
- App templates
- Examples
- Markdown Editor
- Mo Workbench
- AI collaboration
- 2026 roadmap
- Release readiness
MoUI is maintained by a single maintainer with AI assistance and is open to external contributions. Pull requests are the primary entry point for changes.
- Contributing guide — setup, package boundaries, PR requirements, DCO
- Governance — decision mechanism, RFC process, maintainer roles, project handover
- Security policy — vulnerability reporting and support scope
- Code of conduct
Apache-2.0. See LICENSE.