Roadmap
This page lists what Ranvier provides today, what is being finished, and what is being considered. The last list is a set of candidates, not a schedule. An item may change shape, move, or be dropped. The page carries no dates.
Shipped
These are implemented and covered by tests.
- Reactive core. Signals, memos, effects and owners, with automatic dependency tracking, height-ordered updates and an equality cutoff. See Getting started.
- Pending channel and boundaries. A propagating "not ready" status, with
createSuspense,createErrorBoundaryandcreateBoundaryto decide what to show in the meantime. See Suspension. - Async memos.
createAsyncwith theCancelPrevious,KeepLatest,QueueandFinishCurrentflight policies, and the previous value passed to each flight. See Async and pending. - Threading, failure and ownership contracts. Thread affinity checks, dispatch from other threads, and
ManualDispatcherfor deterministic tests. See Contracts. - Keyed collections. Projections, index projections, lookups and selectors, with
filter,map,sortBy,groupBy, slicing and fold views. See Collections and Aggregates. - Trace log. A traced build that records why each node ran. See Tracing.
- C# package.
Ranvier.CSharpwith delegate-based factories,Tracing,ReactiveBindingsforINotifyPropertyChangedandINotifyDataErrorInfo, andReactiveCommand, anICommandwhoseCanExecuteand busy state come from graph nodes.AsObservableCollectionraisesAdd,Remove,MoveandReplacechanges in place ofReset. Previous values reach C# through a seed orSettledOr/TrySettled, withoutValueOption. See C#. - Native AOT and trimming. The packages publish under Native AOT with no trim or AOT warnings, checked in CI. See Installation.
- F# application patterns.
createEditableandcreateDraftfor values seeded from upstream and edited locally, and forms as records of signals. See Editable values and forms. - MVU bridge. The
Ranvier.Elmishpackage:Mvu, which reads an Elmish-style model through selector memos. See Migrating from Elmish. - Projection key readers.
NewKeyReaderreports the keys added, removed and replaced since a reader last looked, and the order they now hold. See Reading changes. - Serialised thread affinity.
ThreadAffinity.Serialisedadmits one thread at a time on the construction context, for hosts such as Blazor Server. See Serialised hosts and Blazor Server. - Failure provenance.
ErrorOriginon a failed node andCaughtFromon an error boundary report the node a failure originated in. See Finding where a failure came from.
In progress
- Fable target. The engine compiles with Fable and the test suite runs against it under Node.js. It still needs a published package, a place in the release process, and documentation of each difference next to the API it affects. See Fable (JavaScript) target.
Under consideration
None of these is available. Each one is an open question about whether and how it fits.
- A drop-while-running flight policy. A policy that ignores a new run while one is in progress, as R3's
Dropand CommunityToolkit'sAsyncRelayCommanddo. - Debounce and throttle. As a flight policy or as a combinator.
- Projection value readers and delta views. Key readers ship; the next stages are readers that report the rows whose values changed, then views that apply deltas instead of re-reading their upstream keys.
The Ecosystem page lists the current gaps these items address.