# reactive-extensions/rx.net

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/reactive-extensions-rx-net).**

7,153 stars · 790 forks · C# · MIT

## Links

- GitHub: https://github.com/Reactive-Extensions/Rx.NET
- Homepage: http://reactivex.io
- awesome-repositories: https://awesome-repositories.com/repository/reactive-extensions-rx-net.md

## Description

Rx.NET is a reactive programming framework and library for the .NET ecosystem used to compose asynchronous and event-based programs. It provides an observable data stream API that treats live sequences of information as collections, allowing developers to coordinate asynchronous event workflows using a declarative syntax.

The project functions as an extension of language integrated query patterns to asynchronous streams. This allows for the filtering and transformation of asynchronous notifications and event sequences through the application of query operators.

The framework covers asynchronous event processing and real-time data streaming. It enables the coordination of event-driven workflows and the integration of non-blocking APIs to manage data flows and state changes.

## Tags

### Part of an Awesome List

- [Functional Reactive Programming](https://awesome-repositories.com/f/awesome-lists/devtools/functional-reactive-programming.md) — Provides a comprehensive framework for functional reactive programming, asynchronous streaming, and reactive data flows in .NET.
- [Functional Programming](https://awesome-repositories.com/f/awesome-lists/devtools/functional-programming.md) — Core reactive extensions library for asynchronous programming.

### Software Engineering & Architecture

- [Functional Reactive Programming Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/functional-reactive-programming-frameworks.md) — Provides a comprehensive framework for composing asynchronous and event-based programs using functional reactive programming patterns in .NET.
- [Observer Patterns](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/observer-patterns.md) — Implements the observer pattern where subscribers register callbacks to receive notifications of data changes and events.
- [Declarative Stream Processing](https://awesome-repositories.com/f/software-engineering-architecture/declarative-stream-processing.md) — Apply standard query operators to asynchronous enumerables to process data streams in a declarative manner. ([source](https://github.com/reactive-extensions/rx.net#readme))
- [Declarative Stream Logic](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/engineering-best-practices/code-craftsmanship-standards/composable-logic-patterns/declarative-stream-logic.md) — Provides high-level operators to define model logic through the declarative composition of asynchronous value sequences.
- [Functional Stream Composers](https://awesome-repositories.com/f/software-engineering-architecture/event-sourcing/event-stream-merging/functional-stream-composers.md) — Offers functional stream composers to filter, transform, and merge asynchronous event streams into unified sequences. ([source](https://github.com/reactive-extensions/rx.net#readme))
- [Observable Streams](https://awesome-repositories.com/f/software-engineering-architecture/flow-modularization/modular-flow-composition/observable-streams.md) — Implements observable stream primitives for modeling and composing complex event-based data flows.
- [Execution Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/execution-control/concurrency-controlled-schedulers/execution-schedulers.md) — Provides execution schedulers that decouple event notification logic from the threading and timing of the execution environment.
- [Subscription Lifecycles](https://awesome-repositories.com/f/software-engineering-architecture/observer-patterns/disposable-observers/subscription-lifecycles.md) — Implements a unified interface to track and clean up active subscriptions, preventing memory leaks in asynchronous streams.
- [Push-Pull Duality](https://awesome-repositories.com/f/software-engineering-architecture/push-based-data-stream-frameworks/push-pull-duality.md) — Unifies the behavior of lazy pull-based collections and eager push-based event streams into a consistent API.

### Data & Databases

- [Reactive Stream Processing](https://awesome-repositories.com/f/data-databases/reactive-stream-processing.md) — Allows live sequences of information to be treated as collections for real-time event response using a declarative model. ([source](https://github.com/reactive-extensions/rx.net#readme))
- [Real-Time Data Streaming](https://awesome-repositories.com/f/data-databases/real-time-data-streaming.md) — Implements a platform for processing and delivering live data streams in real-time through filtering and transformation.
- [Real-Time Event Processing](https://awesome-repositories.com/f/data-databases/real-time-event-processing.md) — Enables continuous computation of results from event streams to keep applications responsive.
- [Collection Operators](https://awesome-repositories.com/f/data-databases/json-patching/transformation-operations/collection-operators.md) — Provides functional primitives and operators for manipulating and aggregating enumerable data collections. ([source](https://github.com/reactive-extensions/rx.net#readme))

### Development Tools & Productivity

- [Event-Driven Workflows](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/workflow-orchestration/event-driven-workflows.md) — Implements execution logic triggered by asynchronous message events and state changes to coordinate complex workflows.

### Programming Languages & Runtimes

- [Asynchronous Streams](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-streams.md) — Provides language constructs for processing asynchronous collections of data without blocking execution.
- [Functional Pipeline Operators](https://awesome-repositories.com/f/programming-languages-runtimes/functional-pipeline-operators.md) — Implements functional pipeline operators that pass the output of one transformation function as the input to the next.
- [Asynchronous Processing](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-processing/asynchronous-processing.md) — Enables non-blocking execution and the handling of concurrent operations when processing observable sequences. ([source](https://github.com/reactive-extensions/rx.net#readme))
- [.NET Reactive Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/net-reactive-extensions.md) — Acts as the primary library for composing asynchronous and event-based programs using observable sequences in .NET.
- [Non-Blocking Suspension Points](https://awesome-repositories.com/f/programming-languages-runtimes/code-block-execution/non-blocking-suspension-points.md) — Uses non-blocking suspension points to yield control to a scheduler during I/O waits, keeping threads active.
