/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.

Primary LanguageC#MIT LicenseMIT

Build Code Coverage #yourfirstpr Dependabot Status



What is ReactiveUI?

ReactiveUI is a composable, cross-platform model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming, which is a paradigm that allows you to abstract mutable state away from your user interfaces and express the idea around a feature in one readable place and improve the testability of your application.

🔨 Get Started 🛍 Install Packages 🎞 Watch Videos 🎓 View Samples 🎤 Discuss ReactiveUI

Book

There has been an excellent book written by our Alumni maintainer Kent Boogart.

NuGet Packages

Install the following packages to start building your own ReactiveUI app. Note: some of the platform-specific packages are required. This means your app won't perform as expected until you install the packages properly. See the Installation docs page for more info.

Platform ReactiveUI Package NuGet Events Package
.NET Standard ReactiveUI CoreBadge None
ReactiveUI.Fody FodyBadge None
Unit Testing ReactiveUI.Testing TestBadge None
Universal Windows ReactiveUI CoreBadge ReactiveUI.Events
WPF ReactiveUI.WPF WpfBadge ReactiveUI.Events.WPF
Windows Forms ReactiveUI.WinForms WinBadge ReactiveUI.Events.WinForms
Xamarin.Forms ReactiveUI.XamForms XamBadge ReactiveUI.Events.XamForms
Xamarin.Essentials ReactiveUI CoreBadge ReactiveUI.Events.XamEssentials
AndroidX (Xamarin) ReactiveUI.AndroidX DroXBadge ReactiveUI.Events
Xamarin.Android ReactiveUI.AndroidSupport DroBadge ReactiveUI.Events
Xamarin.iOS ReactiveUI CoreBadge ReactiveUI.Events
Xamarin.Mac ReactiveUI CoreBadge ReactiveUI.Events
Tizen ReactiveUI CoreBadge ReactiveUI.Events
Blazor ReactiveUI.Blazor BlazBadge None
Platform Uno ReactiveUI.Uno UnoBadge None
Avalonia Avalonia.ReactiveUI AvaBadge None
Any ReactiveUI.Validation ValBadge None

Sponsorship

The core team members, ReactiveUI contributors and contributors in the ecosystem do this open-source work in their free time. If you use ReactiveUI, a serious task, and you'd like us to invest more time on it, please donate. This project increases your income/productivity too. It makes development and applications faster and it reduces the required bandwidth.

Become a sponsor.

This is how we use the donations:

  • Allow the core team to work on ReactiveUI
  • Thank contributors if they invested a large amount of time in contributing
  • Support projects in the ecosystem

Support

If you have a question, please see if any discussions in our GitHub issues or Stack Overflow have already answered it.

If you want to discuss something or just need help, here is our Slack room, where there are always individuals looking to help out!

Please do not open GitHub issues for support requests.

Contribute

ReactiveUI is developed under an OSI-approved open source license, making it freely usable and distributable, even for commercial use.

If you want to submit pull requests please first open a GitHub issue to discuss. We are first time PR contributors friendly.

Core Team


Glenn Watson

Melbourne, Australia


Rodney Littles II

Texas, USA


Artyom Gorchakov

Moscow, Russia


Colt Bauman

South Korea

Alumni Core Team

The following have been core team members in the past.


Geoffrey Huntley

Sydney, Australia


Kent Boogaart

Brisbane, Australia


Olly Levett

London, United Kingdom


Anaïs Betts

San Francisco, USA


Brendan Forster

Melbourne, Australia


Claire Novotny

New York, USA

.NET Foundation

ReactiveUI is part of the .NET Foundation. Other projects that are associated with the foundation include the Microsoft .NET Compiler Platform ("Roslyn") as well as the Microsoft ASP.NET family of projects, Microsoft .NET Core & Xamarin Forms.