Setup
Prerequisites
Section titled “Prerequisites”- Rust (stable)
- Flutter SDK
flutter_rust_bridge_codegenCLI
Commands
Section titled “Commands”# Dart / Flutterflutter pub get # Install dependenciesflutter analyze # Static analysiscd example && flutter run -d chrome # Run example app
# Rustcargo test --workspace # Run all Rust testscargo check --workspace # Check all crates compile
# FRB Codegen (from packages/modality/)flutter_rust_bridge_codegen generate # Regenerate Dart bindingsFile Structure
Section titled “File Structure”Directorycrates/
Directoryapi/ FRB API layer (rust_input entry)
- …
Directorycore/ Core traits: Reducer, Component, Modality, Slot, Effects, StoreBackend
- …
Directorysession/ Session, Doc, CompileCache, ReduceIntent, HasChildren
- …
Directorysync/ Loro extensions, sync protocol
- …
Directorydoc/ Documentation utilities
- …
Directorymacros/ Derive macros (LoroMapWrite, etc.)
- …
Directorymodality/
Directorywhiteboard/ Whiteboard modality
- …
Directoryworksheet/ Worksheet modality
- …
Directorylesson/ LessonPlan modality
- …
Directoryassessment/ Assessment modality
- …
Directoryplatform/
Directoryai/ AI bridge (chat context, tool dispatch)
- …
Directoryexecutor/ Async executor
- …
Directoryexport/ PDF export
- …
Directoryremote/ ResourceClient (GraphQL), RemoteBackend
- …
Directorystore/ LocalBackend (file-based persistence)
- …
Directorypackages/
Directorymodality/ Dart package with FRB bindings
Directorylib/src/rust/ Generated FRB output
- …
- flutter_rust_bridge.yaml
Directorymodality_editor/ Editor UI (property editors, canvas, chat)
- …
Directoryapps/
Directorystudio/ Studio app (main entry point)
- …
Crate Roles
Section titled “Crate Roles”| Crate | Role |
|---|---|
modality_core | Pure traits + types. Zero platform deps. |
modality_session | Session<M,I>, Doc<S>, CompileCache. Depends on core + doc. |
modality_ai | AI bridge, chat context, tool dispatch. No Session knowledge. |
modality_export | PDF export. No Session knowledge. |
| Modality crates | Implement Reducer + Component + Modality for each modality. |
modality_rust / API | FRB entry point. Thin open/dispatch/close API. |