Skip to content

wzzc-dev/MoUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,463 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MoUI

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

Project Shape

  • moui/core/ owns platform-neutral contracts, opaque View, typed events, Program, Effect, Subscription, geometry, draw, semantics, and the private custom view protocol wrapped by View[Msg].
  • moui/views/ owns public view constructors and concrete control behavior implemented with @core.View::node, without adding new core enum variants.
  • moui/runtime/ exposes app/host AppRuntime construction 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 into HostEvent.
  • moui/backend/<platform>/skia selects the native Skia raster mainline provider; moui/backend/<platform>/wgpu keeps native WGPU diagnostics available.
  • moui/render/ provides the renderer facade, with native Skia raster, WebGPU adapter, and experimental native WGPU implementations under render/skia/, render/webgpu_adapter/, and render/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.

Screenshots

Quick Start

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-services

For release-oriented screenshot and benchmark handoffs, use:

sh scripts/conformance-check.sh --golden
sh scripts/conformance-check.sh --bench

These 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.

Documentation

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.

Contributing

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.

License

Apache-2.0. See LICENSE.

About

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors