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

Repository: https://github.com/reactiveui/ReactiveUI
Canonical: https://ross.abutalabs.com/products/reactiveui
Homepage: https://www.reactiveui.net
Language: C#
License: MIT
License Family: permissive
Topics: reactiveui, xamarin, ios, android, uwp, wpf, winforms, reactive-programming, reactive-extensions, functional-reactive-programming, mvvm, framework, csharp, first-timers, xamarin-forms, tizen, dotnet, reactivex, hacktoberfest
Last push: 2026-08-26T18:54:38+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 84, longevity 100
- inputs: {"age_days": 5927, "days_push": 7, "days_rel": 31, "gap_med": 33.5, "n_releases_24m": 15}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 8537, forks 1151 (observed 2026-08-28T04:10:23.378346+00:00)

## What it is
ReactiveUI is a composable, functional reactive model-view-viewmodel (MVVM) framework for all .NET platforms, built on Reactive Extensions. It lets developers abstract mutable state away from UIs, express feature logic in one readable place, and improve testability across WPF, WinForms, WinUI, MAUI, Avalonia, Uno, Blazor, and mobile platforms.

## Use cases
- build cross-platform .NET apps with the MVVM pattern
- handle async commands and cancellable user actions in view models
- observe and react to property changes declaratively
- write deterministic unit tests for time-based UI logic
- reduce INotifyPropertyChanged boilerplate with source generators
- share view model logic between WPF, MAUI, and Avalonia apps

## When to choose
- you're building .NET applications with complex asynchronous or event-driven UI state
- you want testable view models with controllable schedulers and time manipulation
- you need one MVVM framework across WPF, WinUI, MAUI, Avalonia, Uno, or Blazor
- you prefer declarative, composable reactive pipelines over imperative event handling

## When to avoid
- your team is unfamiliar with reactive programming and has no time to learn Rx
- you're building a simple CRUD app where plain data binding suffices
- you're maintaining a legacy Xamarin app, which is no longer supported
- you prefer a lightweight MVVM toolkit without a reactive dependency

## Facets
- artifact type: framework
- maturity: stable
- function: state-management, frontend-framework, ui-components, testing
- domain: cross-platform, mobile-development, desktop-applications, web-development, developer-tools
- platform: dotnet, windows, cross-platform
- tags: mvvm, reactive-programming, reactive-extensions, csharp, frp, source-generators, avalonia, maui, wpf, winui, android, ios, desktop, mobile

## Member repositories
- reactiveui/ReactiveUI (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:23.378346+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:26:21.011877+00:00, confidence not recorded.
  - readme: https://github.com/reactiveui/ReactiveUI (fetched 2026-08-28T04:10:23.378346+00:00, sha 8e7266bdac4d)
  - homepage: https://www.reactiveui.net (fetched 2026-08-29T08:26:47.160495+00:00, sha f71d075f5be2)
  - site_page: https://www.reactiveui.net/documentation (fetched 2026-08-29T08:26:47.169789+00:00, sha eb76d32e0815)
  - site_page: https://www.reactiveui.net/documentation/getting-started (fetched 2026-08-29T08:26:47.172029+00:00, sha 95aa63ecbe9b)
  - site_page: https://www.reactiveui.net/documentation/handbook/testing (fetched 2026-08-29T08:26:47.173980+00:00, sha dddcb6f1a550)
  - site_page: https://www.reactiveui.net/documentation/getting-started/installation (fetched 2026-08-29T08:26:47.175988+00:00, sha 48e547def246)
  - site_page: https://www.reactiveui.net/documentation/handbook/commands (fetched 2026-08-29T08:26:47.177690+00:00, sha 1384ee534354)
  - site_page: https://www.reactiveui.net/documentation/handbook/view-models/boilerplate-code (fetched 2026-08-29T08:26:47.180059+00:00, sha 26013ddcf506)
- Data as of 2026-08-30T08:39:29.467469+00:00.
