zlib-conduit-1.0.0: Streaming compression/decompression via conduits.

Safe HaskellNone

Data.Conduit.Zlib

Contents

Description

Streaming compression and decompression using conduits.

Parts of this code were taken from zlib-enum and adapted for conduits.

Synopsis

Conduits

compressSource

Arguments

:: (MonadUnsafeIO m, MonadThrow m) 
=> Int

Compression level

-> WindowBits

Zlib parameter (see the zlib-bindings package as well as the zlib C library)

-> Conduit ByteString m ByteString 

Compress (deflate) a stream of ByteStrings. The WindowBits also control the format (zlib vs. gzip).

decompressSource

Arguments

:: (MonadUnsafeIO m, MonadThrow m) 
=> WindowBits

Zlib parameter (see the zlib-bindings package as well as the zlib C library)

-> Conduit ByteString m ByteString 

Decompress (inflate) a stream of ByteStrings. For example:

    sourceFile "test.z" $= decompress defaultWindowBits $$ sinkFile "test"

gzip :: (MonadThrow m, MonadUnsafeIO m) => Conduit ByteString m ByteStringSource

Gzip compression with default parameters.

ungzip :: (MonadUnsafeIO m, MonadThrow m) => Conduit ByteString m ByteStringSource

Gzip decompression with default parameters.

Flushing

compressFlushSource

Arguments

:: (MonadUnsafeIO m, MonadThrow m) 
=> Int

Compression level

-> WindowBits

Zlib parameter (see the zlib-bindings package as well as the zlib C library)

-> Conduit (Flush ByteString) m (Flush ByteString) 

Same as compress, but allows you to explicitly flush the stream.

decompressFlushSource

Arguments

:: (MonadUnsafeIO m, MonadThrow m) 
=> WindowBits

Zlib parameter (see the zlib-bindings package as well as the zlib C library)

-> Conduit (Flush ByteString) m (Flush ByteString) 

Same as decompress, but allows you to explicitly flush the stream.

Re-exported from zlib-bindings

data WindowBits

Constructors

WindowBits Int