% zlib compression module version A.01.02
% Alpha test release.
% Written by A.M. Kuchling (amk@magnet.com)
% Comments are welcomed.  
%
% Can you think of a better name than zlib?  (The module's purpose isn't 
% really obvious from the name) 

\section{Built-in Module \sectcode{zlib}}
\bimodindex{zlib}

For applications that require data compression, the functions in this
module allow compression and decompression, using a library based on
GNU zip.  The library is available at
\code{ftp://godzilli.cs.sunysb.edu/pub/ngf/zlib-1.00.tar.gz}, 
and is mirrored at
\code{ftp://ftp.uu.net/graphics/png/src/zlib-1.00.tar.gz}.  Version
1.00 is the most recent version as of March 18, 1996; use a later
version if one is available.

The available functions in this module are:

\renewcommand{\indexsubitem}{(in module zlib)}
\begin{funcdesc}{adler32}{string\optional{\, value}}
   Computes a Adler-32 checksum of \var{string}.  (An Adler-32
   checksum is almost as reliable as a CRC32 but can be computed much
   more quickly.)  If \var{value} is present, it is used as the
   starting value of the checksum; otherwise, a fixed default value is
   used.  This allows computing a running checksum over the
   concatenation of several input strings.  The algorithm is not
   cryptographically strong, and should not be used for
   authentication or digital signatures.
\end{funcdesc}

\begin{funcdesc}{compress}{string\optional{\, level}}
Compresses the data in \var{string}, returning a string contained
compressed data.  \var{level} is an integer from 1 to 9 controlling
the level of compression; 1 is fastest and produces the least
compression, 9 is slowest and produces the most.  The default value is
6, which .  Raises the \code{zlib.error} exception if any error occurs.
\end{funcdesc}

\begin{funcdesc}{compressobj}{\optional{level}}
Returns a compression object, to be used for compressing data streams
  that won't fit into memory at once.  \var{level} is an integer from
  1 to 9 controlling the level of compression; 1 is fastest and
  produces the least compression, 9 is slowest and produces the most.
  The default value is 6.
\end{funcdesc}

\begin{funcdesc}{crc32}{string\optional{\, value}}
   Computes a CRC (Cyclic Redundancy Check) sum of \var{string}. If
   \var{value} is present, it is used as the starting value of the
   checksum; otherwise, a fixed default value is used.  This allows
   computing a running checksum over the concatenation of several
   input strings.  The algorithm is not cryptographically strong, and
   should not be used for authentication or digital signatures.
\end{funcdesc}

\begin{funcdesc}{decompress}{string}
Decompresses the data in \var{string}, returning a string containing
the uncompressed data.  Raises the \code{zlib.error} exception if any
error occurs.
\end{funcdesc}

\begin{funcdesc}{decompressobj}{\optional{wbits}}
Returns a compression object, to be used for decompressing data streams
  that won't fit into memory at once.  The \var{wbits} parameter controls the size of the window buffer; usually this can be left alone.
\end{funcdesc}

Compression objects support the following methods:

\begin{funcdesc}{compress}{string}
Compress \var{string}, returning a string containing compressed data
for at least part of the data in \var{string}.  This data should be
concatenated to the output produced by any preceding calls to the
\code{compress()} method.  Some input may be kept in internal buffers
for later processing.
\end{funcdesc}

\begin{funcdesc}{flush}{}
All pending input is processed, and an string containing the remaining
compressed output is returned.  After calling \code{flush()}, the
\code{compress()} method cannot be called again; the only realistic
action is to delete the object.
\end{funcdesc}

Decompression objects support the following methods:

\begin{funcdesc}{decompress}{string}
Decompress \var{string}, returning a string containing the
uncompressed data corresponding to at least part of the data in
\var{string}.  This data should be concatenated to the output produced
by any preceding calls to the
\code{decompress()} method.  Some of the input data may be preserved in internal buffers
for later processing.
\end{funcdesc}

\begin{funcdesc}{flush}{}
All pending input is processed, and a string containing the remaining
uncompressed output is returned.  After calling \code{flush()}, the
\code{decompress()} method cannot be called again; the only realistic
action is to delete the object.
\end{funcdesc}



