Skip to content

ReactiveUI

An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms.

Get started Star on GitHub

this.WhenAnyValue(x => x.SearchQuery)
    .Calm(TimeSpan.FromSeconds(0.8), RxSchedulers.TaskpoolScheduler)
    .Select(query => query?.Trim())
    .Unique()
    .Where(query => !string.IsNullOrWhiteSpace(query))
    .WitnessOn(RxSchedulers.MainThreadScheduler)
    .InvokeCommand(this, x => x.ExecuteSearch);
this.WhenAnyValue(fun x -> x.SearchQuery)
    .Calm(TimeSpan.FromSeconds(0.8), RxSchedulers.TaskpoolScheduler)
    .Select(fun (query: string) -> if isNull query then null else query.Trim())
    .Unique()
    .Where(fun query -> not (String.IsNullOrWhiteSpace(query)))
    .WitnessOn(RxSchedulers.MainThreadScheduler)
    .InvokeCommand(this.ExecuteSearch)
  • Declarative


    Describe what you want, not how to do it. Code is communication between people that also happens to run on a computer; optimising for human readability pays off over a project's lifetime.

  • Composable


    Build re-usable chunks of functionality that slot into your reactive pipelines. Write and test code once, leverage it many times.

  • Cross-platform


    Share business logic between mobile and desktop. First-class support for .NET (WPF, WinForms, WinUI), MAUI, Avalonia, and Uno. Xamarin remains supported for legacy apps.

  • Scalable & Testable


    ReactiveUI copes gracefully as your application grows. Control time in tests — no more 3-second waits.

  • Built on ReactiveUI.Primitives


    Streams are LINQ for events. ReactiveUI.Primitives makes them fast, small and ready for Native AOT, and works alongside System.Reactive when a library still needs it.

  • Async-aware commands


    ReactiveCommand runs your async work, surfaces CanExecute, funnels errors to one handler, and cancels on demand — bind it to a button and forget the plumbing.

  • Less boilerplate


    Decorate fields and methods with [Reactive], [ObservableAsProperty], and [ReactiveCommand]; source generators write the property and command code for you.

  • Open-source community


    Contribute under an OSI-approved licence. Free for commercial use. Maintained by the ReactiveUI Association and Contributors.