-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
When UI state changes faster than the UI can render it and the intermediate values are disposable: market data, telemetry, dashboards, monitoring, game state, WebSocket-driven UIs. See Philosophy.
- CRUD forms / settings screens — changes are rare, so Rambla is pure overhead.
- Event streams where every value matters (fills, trades, log lines) — coalescing drops intermediates. Use a queue/stream/change-set instead.
- Wide fan-outs where each frame touches thousands of distinct properties once — coalescing can't help (see Benchmarks).
No. It complements them. Keep the MVVM Toolkit for ObservableObject and
commands, ReactiveUI for reactive composition, DynamicData for IChangeSet<T>
collections. Rambla owns only the high-frequency background→UI boundary.
No — a single setter is slower (it adds synchronization and dirty tracking). Rambla wins by not emitting the 99,900 notifications a real UI can't render, and by allocating far less. With a no-op subscriber, naive wins. See Benchmarks.
It gives notification coherence (observers are never notified mid-batch), not
cross-thread state atomicity. A background reader can still see a new Bid
beside a stale Ask before the batch closes. For snapshot consistency, publish an
immutable snapshot. See Core Semantics.
Unspecified within a flush. Don't depend on ordering.
WPF today (Rambla.Wpf). WinUI and Avalonia are planned — the core is
framework-agnostic, so an adapter is just an IStateScheduler.
The core is netstandard2.0 (broad reach). The repo builds on .NET 10; adapters
target the framework they integrate with.
RamblaOptions.Default.MaxRefreshRate (default 60). Use the market dashboard
demo's latency probe to find the knee for your workload — see Benchmarks.
One observable property per annotated field, routed through SetField
(_bid → Bid). Nothing else in V1 — no DependsOn, commands, or validation.
Diagnostics RMB001–RMB005 catch misuse (non-partial type, static/readonly field,
name collision, not deriving RamblaState).
Rambla — state for real-time .NET desktop applications · MIT · github.com/nicoseijas/Rambla · This wiki follows ASD-STE100.
Use Rambla
Reference