Flux
Flux is intended to be an arrowized Haskell library which emphasises concurrency.
At the core of Flux is three actors, implemented as Monadic Stream
Functions: Producer, Flux and Consumer.
- A
Producer igenerates values of typei - A
Flux i ois a treatment which turns a value ofiinto a value ofo - A
Consumer ohandle values of typeo
Flux provides several functions to create new concurrent tasks using those
components. To connect these tasks together, it introduces two types: Source
and Sink.
- A
Source aidentifies a concurrent tasks which produces values of a typea - A
Sink aidentifies a concurrent tasks which consumes values of a typea
Finally, the Flux arrow is implemented such that it tries to leverages Haskell
concurrent-capabilities, in particular in its Applicative and Arrow
instances.