.TH ZLIB 3 "11 March 2002"
.SH NAME
zlib \- compression/decompression library
.SH SYNOPSIS
[see
.I zlib.h
for full description]
.SH DESCRIPTION
The
.I zlib
library is a general purpose data compression library.
The code is thread safe.
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 will be added later and will have the same stream interface.
.LP
Compression can be done in a single step if the buffers are large enough
(for example if an input file is mmap'ed),
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.
.LP
The library also supports reading and writing files in
.I gzip
(.gz) format
with an interface similar to that of stdio.
.LP
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 case of corrupted input.
.LP
All functions of the compression library are documented in the file
.IR zlib.h.
The distribution source includes examples of use of the library
the files
.I example.c
and
.IR minigzip.c .
.LP
A Java implementation of
.IR zlib
is available in the Java Development Kit 1.1
.IP
http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html
.LP
A Perl interface to
.IR zlib ,
written by Paul Marquess (pmarquess@bfsec.bt.co.uk)
is available at CPAN (Comprehensive Perl Archive Network) sites,
such as:
.IP
ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib*
.LP
A Python interface to
.IR zlib
written by A.M. Kuchling <amk@magnet.com>
is available from the Python Software Association sites, such as:
.IP
ftp://ftp.python.org/pub/python/contrib/Encoding/zlib*.tar.gz
.SH "SEE ALSO"
Questions about zlib should be sent to:
.IP
zlib@quest.jpl.nasa.gov
or, if this fails, to the author addresses given below.
The zlib home page is:
.IP
http://www.cdrom.com/pub/infozip/zlib/
.LP
The data format used by the zlib library is described by RFC
(Request for Comments) 1950 to 1952 in the files: 
.IP
ftp://ds.internic.net/rfc/rfc1950.txt (zlib format)
.br
rfc1951.txt (deflate format)
.br
rfc1952.txt (gzip format)
.LP
These documents are also available in other formats from:
.IP
ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
.SH AUTHORS
Version 1.1.4
Copyright (C) 1995-2002 Jean-loup Gailly (jloup@gzip.org)
and Mark Adler (madler@alumni.caltech.edu).
.LP
This software is provided "as-is,"
without any express or implied warranty.
In no event will the authors be held liable for any damages
arising from the use of this software.
See the distribution directory with respect to requirements
governing redistribution.
The deflate format used by
.I zlib
was defined by Phil Katz.
The deflate and
.I zlib
specifications were written by L. Peter Deutsch.
Thanks to all the people who reported problems and suggested various
improvements in
.IR zlib ;
who are too numerous to cite here.
.LP
UNIX manual page by R. P. C. Rodgers,
U.S. National Library of Medicine (rodgers@nlm.nih.gov).
.\" end of man page
