https://github.com/reactiveui/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.
https://github.com/reactiveui/reactiveui
android csharp dotnet first-timers fody framework functional-reactive-programming hacktoberfest ios mvvm reactive-extensions reactive-programming reactiveui reactivex tizen uwp winforms wpf xamarin xamarin-forms
Last synced: 12 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/reactiveui/reactiveui
- Owner: reactiveui
- License: mit
- Created: 2010-06-11T05:24:29.000Z (almost 15 years ago)
- Default Branch: main
- Last Pushed: 2025-04-03T06:47:08.000Z (17 days ago)
- Last Synced: 2025-04-08T20:07:53.996Z (12 days ago)
- Topics: android, csharp, dotnet, first-timers, fody, framework, functional-reactive-programming, hacktoberfest, ios, mvvm, reactive-extensions, reactive-programming, reactiveui, reactivex, tizen, uwp, winforms, wpf, xamarin, xamarin-forms
- Language: C#
- Homepage: https://www.reactiveui.net
- Size: 85.2 MB
- Stars: 8,243
- Watchers: 357
- Forks: 1,132
- Open Issues: 77
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README

[](https://codecov.io/gh/reactiveui/ReactiveUI)
[](https://reactiveui.net/contribute)
[](https://reactiveui.net/slack)# What is ReactiveUI?
[ReactiveUI](https://reactiveui.net/) 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](https://www.youtube.com/watch?v=3HwEytvngXk) and improve the testability of your application.
[π¨ Get Started](https://reactiveui.net/docs/getting-started/) [π Install Packages](https://reactiveui.net/docs/getting-started/installation/) [π Watch Videos](https://reactiveui.net/docs/resources/videos) [π View Samples](https://reactiveui.net/docs/resources/samples/) [π€ Discuss ReactiveUI](https://reactiveui.net/slack)
## Book
There has been an excellent [book](https://kent-boogaart.com/you-i-and-reactiveui/) 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 |
| ----------------- | ----------------------------------- | ---------------------- |
| .NET Standard | [ReactiveUI][CoreDoc] | [![CoreBadge]][Core] |
| | [ReactiveUI.Fody][FodyDoc] | [![FodyBadge]][Fody] |
| Unit Testing | [ReactiveUI.Testing][TestDoc] | [![TestBadge]][Test] |
| WPF | [ReactiveUI.WPF][WpfDoc] | [![WpfBadge]][Wpf] |
| UWP | [ReactiveUI.Uwp][UwpDoc] | [![UwpBadge]][Uwp] |
| WinUI | [ReactiveUI.WinUI][WinUiDoc] | [![WinUiBadge]][WinUi] |
| MAUI | [ReactiveUI.Maui][MauiDoc] | [![MauiBadge]][Maui] |
| Windows Forms | [ReactiveUI.WinForms][WinDoc] | [![WinBadge]][Win] |
| Xamarin.Forms | [ReactiveUI.XamForms][XamDoc] | [![XamBadge]][Xam] |
| Xamarin.Essentials| [ReactiveUI][XamDoc] | [![CoreBadge]][Core] |
| AndroidX (Xamarin)| [ReactiveUI.AndroidX][DroDoc] | [![DroXBadge]][DroX] |
| Xamarin.Android | [ReactiveUI.AndroidSupport][DroDoc] | [![DroBadge]][Dro] |
| Xamarin.iOS | [ReactiveUI][IosDoc] | [![CoreBadge]][Core] |
| Xamarin.Mac | [ReactiveUI][MacDoc] | [![CoreBadge]][Core] |
| Tizen | [ReactiveUI][CoreDoc] | [![CoreBadge]][Core] |
| Blazor | [ReactiveUI.Blazor][BlazDoc] | [![BlazBadge]][Blaz] |
| Platform Uno | [ReactiveUI.Uno][UnoDoc] | [![UnoBadge]][Uno] |
| Platform Uno | [ReactiveUI.Uno.WinUI][UnoWinUiDoc] | [![UnoWinUiBadge]][UnoWinUi] |
| Avalonia | [Avalonia.ReactiveUI][AvaDoc] | [![AvaBadge]][Ava] |
| Any | [ReactiveUI.Validation][ValDocs] | [![ValBadge]][ValCore] |[Core]: https://www.nuget.org/packages/ReactiveUI/
[CoreBadge]: https://img.shields.io/nuget/v/ReactiveUI.svg
[CoreDoc]: https://reactiveui.net/docs/getting-started/installation/[Fody]: https://www.nuget.org/packages/ReactiveUI.Fody/
[FodyDoc]: https://reactiveui.net/docs/handbook/view-models/boilerplate-code
[FodyBadge]: https://img.shields.io/nuget/v/ReactiveUI.Fody.svg[Test]: https://www.nuget.org/packages/ReactiveUI.Testing/
[TestBadge]: https://img.shields.io/nuget/v/ReactiveUI.Testing.svg
[TestDoc]: https://reactiveui.net/docs/handbook/testing/[Wpf]: https://www.nuget.org/packages/ReactiveUI.WPF/
[WpfBadge]: https://img.shields.io/nuget/v/ReactiveUI.WPF.svg
[WpfDoc]: https://reactiveui.net/docs/getting-started/installation/windows-presentation-foundation[Uwp]: https://www.nuget.org/packages/ReactiveUI.Uwp/
[UwpBadge]: https://img.shields.io/nuget/v/ReactiveUI.Uwp.svg
[UwpDoc]: https://reactiveui.net/docs/getting-started/installation/universal-windows-platform[WinUi]: https://www.nuget.org/packages/ReactiveUI.WinUI/
[WinUiBadge]: https://img.shields.io/nuget/v/ReactiveUI.WinUI.svg
[WinUiDoc]: https://reactiveui.net/docs/getting-started/installation/universal-windows-platform[Maui]: https://www.nuget.org/packages/ReactiveUI.Maui/
[MauiBadge]: https://img.shields.io/nuget/v/ReactiveUI.Maui.svg
[MauiDoc]: https://blog.jetbrains.com/dotnet/2020/09/18/xamarin-maui-and-the-reactive-mvvm-between-them-webinar-recording/[Win]: https://www.nuget.org/packages/ReactiveUI.WinForms/
[WinEvents]: https://www.nuget.org/packages/ReactiveUI.Events.WinForms/
[WinBadge]: https://img.shields.io/nuget/v/ReactiveUI.WinForms.svg
[WinDoc]: https://reactiveui.net/docs/getting-started/installation/windows-forms[Xam]: https://www.nuget.org/packages/ReactiveUI.XamForms/
[XamEvents]: https://www.nuget.org/packages/ReactiveUI.Events.XamForms/
[XamBadge]: https://img.shields.io/nuget/v/ReactiveUI.XamForms.svg
[XamDoc]: https://reactiveui.net/docs/getting-started/installation/xamarin-forms
[Dro]: https://www.nuget.org/packages/ReactiveUI.AndroidSupport/
[DroBadge]: https://img.shields.io/nuget/v/ReactiveUI.AndroidSupport.svg
[DroDoc]: https://reactiveui.net/docs/getting-started/installation/xamarin-android[DroX]: https://www.nuget.org/packages/ReactiveUI.AndroidX/
[DroXBadge]: https://img.shields.io/nuget/v/ReactiveUI.AndroidX.svg[MacDoc]: https://reactiveui.net/docs/getting-started/installation/xamarin-mac
[IosDoc]: https://reactiveui.net/docs/getting-started/installation/xamarin-ios[Uno]: https://www.nuget.org/packages/ReactiveUI.Uno/
[UnoBadge]: https://img.shields.io/nuget/v/ReactiveUI.Uno.svg
[UnoDoc]: https://reactiveui.net/docs/getting-started/installation/uno-platform
[UnoWinUi]: https://www.nuget.org/packages/ReactiveUI.Uno.WinUI/
[UnoWinUiBadge]: https://img.shields.io/nuget/v/ReactiveUI.Uno.WinUI.svg
[UnoWinUiDoc]: https://reactiveui.net/docs/getting-started/installation/uno-platform[Blaz]: https://www.nuget.org/packages/ReactiveUI.Blazor/
[BlazBadge]: https://img.shields.io/nuget/v/ReactiveUI.Blazor.svg
[BlazDoc]: https://www.reactiveui.net/docs/getting-started/installation/blazor[Ava]: https://www.nuget.org/packages/Avalonia.ReactiveUI/
[AvaBadge]: https://img.shields.io/nuget/v/Avalonia.ReactiveUI.svg
[AvaDoc]: https://reactiveui.net/docs/getting-started/installation/avalonia
[EventsDocs]: https://reactiveui.net/docs/handbook/events/[ValCore]: https://www.nuget.org/packages/ReactiveUI.Validation/
[ValBadge]: https://img.shields.io/nuget/v/ReactiveUI.Validation.svg
[ValDocs]: https://reactiveui.net/docs/handbook/user-input-validation/## 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](https://github.com/sponsors/reactivemarbles).
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](https://github.com/reactiveui/ReactiveUI/issues) or [Stack Overflow](https://stackoverflow.com/questions/tagged/reactiveui) have already answered it.
If you want to discuss something or just need help, here is our [Slack room](https://reactiveui.net/slack), 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](https://github.com/reactiveui/ReactiveUI/issues/new/choose) to discuss. We are first time PR contributors friendly.
See [Contribution Guidelines](https://www.reactiveui.net/contribute/) for further information how to contribute changes.
## Core Team
Melbourne, Australia
![]()
Chris Pulman
United Kingdom
![]()
Rodney Littles II
Texas, USA
![]()
Colt Bauman
South Korea
## Alumni Core Team
The following have been core team members in the past.
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
![]()
Artyom Gorchakov
Moscow, Russia
## .NET Foundation
ReactiveUI is part of the [.NET Foundation](https://www.dotnetfoundation.org/). 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.