ReactiveUI
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application.
ReactiveUI is a C# framework for building .NET apps where the UI automatically updates when data changes, using a reactive style that replaces manual event wiring across WPF, MAUI, Blazor, Avalonia, and other platforms.
ReactiveUI is a framework for building desktop, mobile, and web applications in C# and other .NET languages. It is built around a pattern called Model-View-ViewModel, or MVVM, which is a structured way of separating the logic of an application from its visual interface. ReactiveUI adds a layer on top of this by applying ideas from functional reactive programming, a style of writing code where you describe how data flows and changes over time rather than manually updating values whenever something happens.
In practical terms, this means that instead of writing code like "when the user clicks the button, update this label," you describe a continuous relationship: "this label always shows the result of this calculation, and when any input changes, the label updates automatically." The framework handles the plumbing of connecting those pieces and notifying the interface when something needs to change. The README describes the goal as moving unpredictable, mutable state out of your user interface and into a place where it can be reasoned about and tested more easily.
ReactiveUI works across a wide range of .NET platforms. Separate packages are available for WPF (Windows desktop), Windows Forms, WinUI, MAUI (cross-platform mobile and desktop), Android, Blazor (browser), Avalonia, and the Uno Platform. You install a core package plus whichever platform-specific package matches your project. Note that support for the older Xamarin platform has been removed as of mid-2024, and the README includes migration guidance for Xamarin users moving to MAUI.
The project is open source and community-maintained. A full documentation website lives at reactiveui.net, covering installation, testing patterns, handling user input validation, and working with observable events. A book called You, I, and ReactiveUI written by a former maintainer covers the framework in depth. The project is installed via NuGet, the standard package manager for .NET, and is actively used in production applications across all the supported platforms.
Where it fits
- Build a WPF desktop app where UI labels and buttons automatically react to ViewModel property changes without manual event handlers
- Create a cross-platform mobile and desktop app with .NET MAUI using reactive data bindings
- Migrate a Xamarin app to .NET MAUI using ReactiveUI migration guidance