Back to Reactiveui

What is ReactiveUI?

README.md

23.2.2713.2 KB
Original Source

<a href="https://github.com/reactiveui/reactiveui"> </a>

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

Documentation

  • RxSchedulers - Using ReactiveUI schedulers without RequiresUnreferencedCode attributes

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. <b>Note:</b> 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 <a href="https://reactiveui.net/docs/getting-started/installation/">Installation</a> docs page for more info.

PlatformReactiveUI PackageNuGet
.NET StandardReactiveUI
AnyReactiveUI.SourceGenerators
Unit TestingReactiveUI.Testing
WPFReactiveUI.WPF
WinUIReactiveUI.WinUI
MAUIReactiveUI.Maui
Windows FormsReactiveUI.WinForms
AndroidXReactiveUI.AndroidX
BlazorReactiveUI.Blazor
Platform UnoReactiveUI.Uno
Platform UnoReactiveUI.Uno.WinUI
AvaloniaReactiveUI.Avalonia
AnyReactiveUI.Validation
AnyReactiveUI.Extensions

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.

Migration from Xamarin and .NET 8 MAUI

Xamarin Users

As of May 2024, Microsoft ended support for Xamarin per their support policy. ReactiveUI has removed support for legacy Xamarin platforms in favor of modern .NET MAUI. For Xamarin projects:

  • Xamarin.Forms β†’ Migrate to MAUI and use ReactiveUI.Maui
  • Xamarin.Android β†’ Migrate to MAUI Android or use ReactiveUI.AndroidX for native Android
  • Xamarin.iOS/Mac β†’ Migrate to MAUI iOS/Mac Catalyst

For guidance on migrating from Xamarin to MAUI, see the official migration documentation.

MAUI Users

ReactiveUI supports .NET 9 and .NET 10 for MAUI platforms:

  • net10.0-android / net9.0-android
  • net10.0-ios / net9.0-ios
  • net10.0-maccatalyst / net9.0-maccatalyst
  • net10.0-windows10.0.19041.0 / net9.0-windows10.0.19041.0

Non-MAUI net8.0 library targets remain fully supported.

Examples

Platform-specific sample applications are included in src/examples/:

SamplePlatformDescription
ReactiveUI.Samples.WpfWPFLogin form with reactive bindings, PasswordBox event marshaling
ReactiveUI.Samples.WinformsWinFormsLogin form with IViewFor, programmatic UI layout
ReactiveUI.Samples.MauiMAUICross-platform login with Shell navigation, ReactiveContentPage
ReactiveUI.Builder.WpfAppWPFMulti-instance chat app with routing, suspension, and network sync
ReactiveUI.Builder.BlazorServerBlazor ServerChat app with server-side Blazor and reactive components

All samples target .NET 10, use RxAppBuilder for initialization, and demonstrate WhenActivated, Bind/BindCommand, and proper subscription disposal.

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.

See Contribution Guidelines for further information how to contribute changes.

Core Team

<table> <tbody> <tr> <td align="center" valign="top" width="105">
    <a href="https://github.com/glennawatson">Glenn Watson</a>
    <p>Melbourne, Australia</p>
  </td>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/chrispulman">Chris Pulman</a>
    <p>United Kingdom</p>
  </td>
</tr>
<tr>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/rlittlesii">Rodney Littles II</a>
    <p>Texas, USA</p>
  </td>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/cabauman">Colt Bauman</a>
    <p>South Korea</p>
  </td>
</tr>
</tbody> </table>

Alumni Core Team

The following have been core team members in the past.

<table> <tbody> <tr> <td align="center" valign="top" width="105">
    <a href="https://github.com/ghuntley">Geoffrey Huntley</a>
    <p>Sydney, Australia</p>
  </td>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/kentcb">Kent Boogaart</a>
    <p>Brisbane, Australia</p>
  </td>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/olevett">Olly Levett</a>
    <p>London, United Kingdom</p>
  </td>
</tr>
<tr>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/anaisbetts">AnaΓ―s Betts</a>
    <p>San Francisco, USA</p>
  </td>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/shiftkey">Brendan Forster</a>
    <p>Melbourne, Australia</p>
  </td>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/clairernovotny">Claire Novotny</a>
    <p>New York, USA</p>
  </td>
</tr>
<tr>
  <td align="center" valign="top" width="105">
    
    

    <a href="https://github.com/worldbeater">Artyom Gorchakov</a>
    <p>Moscow, Russia</p>
  </td>
 </tr>
</tbody> </table>

.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, and Microsoft .NET Core.