BQuarp

A library for Distributed Reactive Programming (DRP) with flexible consistency guarantees drawing from Quarp. Features the familiar behaviours and event streams in the spirit of FRP as two signal abstractions. Provides fifo (absence of guarantee), causality, glitch-freedom and time-synchronization (i.e. clock difference restriction).

Offers convenient deployment of small reactive programs to nodes in the network.

Generalizes and adapts Quarp to:

Can be easily extended with new guarantees if so desired by adding a clause to all functions in the Context module.

Built on top of and integrated with Observables Extended, a Reactive Extensions library for Elixir.

This library was developed mainly for academic purposes, namely for exploring distributed reactive programming (for the IoT) with consistency guarantees.

Installation

If available in Hex, the package can be installed by adding bquarp to your list of dependencies in mix.exs:

def deps do
  [
    {:bquarp, "~> 0.4.1"}
  ]
end