Reaxive - a Reactive Extension inspired library for Elixir v0.1.0

Modules summary

Reaxive
Reaxive.CompositeSubscription

Implements a subscription which may have a list of embedded subscriptions. If this outer subscription is unsubscribed, so are the inner subscriptions

Reaxive.Generator

This module collects functions for generating a sequence of events. These generators are always the roots of the event sequence network, they do not subscribe to other sequences. However, often they use other data sources such a stream, an IO connection or the like

Reaxive.MultiAssignSubscription

Implements a subscription which may have an internal subscription which is re-assignable

Reaxive.Rx

This module implements the combinator on reactive streams of events

Reaxive.Rx.Impl

Implements the Rx protocols and handles the contract. This module is internally used as the workhorse for most Rx combinators. However, any user should not rely on inner workings but use only Reaxive.Rx., since this module is subject to change

Reaxive.Rx.Impl.Rx_t

Encapsulates a Rx_Impl process instance

Reaxive.Rx.Lazy

Datastructure to encode a lazy thunk

Reaxive.Subscription
Reaxive.Subscription.State

Encapsulates the internal state of subscriptions and implements all functions of the family of subscription (simple, composite, and multi-assign)

Reaxive.SubscriptionBehaviour

Behaviour for subscriptions with default implementations which does not have any subelements

Reaxive.Supervisor
Reaxive.Sync

Implements the Reaxive Extensions as synchronous function composition similar to Elixir’s Enum and Stream libraries, but adheres to the Observable protocol

Reaxive.Trace

This module provides some convenience functions for tracing. It uses the dbg module from Erlang to receive relevant messages

Protocols summary

Observable

Defines the subscribe function to subscribe to a calculation. The observer must follow the Observer protocol to be signalled about new values, errors and the completion of the calculation

Observer

Defines the functions for providing a new value, to signal an error and to signal the completion of the observed calculation

Runnable

Defines a protocol for starting a sequence of events. The basic idea is that only after calling run the sending of events starts, at least for “cold” observables, which need to be started explicitely

Subscription

Defines the protocol for subscriptions providing a little bit more functionality as an Disposable from .NET-Framework