Skip to content
Nicolás Seijas edited this page Jul 28, 2026 · 3 revisions

Rambla

Rambla is a state engine for real-time .NET desktop applications. Use Rambla when the state changes more quickly than the UI can show it.

Rambla makes a difference between two operations:

  • A mutation changes a value. Your code does this from any thread.
  • A notification tells the UI that a value changed. Rambla does this.

Rambla keeps the intermediate values away from the UI. In each flush, Rambla sends only the last value of each property.

public partial class MarketViewModel : RamblaState
{
    [State] private decimal _bid;
    [State] private decimal _ask;
    [State] private decimal _pnl;
}

// Write from a background thread.
// Do not use Dispatcher.Invoke. Do not call OnPropertyChanged.
vm.Bid = 1.2345m;

Start here

The primary rule

Rambla does not make a notification less expensive. Rambla prevents the notification.

The limits of Rambla

Rambla is not a replacement for CommunityToolkit.Mvvm, ReactiveUI or DynamicData. Rambla does one task. It makes the boundary between the background threads and the UI safe and inexpensive at a high update rate. Typical applications are trading terminals, dashboards, telemetry displays and monitor applications.

The language of this wiki

This wiki follows ASD-STE100 (Simplified Technical English). The sentences are short. Each technical name has one meaning. The Glossary gives the technical names.

The documents in the repository are the primary source: README.md, SEMANTICS.md, BENCHMARKS.md, ROADMAP.md, VISION.md and docs/philosophy.md. Those documents do not follow ASD-STE100.

Clone this wiki locally