One Resource.
A reactive system.
Model your domain in Rust. Let actions change it, events describe it, and your interface stay in sync.
Open source · Rust core · Svelte workspace
Ship something meaningful
rev 1Your domain is the starting point.
A common path from declaration to observation.
Application authors
add the behavior that matters.
Describe your domain.
Declare state, field codecs and actions in Rust. Keep application policy with the application.
Read the contractChange it through actions.
Validate requests and authority through a shared execution contract. Record committed facts as events.
Read the contractObserve what happens.
Use live queries and event streams. Let reactions submit further actions through the same core.
Read the contractThe contract lives
with your code.
One Task declaration supplies state metadata. Its completion action contains the domain behavior. The common runtime handles execution.
Inspect the complete example./demo/run smoke#[derive(Clone, Debug, PartialEq, Resource)]
#[resource(name = "tasks")]
pub struct Task {
pub owner: String,
#[resource(rename = "display-title")]
pub title: String,
pub done: bool,
pub note: Option<String>,
} fn complete(task: &mut Task, _: ()) -> Result<Vec<Intent>> {
if task.done {
return Ok(vec![]);
}
task.done = true;
Ok(vec![Intent::new(
"task-completed",
json!({"title":task.title}),
)])
}
pub const COMPLETE: Action<Task, ()> = Action::new("complete", complete); A workspace from
the same contract.
Descriptors connect your Resource model to forms, editors and actions. Compose your own Svelte application with the public controls.
Shared controls
Svelte 5 and shadcn-svelte primitives through ROM UI.
Semantic editors
Dates, decimals, references and exact wire representations.
Observation & recovery
Public compositions for sessions, live results and uncertain saves.
Build, understand, then go deeper.
Make the first transition.
Run a local Resource workflow and inspect the public consumer.
02 / CONCEPTSUnderstand the lifecycle.
Learn the boundaries between actions, commits, events and reactions.
03 / PROJECT STATUSKnow what is verified.
Accepted 0.0.3 evidence, current 0.1.0 work and explicit support limits.
What will your Resource do?
ROM Extras
Connect delivery, identity, SQL executors, object storage, projections and maps. Every integration documents its deployment requirements and current qualification limits.
Explore Extras and provider documentation →