The conduit package

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 tutorial, please visit https://haskell.fpcomplete.com/user/snoyberg/library-documentation/conduit-overview.