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


Declarative, composable code.

canSearch = this.WhenAnyValue(x => x.SearchQuery, 
                              x => !String.IsNullOrWhiteSpace(x));

Community Meetup ON AIR

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.