awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Cysharp avatar

Cysharp/R3

0
View on GitHub↗
3,616 stars·160 forks·C#·mit·21 views

R3

R3 is a reactive extensions library and asynchronous data pipeline framework. It provides a system for composing asynchronous data streams, managing reactive state, and coordinating event sequences using observable patterns.

The project distinguishes itself with a deterministic testing toolkit that mocks time and frame updates to ensure reproducible unit tests for asynchronous logic. It also includes observability tools for tracking active subscriptions and generating stack traces to identify memory leaks, alongside centralized exception routing for pipeline recovery.

The framework covers a broad surface of reactive capabilities, including stream composition, pipeline transformations, and thread-aware scheduling. It provides utilities to convert standard events, property changes, and game engine signals into unified reactive streams, and includes data binding logic to link reactive properties to command execution.

Features

  • Observable Streams - Provides core architectural patterns for modeling and composing asynchronous, push-based observable data streams.
  • Reactive Stream Architectures - Provides an architectural framework for composing and transforming asynchronous event sequences into data pipelines.
  • Reactive Programming - Provides a comprehensive toolkit for building asynchronous data pipelines using reactive programming patterns.
  • Event-to-Stream Conversions - Transforms standard event triggers into reactive streams to compose them with other asynchronous data sequences.
  • Game Engine Event Streams - Converts engine-specific triggers, physics loops, and frame updates into reactive data streams for game logic coordination.
  • Deterministic Time Simulation - Simulates time passage and frame updates with mock providers to ensure deterministic testing of asynchronous logic.
  • Reactive Extensions - Implements a library for composing asynchronous and event-based programs using observable sequences.
  • Deterministic Testing Toolkits - Ships a toolkit for mocking time and frames to perform reproducible unit tests on asynchronous logic.
  • Data Transformation Pipelines - Implements linear sequences of pure functions to transform, filter, and combine asynchronous event sequences.
  • Property-to-Stream Conversions - Turns property change notifications into reactive streams to trigger actions whenever model state changes.
  • Async Data Pipeline Frameworks - Provides a framework for transforming, filtering and coordinating streams of data across different threading models.
  • UI Thread Schedulers - Coordinates the delivery of asynchronous data streams specifically to the main UI thread or engine frames.
  • Disposable Observers - Implements a hierarchical disposal pattern to automatically release subscriptions and prevent memory leaks.
  • Time and Frame Providers - Decouples time and frame updates through abstract providers to allow deterministic simulation during unit testing.
  • Game State Management - Synchronizes game engine frame updates and physics loops with reactive logic to coordinate in-game behavior.
  • Task Interoperability - Converts single-value asynchronous operations into tasks to ensure interoperability with standard async-await patterns.
  • UI Data Binding - Links reactive properties to command logic to automatically update interface states based on live data changes.
  • Event-to-Observable Conversion - Converts standard event triggers and property changes into observables to simplify complex asynchronous workflows.
  • Exception Handling Pipelines - Captures unexpected errors in the data pipeline and routes them to a specified handler for logging and recovery.
  • Pipeline Exception Routing - Provides centralized exception routing to intercept and recover from unhandled errors within reactive pipelines.
  • Reactive State Management - Provides a system for binding properties and events to reactive pipelines to synchronize state and logic.
  • Subscription Lifecycle Monitoring - Monitors active data streams and generates stack traces to identify and resolve memory leaks.
  • Memory Leak Detection - Tracks active data subscriptions and generates stack traces to identify and resolve memory leaks in event pipelines.
  • Virtual Time Testing - Provides testing utilities that decouple event emission and frame updates from the system clock using mock providers.
  • UI Framework Synchronization - Synchronizes timing and frame updates with the host user interface thread to prevent rendering glitches.

Star history

Star history chart for cysharp/r3Star history chart for cysharp/r3

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does cysharp/r3 do?

R3 is a reactive extensions library and asynchronous data pipeline framework. It provides a system for composing asynchronous data streams, managing reactive state, and coordinating event sequences using observable patterns.

What are the main features of cysharp/r3?

The main features of cysharp/r3 are: Observable Streams, Reactive Stream Architectures, Reactive Programming, Event-to-Stream Conversions, Game Engine Event Streams, Deterministic Time Simulation, Reactive Extensions, Deterministic Testing Toolkits.

Which projects share features with cysharp/r3?

Projects with overlapping indexed features include: neuecc/unirx — UniRx is a reactive programming library and event orchestration framework for the Unity engine. It implements… reactivex/rxswift — RxSwift is a reactive programming library for Swift that provides a framework for managing push-based data flows and… cyclejs/cyclejs — Cycle.js is a functional reactive web framework and observable-driven UI library used for building web applications.… effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions… amitshekhariitbhu/rxjava2-android-samples — This repository is a collection of practical implementation patterns and reference samples for using RxJava 2 to… kaushikgopal/rxjava-android-samples — This project is a sample library and implementation guide for using RxJava to manage asynchronous data streams and…

Projects sharing features with R3

These projects share indexed features with R3. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • neuecc/unirxneuecc avatar

    neuecc/UniRx

    7,326View on GitHub↗

    UniRx is a reactive programming library and event orchestration framework for the Unity engine. It implements observable sequences and functional operators to transform callbacks, coroutines, and engine events into cancellable data streams for unified asynchronous event handling. The library provides a reactive UI binding system that synchronizes data models with user interface elements to trigger automatic visual updates. It includes a type-based publication and subscription system to route messages between producers and consumers, decoupling internal game components. The framework covers a

    C#
    View on GitHub↗7,326
  • reactivex/rxswiftReactiveX avatar

    ReactiveX/RxSwift

    24,648View on GitHub↗

    RxSwift is a reactive programming library for Swift that provides a framework for managing push-based data flows and composing asynchronous, event-based programs. It utilizes observable sequences and functional operators to transform and filter asynchronous sequences through a declarative approach. The library is distinguished by its ability to link asynchronous data streams directly to user interface elements, automating view updates via reactive data binding. It includes specialized tools for tracking UI control properties and events on the main thread, as well as the ability to encapsulate

    Swift
    View on GitHub↗24,648
  • cyclejs/cyclejsC

    cyclejs/cyclejs

    10,229View on GitHub↗

    Cycle.js is a functional reactive web framework and observable-driven UI library used for building web applications. It employs a reactive stream architecture that treats the document object model and side effects as continuous data streams, coordinating state and logic through a functional cycle. The framework distinguishes itself by isolating side effects from core logic using a system of drivers. This architecture maps external events to internal commands through a symmetric input-output pipeline, ensuring that the application remains a cycle of pure functions. The project provides capabi

    TypeScript
    View on GitHub↗10,229
  • effector/effectoreffector avatar

    effector/effector

    4,837View on GitHub↗

    Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem

    TypeScriptbusiness-logiceffectorevent-driven
    View on GitHub↗4,837
Compare all 30 related projects→