MoUI は、MoonBit 言語のマルチプラットフォーム宣言型 GUI フレームワークです。アプリケーション ロジックは、一連の TEA (The Elm Architecture) モデルを使用して記述されます。 macOS、Windows、Linux、Web およびモバイル端末は同じコードを共有しており、プラットフォーム ディレクトリには非常に薄いエントリ接続のみが存在します。
一見の価値がある理由
真のタイプセーフ UI。 MoonBit 上に構築、ビュー[Msg]Effect と Subscription はすべて型チェックに参加します。実行期間ではなく構築期間。
1 つの組立ライン、4 種類の木。 ViewDeclaration → ElementTree → LayoutTree/RenderTree/SemanticsTree/PlatformTree。アクセシビリティ セマンティクスは後付けではなく、描画と同等の第一級の出力です。
レンダラーはプラグ可能であり、スイッチ ブランチではありません。バックエンドは不透明な HostSurface のみを提供し、各レンダラーはプロバイダーとして登録された順序でバインディングをネゴシエートします。現在、ネイティブ Skia (メインライン)、Web wasm-gc + WebGPU (Canvas2D カバー)、WGPU、純粋な CPU ラスターを備えた Sun、ターミナル ANSI ルートがあります。同じアプリケーションはターミナルにのみ描画できます。新しいレンダラを追加する場合、コア レイヤを変更する必要はありません。
エージェント時代に合わせてデザインされたUI。不変の SemanticsSnapshot (生成と増分付き) が実行時に送信され、エージェントは MCP の read_semantics / Perform_action 操作インターフェイスを使用します。画面座標に依存せず、セマンティック ID によってアドレス指定され、セマンティックの読み取りによって再描画がトリガーされません。ネイティブ アクセシビリティと自動化は同じ道をたどります。
ツールチェーンはすぐに使用できます。 moui new はマルチプラットフォーム プロジェクトを生成し、moui run|build|package はデスクトップと携帯電話を接続します (SDK 構成、デバイス検出、ランタイム プローブを含む)。インストール不要のブラウザ Playground やバイリンガルビジュアル IDE MoUI Studio もあります。
厳格なアーキテクチャ上の制約。依存関係の階層化と禁止は不変条件として記述され、リポジトリ内のバリデーターと CI ゲートキーパーによって強制されます。そのため、「フレームワークとレンダラーの分離」はリップサービスではありません。
10 分以内に始めましょう
moon install wzzc-dev/moui_cli/cmd/moui
moui new my_app && cd my_app
moon update && moon check
moui run macos . # 或 windows / linux / web
率直なステータス: macOS、Windows、Linux、および Web はコミットされたメインライン製品です。 Android、iOS、HarmonyOS、WeChat アプレット、およびターミナル レンダリング ルートは現在、実験的としてマークされています。コードはコンパイルしてテストできますが、実際のマシンの証拠が得られるまで製品としてのコミットメントは行われません。皆さんもぜひ一緒に押し進めていただければと思います。
まずは Playground をインストールせずに試してみてください →
Apache-2.0 プロトコル、PR を歓迎します。倉庫: