streaming-utils: http, attoparsec, pipes and other utilities for the streaming libraries
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
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.
Properties
Versions | 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.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0, 0.2.4.0, 0.2.5.0, 0.2.6.0 |
---|---|
Change log | None available |
Dependencies | aeson (>0.8 && <1.5), 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 |
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:06:53Z |
Modules
[Index] [Quick Jump]
- Data
- Attoparsec
- ByteString
- ByteString
- Attoparsec
- Streaming
Downloads
- streaming-utils-0.2.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees