RMP — Rust マルチプラットフォーム参考実装
概要
RMPは「RMP Architecture Bible」を中心に据えた、マルチプラットフォームアプリの設計と実装手順を示すProof-of-Conceptリポジトリです。設計書はTEA/Elmスタイルのアーキテクチャ、Rustをコアに据えたビジネスロジック、UniFFIによるFFIレイヤー、そして各OS向けUI層(SwiftUI、Jetpack Compose、iced)をどのように組み合わせるかを包括的に説明します。本リポジトリは小規模なCLIやサンプル構成を含み、設計書が実際のコード生成やエージェントによる自動実装に十分であることを示すことを目的としています。
リポジトリの統計情報
- スター数: 58
- フォーク数: 7
- ウォッチャー数: 58
- コミット数: 3
- ファイル数: 5
- メインの言語: Rust
主な特徴
- RMP Architecture Bible: マルチプラットフォーム設計の完全なガイドラインを文書化
- コア:Rustベースの共有ロジックとUniFFIを使ったFFIパターン
- UI層の分離:SwiftUI、Jetpack Compose、icedといったプラットフォーム固有レイヤーを想定
- rmp-cli: プロジェクト生成やワークフロー支援を行う最小限のCLIツール(実装は軽量)
技術的なポイント
RMPは「設計書があれば、コーディングエージェントが完全なマルチプラットフォームアプリをスクラッチで作れる」という命題を検証するPoCです。中心となる考え方は、共通のビジネスロジックをRustで実装し、UniFFIなどのインターフェイス生成ツールを用いてiOS/Android/デスクトップへ公開することでプラットフォーム間の再利用を最大化する点にあります。アーキテクチャとしてはTEA(The Elm Architecture)を採用し、明確なModel-Update-Viewの分離で状態遷移を管理します。UIは各プラットフォームのネイティブフレームワーク(SwiftUI、Jetpack Compose)またはRustのクロスプラットフォームUI(iced)にマッピングされ、レンダリング層での差分は最小限に抑えます。ビルドパイプラインではクロスコンパイル、FFIバインディング生成、各プラットフォーム固有のラッパー生成がキーとなり、CIやワークフロー設計のガイドラインも文書化されています。rmp-cliはテンプレート生成・ビルド補助などを担い、エージェントが手順通りにコード生成→ビルド→パッケージングを自動化する際の入り口になります。ただし本リポジトリはPoC状態でありサンプルやサポートは限定的、実運用向けにはビルドマトリクスや詳しいプラットフォーム固有の調整が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file — 一時ファイルやビルドアーティファクトを除外する標準設定
- README.md: file — プロジェクト概要と重要な参照(Architecture BibleやCLIの説明)
- crates: dir — Rustのワークスペース。rmp-cliなどのクレートを配置する想定(小規模実装)
- examples: dir — 簡易的なサンプルやテンプレートコード(プラットフォーム向けの雛形)
- rmp-architecture-bible.md: file — コアドキュメント。哲学、アーキテクチャ(TEA/Elm)、FFI(UniFFI)、各プラットフォーム層、ビルドパイプライン、設計パターンを網羅
ファイル数は少なめですが、rmp-architecture-bible.mdが設計上の核を担い、cratesとexamplesがその実践的な出力先となる構成です。実際のネイティブラッパーや詳細なCI設定は最小限に留められており、拡張のためのテンプレートとして利用されます。
まとめ
RMPは設計主導でマルチプラットフォーム実装を自動化するための実用的な指針を示す良い出発点。
リポジトリ情報:
- 名前: rmp
- 説明: 説明なし
- スター数: 58
- 言語: Rust
- URL: https://github.com/rust-multiplatform/rmp
- オーナー: rust-multiplatform
- アバター: https://avatars.githubusercontent.com/u/264329045?v=4
READMEの抜粋:
RMP
A proof-of-concept demonstrating that the RMP Architecture Bible is sufficient for any coding agent to build a fully working multi-platform app from scratch.
What’s Here
rmp-architecture-bible.md— The comprehensive guide for building Rust Multi-Platform apps. Covers philosophy, architecture (TEA/Elm), FFI (UniFFI), platform layers (SwiftUI, Jetpack Compose, iced), build pipelines, and patterns.crates/rmp-cli/— ThermpCLI tool that …