conduit: Streaming data processing library.

[ conduit, data, library, mit ] [ Propose Tags ] [ Report a vulnerability ]

conduit is a solution to the streaming data problem, allowing for production, transformation, and consumption of streams of data in constant memory. It is an alternative to lazy I/O which guarantees deterministic resource handling, and fits in the same general solution space as enumerator/iteratee and pipes. For a brief tutorial, please see the Data.Conduit module.

Release history:

1.0
Simplified the user-facing interface back to the Source, Sink, and Conduit types, with Producer and Consumer for generic code. Error messages have been simplified, and optional leftovers and upstream terminators have been removed from the external API. Some long-deprecated functions were finally removed.
0.5
The internals of the package are now separated to the .Internal module, leaving only the higher-level interface in the advertised API. Internally, switched to a Leftover constructor and slightly tweaked the finalization semantics.
0.4
Inspired by the design of the pipes package: we now have a single unified type underlying Source, Sink, and Conduit. This type is named Pipe. There are type synonyms provided for the other three types. Additionally, BufferedSource is no longer provided. Instead, the connect-and-resume operator, $$+, can be used for the same purpose.
0.3
ResourceT has been greatly simplified, specialized for IO, and moved into a separate package. Instead of hard-coding ResourceT into the conduit datatypes, they can now live around any monad. The Conduit datatype has been enhanced to better allow generation of streaming output. The SourceResult, SinkResult, and ConduitResult datatypes have been removed entirely.
0.2
Instead of storing state in mutable variables, we now use CPS. A Source returns the next Source, and likewise for Sinks and Conduits. Not only does this take better advantage of GHC's optimizations (about a 20% speedup), but it allows some operations to have a reduction in algorithmic complexity from exponential to linear. This also allowed us to remove the Prepared set of types. Also, the State functions (e.g., sinkState) use better constructors for return types, avoiding the need for a dummy state on completion.
0.1
BufferedSource is now an abstract type, and has a much more efficient internal representation. The result was a 41% speedup on microbenchmarks (note: do not expect speedups anywhere near that in real usage). In general, we are moving towards BufferedSource being a specific tool used internally as needed, but using Source for all external APIs.
0.0
Initial release.

Flags

Automatic Flags
NameDescriptionDefault
nohandlesDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.0, 0.0.0.1, 0.0.0.2, 0.0.1, 0.0.1.1, 0.0.2, 0.0.3, 0.0.4, 0.1.0, 0.1.1, 0.1.1.1, 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.4.0, 0.4.0.1, 0.4.1, 0.4.1.1, 0.4.2, 0.5.0, 0.5.1, 0.5.2, 0.5.2.1, 0.5.2.2, 0.5.2.3, 0.5.2.4, 0.5.2.5, 0.5.2.6, 0.5.2.7, 0.5.3, 0.5.4, 0.5.4.1, 0.5.4.2, 0.5.5, 0.5.6, 1.0.0, 1.0.0.1, 1.0.0.2, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.4.1, 1.0.4.2, 1.0.5, 1.0.5.1, 1.0.6, 1.0.7, 1.0.7.1, 1.0.7.2, 1.0.7.3, 1.0.7.4, 1.0.8, 1.0.9, 1.0.9.1, 1.0.9.2, 1.0.9.3, 1.0.10, 1.0.10.1, 1.0.11, 1.0.11.1, 1.0.12, 1.0.13, 1.0.13.1, 1.0.14, 1.0.15, 1.0.15.1, 1.0.16, 1.0.17, 1.0.17.1, 1.1.0, 1.1.0.1, 1.1.0.2, 1.1.1, 1.1.1.1, 1.1.2, 1.1.2.1, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.2.0, 1.2.0.1, 1.2.0.2, 1.2.1, 1.2.2, 1.2.2.1, 1.2.2.2, 1.2.3, 1.2.3.1, 1.2.4, 1.2.4.1, 1.2.4.2, 1.2.4.3, 1.2.5, 1.2.5.1, 1.2.6, 1.2.6.1, 1.2.6.2, 1.2.6.3, 1.2.6.4, 1.2.6.5, 1.2.6.6, 1.2.7, 1.2.8, 1.2.9, 1.2.9.1, 1.2.10, 1.2.11, 1.2.12, 1.2.12.1, 1.2.13, 1.2.13.1, 1.3.0, 1.3.0.1, 1.3.0.2, 1.3.0.3, 1.3.1, 1.3.1.1, 1.3.1.2, 1.3.2, 1.3.2.1, 1.3.3, 1.3.4, 1.3.4.1, 1.3.4.2, 1.3.4.3, 1.3.5, 1.3.6
Dependencies base (>=4.3 && <5), bytestring (>=0.9), containers, lifted-base (>=0.1), monad-control (>=0.3.1 && <0.4), resourcet (>=0.4.3 && <0.5), text (>=0.11), transformers (>=0.2.2 && <0.4), transformers-base (>=0.4.1 && <0.5), void (>=0.5.5 && <0.6) [details]
License BSD-3-Clause
Author Michael Snoyman
Maintainer michael@snoyman.com
Category Data, Conduit
Home page http://github.com/snoyberg/conduit
Source repo head: git clone git://github.com/snoyberg/conduit.git
Uploaded by MichaelSnoyman at 2013-02-27T20:06:07Z
Distributions Arch:1.3.6, Debian:1.3.2, Fedora:1.3.5, FreeBSD:1.2.5, LTSHaskell:1.3.6, NixOS:1.3.6, Stackage:1.3.6, openSUSE:1.3.6
Reverse Dependencies 598 direct, 4130 indirect [details]
Downloads 441041 total (1195 in the last 30 days)
Rating 2.25 (votes: 9) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]