An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms

Get Started!

Community Meetup

Howdy, we run a monthly virtual standup right here on this page. It's our way of teaching the concepts behind functional reactive programming, to showcase neat stuff our community has done and to share opportunities with people who want to get started with open-source. We invest in you, in hope that you will stick around and pay it forward. In the mean time, why not join us in Slack?

Features

Declarative

Describe what you want, not how to do it & rejoice in the increased readability of your code. Code is communication between people, that also happens to run on a computer. If you optimise for reading by humans, then over a long time your project will end up better.

Composable

Create re-usable chunks of functionality that can be seamlessly integrated into your reactive pipelines. These chunks might be widely applicable, or specific to your application. Regardless, you have the power to write and test code once, and leverage it many times over.

Scalable

In some software development situations, like mobile apps, if you take a step back and look at the forest instead of the trees, you will see that most of your code is reacting to something that changed.

ReactiveUI copes gracefully as your application gets more complicated because of the reactive foundation on which ReactiveUI is built upon. These building blocks are particularly adept at expressing the relationship between a group of things that are changing. ReactiveUI is essentially a colleciton of extension methods that make expressing intention more convenient when implementing user interfaces.

Testable

Waiting 3 seconds after receiving user input before instigating a request? Don't write a test that waits for 3 seconds - control time! Fast-forward 2.9 seconds, assert the request hasn't been sent, fast-forward another 0.1 seconds, and assert that it has. The functional idioms inherent in reactive programming lead to many other benefits including greater ease in testing your code & you will be able to assert the correctness of features and aspects of your application that you thought were impossible to test.

Cross-platform

Any device, any platform. Share business logic between your mobile and desktop applications. ReactiveUI has first class support for Xamarin Forms, Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Tizen, Windows Forms, Windows Presentation Foundation (WPF), & Universal Windows Platform (UWP).

Open-source

ReactiveUI is developed under an OSI-approved open source license, making it freely usable and distributable, even for commercial use. We ❤ the people who are involved in this project, and we’d love to have you on board, especially if you are just getting started or have never contributed to open-source before.

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