A composable, cross-platform MVVM framework for .NET that uses functional reactive programming to abstract mutable state from UIs.
ReactiveUI is a cross-platform model-view-viewmodel (MVVM) framework for .NET applications, inspired by functional reactive programming. It helps developers abstract mutable state away from user interfaces, express feature logic in a single readable place, and significantly improve application testability. The framework provides native support for platforms like WPF, MAUI, WinUI, Blazor, and more through a composable package architecture.
.NET developers building cross-platform desktop, mobile, or web applications who want a declarative, testable approach to UI development using the MVVM pattern and reactive programming principles.
Developers choose ReactiveUI for its robust integration of functional reactive programming with the MVVM pattern, enabling cleaner state management, reduced boilerplate, and excellent testability across all major .NET UI platforms.
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.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports WPF, MAUI, WinUI, Blazor, and more through dedicated NuGet packages, enabling code reuse across desktop, mobile, and web applications as listed in the platform table.
Leverages Reactive Extensions (Rx) to express UI logic and state changes in a single, readable place, abstracting away mutable state for cleaner code.
Designed with unit testing in mind, offering a dedicated ReactiveUI.Testing package to isolate and test view models effectively.
Includes ReactiveUI.SourceGenerators to automatically handle property change notifications and command bindings, reducing manual coding effort.
Requires proficiency in both MVVM and Reactive Extensions (Rx), making it challenging for developers unfamiliar with functional reactive programming concepts.
The README warns that platform-specific packages are required for proper functioning, and incorrect installation can lead to performance issues or app failures.
Has dropped support for Xamarin in favor of MAUI, forcing existing projects to migrate, which can be time-consuming and error-prone as noted in the migration section.