Skip to content

A thin library around Reactive Extensions to simplify writing evented applications in C#.

License

Notifications You must be signed in to change notification settings

danielcrenna/reactive-pipes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FOSSA Status

reactive.pipes

> Install-Package reactive.pipes

Reactive Pipes is a lightweight eventing middleware library for distributed applications.

It gives you high performing, non-blocking and parallelized eventing. You build other components out of it.

Why would I use this?

  • You're building a real-time system and want to notify your hub as things occur
  • You want to synchronize activity between various application components at the event level
  • You want to use the "shared nothing" integration pattern
  • You want to transform events into one or more materialized views for queries, etc. (event sourcing)
  • You want to produce version-safe events on a schedule, without requiring additional infrastructure

Usage


This library provides a foundation for distributed middleware on three levels: pipes, protocols, and event dispatch. It provides most of what you need to handle concurrency and synchronization of arbitrary producers and consumers. Here is a simple example using two built-in components.

var block = new ManualResetEvent(false);

var producer = new ObservingProducer<int>();
var consumer = new DelegatingConsumer<int>(i => Console.WriteLine(i));

producer.Produces(Observable.Range(1, 10000), onCompleted: () => block.Set());
producer.Attach(consumer);
producer.Start();

block.WaitOne();

Addendum

  • Custom task schedulers in the Schedulers folder are provided for convenience and Copyright (c) Microsoft Corporation.
  • This is a streamlined version of copper, a library I wrote in 2012.
  • This library also subsumes the linger library for delayed message production on a schedule.

License

FOSSA Status

About

A thin library around Reactive Extensions to simplify writing evented applications in C#.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages