Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Conduit.Zlib
Description
Streaming compression and decompression using conduits.
Parts of this code were taken from zlib-enum and adapted for conduits.
Synopsis
- compress :: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) => Int -> WindowBits -> ConduitT ByteString ByteString m ()
- decompress :: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) => WindowBits -> ConduitT ByteString ByteString m ()
- gzip :: forall (m :: Type -> Type). (MonadThrow m, PrimMonad m) => ConduitT ByteString ByteString m ()
- ungzip :: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) => ConduitT ByteString ByteString m ()
- compressFlush :: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) => Int -> WindowBits -> ConduitT (Flush ByteString) (Flush ByteString) m ()
- decompressFlush :: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) => WindowBits -> ConduitT (Flush ByteString) (Flush ByteString) m ()
- multiple :: forall (m :: Type -> Type) a. Monad m => ConduitT ByteString a m () -> ConduitT ByteString a m ()
- newtype WindowBits = WindowBits Int
- defaultWindowBits :: WindowBits
Conduits
Arguments
:: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) | |
=> Int | Compression level |
-> WindowBits | Zlib parameter (see the zlib-bindings package as well as the zlib C library) |
-> ConduitT ByteString ByteString m () |
Compress (deflate) a stream of ByteString
s. The WindowBits
also control
the format (zlib vs. gzip).
Arguments
:: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) | |
=> WindowBits | Zlib parameter (see the zlib-bindings package as well as the zlib C library) |
-> ConduitT ByteString ByteString m () |
Decompress (inflate) a stream of ByteString
s. For example:
sourceFile "test.z" $= decompress defaultWindowBits $$ sinkFile "test"
gzip :: forall (m :: Type -> Type). (MonadThrow m, PrimMonad m) => ConduitT ByteString ByteString m () Source #
Gzip compression with default parameters.
ungzip :: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) => ConduitT ByteString ByteString m () Source #
Gzip decompression with default parameters.
Flushing
Arguments
:: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) | |
=> Int | Compression level |
-> WindowBits | Zlib parameter (see the zlib-bindings package as well as the zlib C library) |
-> ConduitT (Flush ByteString) (Flush ByteString) m () |
Same as compress
, but allows you to explicitly flush the stream.
Arguments
:: forall (m :: Type -> Type). (PrimMonad m, MonadThrow m) | |
=> WindowBits | Zlib parameter (see the zlib-bindings package as well as the zlib C library) |
-> ConduitT (Flush ByteString) (Flush ByteString) m () |
Same as decompress
, but allows you to explicitly flush the stream.
Decompression combinators
multiple :: forall (m :: Type -> Type) a. Monad m => ConduitT ByteString a m () -> ConduitT ByteString a m () Source #
The standard decompress
and ungzip
functions will only decompress a
single compressed entity from the stream. This combinator will exhaust the
stream completely of all individual compressed entities. This is useful for
cases where you have a concatenated archive, e.g. cat file1.gz file2.gz >
combined.gz
.
Usage:
sourceFile "combined.gz" $$ multiple ungzip =$ consume
This combinator will not fail on an empty stream. If you want to ensure that at least one compressed entity in the stream exists, consider a usage such as:
sourceFile "combined.gz" $$ (ungzip >> multiple ungzip) =$ consume
Since: 1.1.10
Re-exported from zlib-bindings
newtype WindowBits #
Constructors
WindowBits Int |
Instances
Generic WindowBits | |||||
Defined in Codec.Compression.Zlib.Stream Associated Types
| |||||
Show WindowBits | |||||
Defined in Codec.Compression.Zlib.Stream Methods showsPrec :: Int -> WindowBits -> ShowS show :: WindowBits -> String showList :: [WindowBits] -> ShowS | |||||
Eq WindowBits | |||||
Defined in Codec.Compression.Zlib.Stream | |||||
Ord WindowBits | |||||
Defined in Codec.Compression.Zlib.Stream Methods compare :: WindowBits -> WindowBits -> Ordering (<) :: WindowBits -> WindowBits -> Bool (<=) :: WindowBits -> WindowBits -> Bool (>) :: WindowBits -> WindowBits -> Bool (>=) :: WindowBits -> WindowBits -> Bool max :: WindowBits -> WindowBits -> WindowBits min :: WindowBits -> WindowBits -> WindowBits | |||||
type Rep WindowBits | |||||
Defined in Codec.Compression.Zlib.Stream type Rep WindowBits = D1 ('MetaData "WindowBits" "Codec.Compression.Zlib.Stream" "zlib-0.7.1.0-K2JqV8stAOv2ULGSOE7Ppp" 'True) (C1 ('MetaCons "WindowBits" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) |