.TH ZLIB 3 "26 January 1998"
.SH NAME
zlib \- compression/decompression library
.SH SYNOPSIS
[see
.I zlib.h
for full descripton]
.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.0.8.
Copyright (C) 1995-1998 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 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
