The D Programming Language

Compress/decompress data using the  zlib library.

References:
Wikipedia
License
Boost License 1.0.
Authors
Walter Bright
Source:
std/zlib.d

class  ZlibException: object.Exception;

Errors throw a  ZlibException.


uint  adler32(uint adler, const(void)[] buf);

Compute the Adler32 checksum of the data in buf[]. adler is the starting value when computing a cumulative checksum.


uint  crc32(uint crc, const(void)[] buf);

Compute the CRC32 checksum of the data in buf[]. crc is the starting value when computing a cumulative checksum.


const(void)[]  compress(const(void)[] srcbuf, int level);
const(void)[]  compress(const(void)[] buf);

Compresses the data in srcbuf[] using compression level level. The default value for level is 6, legal values are 1..9, with 1 being the least compression and 9 being the most. Returns the compressed data.


void[]  uncompress(void[] srcbuf, size_t destlen = 0u, int winbits = 15);

Decompresses the data in srcbuf[].

Parameters
void[] srcbuf buffer containing the compressed data.
size_t destlen size of the uncompressed data. It need not be accurate, but the decompression will be faster if the exact size is supplied.
int winbits the base two logarithm of the maximum window size.
Returns
the decompressed data.

enum  HeaderFormat: int;

the header format the compressed stream is wrapped in


a standard zlib header


a  gzip file format header


used when decompressing. Try to automatically detect the stream format by looking at the data


class  Compress;

Used when the data to be compressed is not all in one buffer.


this(int level, HeaderFormat header = HeaderFormat.deflate);
this(HeaderFormat header = HeaderFormat.deflate);

Construct. level is the same as for D.zlib.compress(). header can be used to make a gzip compatible stream.


const(void)[]  compress(const(void)[] buf);

Compress the data in buf and return the compressed data. The buffers returned from successive calls to this should be concatenated together.


void[]  flush(int mode = Z_FINISH);

Compress and return any remaining data. The returned data should be appended to that returned by compress().

Parameters
int mode one of the following:
Z_SYNC_FLUSH
Syncs up flushing to the next byte boundary. Used when more data is to be compressed later on.
Z_FULL_FLUSH
Syncs up flushing to the next byte boundary. Used when more data is to be compressed later on, and the decompressor needs to be restartable at this point.
Z_FINISH
(default) Used when finished compressing the data.

class  UnCompress;

Used when the data to be decompressed is not all in one buffer.


this(uint destbufsize);
this(HeaderFormat format = HeaderFormat.determineFromData);

Construct. destbufsize is the same as for D.zlib.uncompress().


const(void)[]  uncompress(const(void)[] buf);

Decompress the data in buf and return the decompressed data. The buffers returned from successive calls to this should be concatenated together.


void[]  flush();

Decompress and return any remaining data. The returned data should be appended to that returned by uncompress(). The UnCompress object cannot be used further.