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

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

This package includes http-client, aeson, attoparsec, zlib and pipes utilities for use with the streaming and streaming bytestring libraries. The modules 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)
import qualified Streaming.Prelude as S
import Data.ByteString.Streaming.HTTP
import qualified Data.ByteString.Streaming.Char8 as Q

main =  runResourceT $ do
   let output = numbers <|> Q.lines (simpleHTTP "http://lpaste.net/raw/146542")
   Q.putStrLn $ Q.unlines output

numbers :: Monad m => Stream (Q.ByteString m) m ()
numbers = with (each [1..]) $ \n -> Q.pack (each (show n ++ ".  "))
-- ["1. ", "2. " ..]

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.

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.1.1, 0.1.2.0, 0.1.2.2, 0.1.3.0, 0.1.4.0, 0.1.4.1, 0.1.4.2, 0.1.4.3, 0.1.4.4, 0.1.4.5, 0.1.4.6, 0.1.4.7, 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0, 0.2.4.0, 0.2.5.0
Dependencies aeson (>0.8 && <1.6), attoparsec (>0.13.0.0 && <0.14), base (>=4.8 && <5.0), bytestring (>0.10 && <0.11), http-client (>=0.2 && <0.7), http-client-tls, json-stream (>0.4 && <0.5), mtl (>=2.2 && <2.3), network, network-simple, pipes (>=4.0 && <4.4), resourcet (>1.0 && <1.3), streaming (>=0.2 && <0.3), streaming-bytestring (>=0.1 && <0.2), streaming-commons (>0.2 && <0.3), transformers (>=0.4 && <0.6) [details]
License BSD-3-Clause
Author michaelt
Maintainer chessai1996@gmail.com
Revised Revision 1 made by chessai at 2020-09-11T00:59:09Z
Category Data, Pipes, Streaming
Home page https://github.com/michaelt/streaming-utils
Bug tracker https://github.com/michaelt/streaming-utils/issues
Source repo head: git clone https://github.com/michaelt/streaming-utils
Uploaded by chessai at 2019-02-14T00:07:03Z
Distributions
Reverse Dependencies 9 direct, 2 indirect [details]
Downloads 12090 total (76 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-02-14 [all 1 reports]