The zlib library is a general purpose data compression library. The code is thread safe, assuming that
the standard library functions used are thread safe, such as memory allocation routines. It provides in-
memory compression and decompression functions, including integrity checks of the uncompressed data.
This version of the library supports only one compression method (deflation) but other algorithms may be
added later with the same stream interface.
Compression can be done in a single step if the buffers are large enough or can be done by repeated calls
of the compression function. In the latter case, the application must provide more input and/or consume
the output (providing more output space) before each call.
The library also supports reading and writing files in gzip(1) (.gz) format with an interface similar to
that of stdio.
The library does not install any signal handler. The decoder checks the consistency of the compressed
data, so the library should never crash even in the case of corrupted input.
All functions of the compression library are documented in the file zlib.h. The distribution source
includes examples of use of the library in the files test/example.c and test/minigzip.c, as well as other
examples in the examples/ directory.
Changes to this version are documented in the file ChangeLog that accompanies the source.
zlib is built in to many languages and operating systems, including but not limited to Java, Python,
.NET, PHP, Perl, Ruby, Swift, and Go.
An experimental package to read and write files in the .zip format, written on top of zlib by Gilles
Vollant (info@winimage.com), is available at:
http://www.winimage.com/zLibDll/minizip.html and also in the contrib/minizip directory of the main
zlib source distribution.