streaming-utils: http, attoparsec, pipes and conduit utilities for the streaming libraries

[ bsd3, data, library, pipes, streaming ] [ Propose Tags ]

Experimental http-client, aeson, attoparsec and pipes utilities for use with the streaming and streaming bytestring libraries. They generally closely follow similarly named modules in the pipes 'ecosystem', using similar function names, where possible.

Thus, for example, using the http client module, we might number the lines of a remote document thus:

import Streaming
import Streaming.Prelude (with, each, next, for)
import qualified Streaming.Prelude as S
import Data.ByteString.Streaming.HTTP
import qualified Data.ByteString.Streaming.Char8 as Q

main = runResourceT
       $ Q.putStrLn
       $ Q.unlines
       $ interleaves numbers
       & Q.lines
       $ simpleHTTP ""

numbers :: Monad m => Stream (Q.ByteString m) m r
numbers = with (S.enumFrom (1::Int)) $ \n -> Q.pack (each (show n ++ ".  "))

The memory requirements of this Prelude-ish program will not be affected by the fact that, say, the third 'line' is 10 terabytes long.

This package of course heaps together a number of dependencies, as it seemed best not to spam hackage with numerous packages. If it seems reasonable to detach some of it, please raise an issue on the github page.

Questions about usage can be raised as issues, or addressed to the pipes list.

Dependencies aeson (>0.8 && <, attoparsec (>=, base (>=4.7 && <4.9), bytestring (>0.10.0 && <0.11.0), http-client (>=0.2 && <0.5), http-client-tls (<0.3), json-stream (==0.4.0.*), mtl (==2.2.*), pipes (>=4.0 && <4.2), resourcet (>1.0 && <1.2), streaming (>= && <, streaming-bytestring (>= && <, transformers (==0.4.*) [details]
License BSD-3-Clause
Author michaelt
Category Data, Pipes, Streaming
Home page
Bug tracker
Source repo head: git clone
Uploaded by MichaelThompson at Sat Jan 2 03:56:05 UTC 2016
Distributions NixOS:
Downloads 2907 total (15 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees