pipes: Compositional pipelines
"Iteratees done right". This library implements iteratees/enumerators/enumeratees simply and elegantly, using different naming conventions.
Advantages over traditional iteratee implementations:
Simpler semantics: There is only one data type (
Pipe
), two primitives (await
andyield
), and only one way to composePipe
s (.
). In fact, this library implements its entire behavior using itsMonad
andCategory
instances and enforces their laws strictly!Clearer naming conventions: Enumeratees are called
Pipe
s, Enumerators areProducer
s, and Iteratees areConsumer
s.Producer
s andConsumer
s are just type synonyms forPipe
s with either the input or output end closed.Pipes are Categories: You compose them using ordinary composition.
Intuitive: Pipe composition is easier to reason about because it is a true
Category
. Composition works seamlessly and you don't have to worry about restarting iteratees, feeding new input, etc. "It just works".Vertical concatenation works flawlessly on everything: (
>>
) concatenatesPipe
s, but since everything is aPipe
, you can use it to concatenateProducer
s,Consumer
s, and even intermediatePipe
stages. Vertical Concatenation always works the way you expect, picking up where the previousPipe
left off.
Check out Control.Pipe.Tutorial for a copious introductory tutorial and Control.Pipe for the actual implementation.
Modules
[Index]
Downloads
- pipes-2.1.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 1.0, 1.0.1, 1.0.2, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0, 2.5.0, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 4.0.0, 4.0.1, 4.0.2, 4.1.0, 4.1.1, 4.1.2, 4.1.3, 4.1.4, 4.1.5, 4.1.6, 4.1.7, 4.1.8, 4.1.9, 4.2.0, 4.3.0, 4.3.1, 4.3.2, 4.3.3, 4.3.4, 4.3.5, 4.3.6, 4.3.7, 4.3.8, 4.3.9, 4.3.10, 4.3.11, 4.3.12, 4.3.13, 4.3.14, 4.3.15, 4.3.16 |
---|---|
Dependencies | base (>=4 && <5), index-core, transformers, void [details] |
Tested with | ghc ==7.4.1 |
License | BSD-3-Clause |
Copyright | 2012 Gabriel Gonzalez |
Author | Gabriel Gonzalez |
Maintainer | Gabriel439@gmail.com |
Category | Control, Enumerator |
Bug tracker | mailto:Gabriel439@gmail.com |
Source repo | head: git clone https://github.com/Gabriel439/Haskell-Pipes-Library |
Uploaded | by GabrielGonzalez at 2012-07-01T22:50:48Z |
Distributions | Arch:4.3.16, Debian:4.3.14, Fedora:4.3.16, LTSHaskell:4.3.16, NixOS:4.3.16, Stackage:4.3.16 |
Reverse Dependencies | 188 direct, 172 indirect [details] |
Downloads | 105142 total (346 in the last 30 days) |
Rating | 2.75 (votes: 10) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2016-06-04 [all 1 reports] |