A Redux implementation built with RxJS that provides reactive streams for state and actions.
rx-redux is a state management library that reimplements Redux using RxJS observables. It provides the same API as Redux but adds reactive streams for state and actions, allowing developers to build applications with fully reactive data flow. The project solves the challenge of integrating Redux with reactive programming patterns by offering built-in observable interfaces.
JavaScript developers already using Redux who want to adopt reactive programming patterns with RxJS, or those building universal/isomorphic applications that benefit from stream-based state management.
Developers choose rx-redux because it maintains full Redux compatibility while adding first-class support for RxJS observables, enabling more declarative handling of async logic and state changes. Its reactive approach simplifies complex data flows and middleware design compared to standard Redux.
A reimplementation of redux using RxJS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements all standard Redux APIs, allowing drop-in replacement in existing projects without modifying reducers or actions, as stated in the README's feature list.
Provides state$ as an Observable for continuous state monitoring and dispatcher$ for action dispatching, simplifying complex data flows and enabling declarative programming.
Encourages middleware that returns Observables instead of imperative handling, making asynchronous operations more manageable and easing universal app development, as shown in examples.
Designed to simplify building isomorphic JavaScript applications through reactive patterns, highlighted in the README's examples and philosophy.
The README lists WIP items like testing Rx projects, Hot Module Replacement, and redux-devtools support, indicating gaps in tooling and community adoption.
Requires proficiency in both Redux and RxJS, which can be a barrier for teams not familiar with reactive programming, beyond standard Redux's learning curve.
Adds RxJS as a dependency on top of Redux, potentially bloating the application if reactive features aren't fully utilized or necessary.