concurrent-machines: Concurrent networked stream transducers

[ bsd3, concurrency, control, library ] [ Propose Tags ]

A simple use-case for this library is to run the stages of a pipelined streaming computation concurrently. If data is streaming through multiple processing stages, you might build a machine like

step1 >~> step2 >~> step3

The >~> operator connects the machines on either side with a one-element buffer. This means that data is pulled from upstream sources eagerly (perhaps pulling one more value than will be consumed by downstream), but it also means that each stage can be working simultaneously, increasing throughput of the entire pipeline.

A few small examples are available in the examples directory of the source repository.

Versions [faq],,, 0.2.0, 0.2.1, 0.2.3,,,, 0.3.0, 0.3.1,,,
Dependencies async (>=2.0.1 && <2.1), base (>=4.6 && <5), containers (==0.5.*), lifted-async (>=0.1 && <0.8), machines (==0.5.*), monad-control (==1.0.*), semigroups (>=0.8 && <0.17), time (>=1.4 && <1.6), transformers (==0.4.*), transformers-base (==0.4.*) [details]
License BSD-3-Clause
Copyright Copyright (C) 2014 Anthony Cowley
Author Anthony Cowley
Category Concurrency, Control
Source repo head: git clone
Uploaded by AnthonyCowley at Wed Aug 19 17:06:28 UTC 2015
Distributions NixOS:
Downloads 4253 total (106 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2015-08-19 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees