Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danielcrenna/reactive-pipes
A thin library around Reactive Extensions to simplify writing evented applications in C#.
https://github.com/danielcrenna/reactive-pipes
csharp distributed-systems message-bus reactive-extension reactive-programming
Last synced: 1 day ago
JSON representation
A thin library around Reactive Extensions to simplify writing evented applications in C#.
- Host: GitHub
- URL: https://github.com/danielcrenna/reactive-pipes
- Owner: danielcrenna
- License: other
- Created: 2016-05-31T20:28:01.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-07-16T04:16:25.000Z (over 4 years ago)
- Last Synced: 2024-10-13T11:07:56.879Z (about 1 month ago)
- Topics: csharp, distributed-systems, message-bus, reactive-extension, reactive-programming
- Language: C#
- Size: 1.41 MB
- Stars: 14
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdanielcrenna%2Freactive-pipes.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdanielcrenna%2Freactive-pipes?ref=badge_shield)
reactive.pipes
======```powershell
> 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](http://en.wikipedia.org/wiki/Shared_nothing_architecture)" 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.```csharp
var block = new ManualResetEvent(false);var producer = new ObservingProducer();
var consumer = new DelegatingConsumer(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](http://blogs.msdn.com/b/pfxteam/archive/2010/04/04/9990342.aspx) and Copyright (c) Microsoft Corporation.
- This is a streamlined version of [copper](https://github.com/danielcrenna/vault/tree/master/copper), a library I wrote in 2012.
- This library also subsumes the [linger](https://github.com/danielcrenna/vault/tree/master/linger) library for delayed message production on a schedule.## License
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdanielcrenna%2Freactive-pipes.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdanielcrenna%2Freactive-pipes?ref=badge_large)