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 that is inspired by functional reactive programming (FRP). It allows developers to abstract mutable state away from user interfaces, express feature logic in a single readable place, and significantly improve the testability of their applications. The framework provides dedicated packages for platforms like WPF, MAUI, WinUI, Blazor, and Avalonia.
.NET developers building desktop, mobile, or web applications across multiple platforms who want to adopt a reactive, testable MVVM architecture. It is particularly valuable for teams working on complex UI logic that requires maintainable state management.
Developers choose ReactiveUI for its strong integration of functional reactive programming principles within the MVVM pattern, enabling declarative, composable, and highly testable UI code. Its cross-platform support and extensive ecosystem of platform-specific packages provide a consistent development experience across the entire .NET landscape.
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.
Offers dedicated packages for WPF, MAUI, Blazor, and more, enabling a consistent reactive architecture across all .NET UI platforms, as listed in the NuGet table.
Leverages reactive extensions to model events and state changes as observable streams, abstracting mutable state and making complex UI logic more manageable, per the FRP philosophy.
Decouples view models from UI, allowing comprehensive unit testing without platform dependencies, highlighted in the improved testability feature and supported by ReactiveUI.Testing.
The ReactiveUI.SourceGenerators package reduces manual code for properties and commands, speeding up development, as noted in the source generation documentation.
Requires proficiency in both MVVM patterns and reactive programming with Rx, which can slow onboarding and increase initial development time for teams new to these concepts.
The README warns that platform-specific packages are required and must be installed correctly, adding configuration overhead and potential for missteps in multi-platform projects.
With Xamarin support removed, migrating legacy projects to MAUI with ReactiveUI can be non-trivial, as indicated in the migration section, requiring significant refactoring.