2011-09-10 06:11:37 +00:00
|
|
|
zlib 1.0 is a general purpose data compression library. All the code
|
|
|
|
is reentrant (thread safe). The data format used by the zlib library
|
|
|
|
is described in the files zlib-3.3.doc, deflate-1.3.doc and
|
|
|
|
gzip-4.3.doc, available in ftp://ftp.uu.net/pub/archiving/zip/doc/
|
2011-09-10 05:36:31 +00:00
|
|
|
|
|
|
|
All functions of the compression library are documented in the file
|
|
|
|
zlib.h. A usage example of the library is given in the file example.c
|
2011-09-10 06:10:21 +00:00
|
|
|
which also tests that the library is working correctly. Another
|
2011-09-10 06:11:37 +00:00
|
|
|
example is given in the file minigzip.c. The compression library itself
|
|
|
|
is composed of all source files except example.c and minigzip.c.
|
|
|
|
|
|
|
|
To compile all files and run the test program, follow the instructions
|
|
|
|
given at the top of Makefile. In short "make test; make install"
|
|
|
|
should work for most machines. For MSDOS, use one of the special
|
|
|
|
makefiles such as Makefile.msc; for VMS, use Make_vms.com or descrip.mms.
|
|
|
|
|
|
|
|
Questions about zlib should be sent to <zlib@quest.jpl.nasa.gov> or,
|
|
|
|
if this fails, to the addresses given below in the Copyright section.
|
|
|
|
|
|
|
|
The changes made in version 1.0 are documented in the file ChangeLog.
|
|
|
|
The main changes since 0.95 are:
|
|
|
|
- allow preset dictionary shared between compressor and decompressor
|
|
|
|
- allow compression level 0 (no compression)
|
|
|
|
- add deflateParams in zlib.h: allow dynamic change of compression level
|
|
|
|
and compression strategy.
|
|
|
|
- test large buffers and deflateParams in example.c
|
|
|
|
- add optional "configure" to build zlib as a shared library
|
|
|
|
- suppress Makefile.qnx, use configure instead
|
|
|
|
- fixes for 64-bit systems (needed for Alpha and Cray)
|
|
|
|
- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2)
|
|
|
|
- always return Z_BUF_ERROR when deflate() has nothing to do
|
|
|
|
- deflateInit and inflateInit are now macros to allow version checking
|
|
|
|
- prefix all global functions and types with z_ with -DZ_PREFIX
|
|
|
|
- fix some very unlikely race conditions in multi-threaded environment
|
|
|
|
- several minor fixes for better portability
|
|
|
|
- free in reverse order of allocation to help memory manager
|
|
|
|
- use zlib-1.0/* instead of zlib/* inside the tar.gz
|
|
|
|
- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith
|
|
|
|
-Wconversion -Wstrict-prototypes -Wmissing-prototypes"
|
|
|
|
- allow gzread on concatenated .gz files
|
|
|
|
- deflateEnd now returns Z_DATA_ERROR if it was premature
|
|
|
|
- deflate is finally (?) fully deterministic
|
|
|
|
|
|
|
|
Notes for some targets:
|
|
|
|
|
|
|
|
- For Turbo C the small model is supported only with reduced performance to
|
|
|
|
avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
|
|
|
|
|
|
|
|
- For 64-bit Iris, deflate.c must be compiled without any optimization.
|
|
|
|
With -O, one libpng test fails. The test works in 32 bit mode (with the
|
|
|
|
-32 compiler flag).
|
|
|
|
|
|
|
|
- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1
|
|
|
|
it works when compiled with cc.
|
|
|
|
|
|
|
|
- zlib doesn't work on HP-UX 9.05 with one cc compiler (the one not
|
|
|
|
accepting the -O option). It works with the other cc compiler.
|
|
|
|
|
|
|
|
A Perl interface to zlib written by Paul Marquess <pmarquess@bfsec.bt.co.uk>
|
|
|
|
is in the CPAN (Comprehensive Perl Archive Network) sites, such as:
|
|
|
|
ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib*
|
|
|
|
|
|
|
|
Acknowledgments:
|
|
|
|
|
|
|
|
The deflate format used by zlib was defined by Phil Katz. The deflate
|
|
|
|
and zlib specifications were written by Peter Deutsch. Thanks to all the
|
|
|
|
people who reported problems and suggested various improvements in zlib;
|
|
|
|
they are too numerous to cite here.
|
|
|
|
|
|
|
|
Copyright notice:
|
|
|
|
|
|
|
|
(C) 1995-1996 Jean-loup Gailly and Mark Adler
|
2011-09-10 05:36:31 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
Permission is granted to anyone to use this software for any purpose,
|
|
|
|
including commercial applications, and to alter it and redistribute it
|
|
|
|
freely, subject to the following restrictions:
|
|
|
|
|
|
|
|
1. The origin of this software must not be misrepresented; you must not
|
|
|
|
claim that you wrote the original software. If you use this software
|
|
|
|
in a product, an acknowledgment in the product documentation would be
|
|
|
|
appreciated but is not required.
|
|
|
|
2. Altered source versions must be plainly marked as such, and must not be
|
|
|
|
misrepresented as being the original software.
|
|
|
|
3. This notice may not be removed or altered from any source distribution.
|
|
|
|
|
|
|
|
Jean-loup Gailly Mark Adler
|
2011-09-10 06:08:28 +00:00
|
|
|
gzip@prep.ai.mit.edu madler@alumni.caltech.edu
|
2011-09-10 05:36:31 +00:00
|
|
|
|
|
|
|
If you use the zlib library in a product, we would appreciate *not*
|
|
|
|
receiving lengthy legal documents to sign. The sources are provided
|
|
|
|
for free but without warranty of any kind. The library has been
|
|
|
|
entirely written by Jean-loup Gailly and Mark Adler; it does not
|
|
|
|
include third-party code.
|
|
|
|
|
|
|
|
If you redistribute modified sources, we would appreciate that you include
|
|
|
|
in the file ChangeLog history information documenting your changes.
|