Skip to content

Roadmap

The guide describes current source. See Installation for published versions and local builds. Exploratory items below have no delivery schedule.

Implemented in current source

  • Reactive graph: signals, lazy memos, effects, equality cutoffs and fixed-source bindings. See Getting started, Equality and Bindings.
  • Ownership: roots and owning computations dispose children and cleanups in reverse acquisition order. Contracts covers lifetime, failure propagation and thread access.
  • Async state: pending propagation, boundaries, async sources, task flights with per-node policies and restarting stream memos. Async and pending links the individual APIs. Timed values control admission independently.
  • Collections: keyed and index projections, direct edits, lookups, selectors, views and aggregates. Change readers have bounded independent cursors and reset recovery. See Collections and Aggregates for contracts and costs.
  • Editable state: editable values, drafts and forms, plus an MVU bridge over selector memos.
  • Remote data: Ranvier.Query shares acquired query leases, retains refresh data and reconciles mutation receipts across loaded queries.
  • Persistence and replay: persisted inputs restore signals and collections; the input journal records external inputs for diagnostic replay and re-enactment. Read the restore limitations before combining snapshots and journal tails.
  • Diagnostics: tracing records node creation, causal runs, pending work and failure provenance, with bounded-log checkpoints and export.
  • C# integration: delegate factories, XAML property/error bindings, commands and observable collections. See C#.
  • Views: shared templates support DOM mounting, server HTML and hydration, with motion and testing helpers. See Views, Server rendering and Testing views.
  • Fable and deployment: local package builds include standalone Fable source projects; CI checks packed consumers. The core, C#, Elmish and Query packages have traced/untraced .NET 10 linux-x64 trim/AOT smoke checks. See Installation for scope and Fable for target differences.

Experimental source

Ranvier.Mcp exposes selected values and authorised Elmish messages from a running graph. It is a source experiment and is not packed; traced provenance queries can inspect the whole graph.

Under consideration

  • Further collection incrementality: filter, sort, grouping and some aggregate membership paths still scan keys.
  • An F# Async<'T> adapter: cold-workflow lifetime and restart contracts remain exploratory. See The async graph.
  • Reusable lenses and prisms: application code can express deep writes; reusable focus paths over collections remain open.
  • Additional storage adapters: persistence supplies memory, file and browser local-storage stores; database-backed stores remain an extension point.
  • Mixed traced/untraced primitives: let individual graph branches pay for tracing (#69).

See Ecosystem for collection tradeoffs and host integrations.

Edit this page