All Projects → reactiveui → Pharmacist

reactiveui / Pharmacist

Licence: MIT license
Builds observables from events.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Pharmacist

Dynamicdata
Reactive collections based on Rx.Net
Stars: ✭ 1,083 (+390.05%)
Mutual labels:  reactivex, reactive-programming, reactive-extensions, rx
ObservableComputations
Cross-platform .NET library for computations whose arguments and results are objects that implement INotifyPropertyChanged and INotifyCollectionChanged (ObservableCollection) interfaces.
Stars: ✭ 94 (-57.47%)
Mutual labels:  observable, reactive-programming, reactive-extensions, rx
Flutter validation login form bloc pattern rxdart
[Functional reactive programming (FRP)]💧 💧 💧 [Pure RxDart] Validation login form by using the BLoC pattern with RxDart - A new Flutter project featuring a faked authentication interface to demonstrate validation. Implemented with BloC pattern.
Stars: ✭ 45 (-79.64%)
Mutual labels:  reactivex, reactive-programming, rx
Rx.Book
High level asynchronous programming with Reactive Extensions
Stars: ✭ 67 (-69.68%)
Mutual labels:  reactive-programming, reactive-extensions, rx
Rocket.jl
Functional reactive programming extensions library for Julia
Stars: ✭ 69 (-68.78%)
Mutual labels:  observable, reactive-programming, reactive-extensions
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.
Stars: ✭ 6,709 (+2935.75%)
Mutual labels:  reactivex, reactive-programming, reactive-extensions
Rxdownloader
- Reactive Extension Library for Android to download files
Stars: ✭ 40 (-81.9%)
Mutual labels:  reactivex, reactive-programming, reactive-extensions
Awesome Reactive Programming
A repository for sharing all the resources available on Reactive Programming and Reactive Systems
Stars: ✭ 163 (-26.24%)
Mutual labels:  reactivex, reactive-programming, reactive-extensions
Rx.Http
A reactive way to make HTTP Request in .NET Core 🚀
Stars: ✭ 62 (-71.95%)
Mutual labels:  reactivex, reactive-programming, rx
rx
Reactive Extensions for D Programming Language
Stars: ✭ 52 (-76.47%)
Mutual labels:  reactivex, reactive-extensions, rx
Lightweightobservable
📬 A lightweight implementation of an observable sequence that you can subscribe to.
Stars: ✭ 114 (-48.42%)
Mutual labels:  observable, reactive-programming, rx
flutter-form-with-validation-BLOC
This form and validation functions are created by using the BLOC pattern with RxDart instead of using StatefulWidget
Stars: ✭ 63 (-71.49%)
Mutual labels:  reactivex, reactive-programming, rx
Awesome Rxjs
A collection of awesome RxJS resources
Stars: ✭ 314 (+42.08%)
Mutual labels:  reactivex, reactive-programming, reactive-extensions
Camelotia
Cross-platform .NET sample GUI app for cloud file management. Built with ReactiveUI, AvaloniaUI, Universal Windows Platform, Xamarin Forms, and WPF, runs on Windows, Linux, Mac and Android.
Stars: ✭ 221 (+0%)
Mutual labels:  reactivex, dotnetcore, reactive-programming
Rxrust
Rust implementation of Reactive Extensions.
Stars: ✭ 376 (+70.14%)
Mutual labels:  reactivex, rx
Rxpy
Reactive Extensions for Python, https://rxpy.rtfd.io
Stars: ✭ 4,086 (+1748.87%)
Mutual labels:  reactivex, reactive-extensions
Vsphere Connect
A modern vSphere Client
Stars: ✭ 14 (-93.67%)
Mutual labels:  reactivex, observable
Ayanami
🍭 A better way to react with state
Stars: ✭ 129 (-41.63%)
Mutual labels:  reactivex, reactive-programming
vuse-rx
Vue 3 + rxjs = ❤
Stars: ✭ 52 (-76.47%)
Mutual labels:  reactive-programming, rx
Rxgo
Reactive Extensions for the Go language.
Stars: ✭ 3,907 (+1667.87%)
Mutual labels:  reactivex, observable

Build Code Coverage

Pharmacist

Builds observables from events.

Source Generator

A source generator version is being worked on over here: https://github.com/reactivemarbles/ObservableEventsSourceGenerator

NuGet Packages

Install the following packages to start using Pharmacist.

Name Platform NuGet
Pharmacist.Core Core - Libary CoreBadge
Pharmacist Global Tool GlobalToolBadge
Pharmacist.MSBuild MSBuild Task MsBuildBadge
Pharmacist.Common Common CommonBadge

What does it do?

Pharmacist will convert events within an assembly and create observable wrappers for them.

It has been called pharmacist since it will generate Reactive Extensions (Rx) Observables for events, so it's a play on word about "Rx" which is short for prescriptions.

It can generate the observables for the following:

  • System Platforms, such as Xamarin (iOS/Android/TVOS), UWP
  • NuGet packages
  • Assemblies.

There is a MSBuild Task version and a global tool version.

How do I use?

MsBuild

Pharmacist can automatically create Observable wrappers for projects for their explicitly included NuGet packages.

In your .csproj file you can add:

<ItemGroup>
    <PackageReference Include="Pharmacist.MsBuild" Version="1.*" PrivateAssets="all" />
    <PackageReference Include="Pharmacist.Common" Version="1.*" />
</ItemGroup>

Pharmacist.MsBuild contains the MsBuild target file and appropriate tasks. Pharmacist.Common includes common source code that is required to invoke the generated observables.

This will generate wrappers only for other included PackageReference's contained within the project file.

For example if you had a inclusion for Xamarin.Forms in the same project that includes Pharmacist it will generate Observable wrappers for the included codes. It will not include any child PackageReference from other projects included via a ProjectReference. You can override that functionality by including <PharmacistGlobalPackages>true</PharmacistGlobalPackages> in a PropertyGroup inside your project.

Also it will only generate the specified ProjectReference and none of it's dependent packages. For example for a ProjectReference inclusion of ReactiveUI, it will not generate dependencies such as System.Reactive. If you want to generate observable wrappers for the dependent NuGet packages you must explicitly include them.

Command Line

Pharmacist comes with a command line version which is useful for generating for a specified platform.

The following values are supported for platforms: Android, iOS, Mac, WPF, UWP, Winforms, TVOS

Install the global tool:

dotnet tool install -g Pharmacist

To generate files:

pharmacist generate-platform -p <Platform> -o c:/directory/for/output --output-prefix="Events"

This would generate a file named Events_<Platform>.cs, where Platform would be the platform specified.

In the near future this will be changing to TargetFramework with /wpf and /winforms options.

Contribute

Pharmacist is developed under an OSI-approved open source license, making it freely usable and distributable, even for commercial use. Because of our Open Collective model for funding and transparency, we are able to funnel support and funds through to our contributors and community. 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.

So here's to you, lovely person who wants to join us — this is how you can support us:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].