A reactive event handling library for Elixir, inspired by Elm and Reactive Extensions, implementing asynchronous collections.
Reaxive is a reactive event handling library for Elixir, inspired by Elm and Reactive Extensions. It implements asynchronous collections to process event streams with combinators that build pipelines, enabling concurrent and efficient data flow in Elixir applications.
Elixir developers building event-driven, concurrent applications who need reactive programming patterns similar to Reactive Extensions.
Developers choose Reaxive for its familiar Rx-style combinators, automatic process management to prevent leaks, and seamless integration with Elixir's concurrency model, offering a functional approach to reactive event handling.
Reactive Extensions for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Follows naming schemes from Reactive Extensions, RxScala, and RxJS, with semantics explained via marble diagrams, making it easy for developers with Rx experience to adopt.
Adheres to protocols to automatically stop processes, preventing resource leaks, as emphasized in the README for system safety.
Builds pipelines that spawn processes on-demand, enabling efficient and concurrent data flow in Elixir applications, as described in the usage section.
Supports cancellable generators for controlled termination of event streams, introduced in v0.0.3, enhancing flexibility in stream management.
Implements José Valim's async operator to break synchronous pipelines into asynchronous pieces, improving concurrency, as noted in the history section.
The README lists adding more combinators as a future task, indicating the library is not fully featured and may lack some Rx operators.
Future development includes developing a concept for integrating with OTP Supervision, suggesting current lack of built-in supervision support.
With version 0.1.0 and a history of major reworks, the library may have undiscovered bugs or breaking changes, as hinted in the history section.
For basic event handling, the Rx paradigm adds overhead compared to Elixir's simpler tools like GenStage, making it overkill for straightforward tasks.