README
1 ZLIB DATA COMPRESSION LIBRARY
2
3 zlib 1.3.2 is a general purpose data compression library. All the code is
4 thread safe (though see the FAQ for caveats). The data format used by the zlib
5 library is described by RFCs (Request for Comments) 1950 to 1952 at
6 https://datatracker.ietf.org/doc/html/rfc1950 (zlib format), rfc1951 (deflate
7 format) and rfc1952 (gzip format).
8
9 All functions of the compression library are documented in the file zlib.h
10 (volunteer to write man pages welcome, contact zlib (a] gzip.org). A usage example
11 of the library is given in the file test/example.c which also tests that
12 the library is working correctly. Another example is given in the file
13 test/minigzip.c. The compression library itself is composed of all source
14 files in the root directory.
15
16 To compile all files and run the test program, follow the instructions given at
17 the top of Makefile.in. In short "./configure; make test", and if that goes
18 well, "make install" should work for most flavors of Unix. For Windows, use
19 one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use
20 make_vms.com.
21
22 Questions about zlib should be sent to <zlib (a] gzip.org>, or to Gilles Vollant
23 <info (a] winimage.com> for the Windows DLL version. The zlib home page is
24 https://zlib.net/ . Before reporting a problem, please check this site to
25 verify that you have the latest version of zlib; otherwise get the latest
26 version and check whether the problem still exists or not.
27
28 PLEASE read the zlib FAQ https://zlib.net/zlib_faq.html before asking for help.
29
30 Mark Nelson <markn (a] ieee.org> wrote an article about zlib for the Jan. 1997
31 issue of Dr. Dobb's Journal; a copy of the article is available at
32 https://zlib.net/nelson/ .
33
34 The changes made in version 1.3.2 are documented in the file ChangeLog.
35
36 Unsupported third party contributions are provided in directory contrib/ .
37
38 zlib is available in Java using the java.util.zip package. Follow the API
39 Documentation link at: https://docs.oracle.com/search/?q=java.util.zip .
40
41 A Perl interface to zlib and bzip2 written by Paul Marquess <pmqs (a] cpan.org>
42 can be found at https://github.com/pmqs/IO-Compress .
43
44 A Python interface to zlib written by A.M. Kuchling <amk (a] amk.ca> is
45 available in Python 1.5 and later versions, see
46 https://docs.python.org/3/library/zlib.html .
47
48 zlib is built into tcl: https://wiki.tcl-lang.org/page/zlib .
49
50 An experimental package to read and write files in .zip format, written on top
51 of zlib by Gilles Vollant <info (a] winimage.com>, is available in the
52 contrib/minizip directory of zlib.
53
54
55 Notes for some targets:
56
57 - For Windows DLL versions, please see win32/DLL_FAQ.txt
58
59 - For 64-bit Irix, deflate.c must be compiled without any optimization. With
60 -O, one libpng test fails. The test works in 32 bit mode (with the -n32
61 compiler flag). The compiler bug has been reported to SGI.
62
63 - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
64 when compiled with cc.
65
66 - On Digital Unix 4.0D (formerly OSF/1) on AlphaServer, the cc option -std1 is
67 necessary to get gzprintf working correctly. This is done by configure.
68
69 - zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
70 other compilers. Use "make test" to check your compiler.
71
72 - For PalmOs, see https://palmzlib.sourceforge.net/
73
74
75 Acknowledgments:
76
77 The deflate format used by zlib was defined by Phil Katz. The deflate and
78 zlib specifications were written by L. Peter Deutsch. Thanks to all the
79 people who reported problems and suggested various improvements in zlib; they
80 are too numerous to cite here.
81
82 Copyright notice:
83
84 (C) 1995-2026 Jean-loup Gailly and Mark Adler
85
86 This software is provided 'as-is', without any express or implied
87 warranty. In no event will the authors be held liable for any damages
88 arising from the use of this software.
89
90 Permission is granted to anyone to use this software for any purpose,
91 including commercial applications, and to alter it and redistribute it
92 freely, subject to the following restrictions:
93
94 1. The origin of this software must not be misrepresented; you must not
95 claim that you wrote the original software. If you use this software
96 in a product, an acknowledgment in the product documentation would be
97 appreciated but is not required.
98 2. Altered source versions must be plainly marked as such, and must not be
99 misrepresented as being the original software.
100 3. This notice may not be removed or altered from any source distribution.
101
102 Jean-loup Gailly Mark Adler
103 jloup (a] gzip.org madler (a] alumni.caltech.edu
104
105 If you use the zlib library in a product, we would appreciate *not* receiving
106 lengthy legal documents to sign. The sources are provided for free but without
107 warranty of any kind. The library has been entirely written by Jean-loup
108 Gailly and Mark Adler; it does not include third-party code. We make all
109 contributions to and distributions of this project solely in our personal
110 capacity, and are not conveying any rights to any intellectual property of
111 any third parties.
112
113 If you redistribute modified sources, we would appreciate that you include in
114 the file ChangeLog history information documenting your changes. Please read
115 the FAQ for more information on the distribution of modified source versions.
116
README-cmake.md
1 # For building with cmake at least version 3.12 (minizip 3.12) is needed
2
3 In most cases the usual
4
5 cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
6
7 will create everything you need, however if you want something off default you can adjust several options fit your needs.
8 Every option is list below (excluding the cmake-standard options), they can be set via cmake-gui or on cmdline with
9
10 -D<option>=ON/OFF
11
12 ## ZLIB-options with defaults ##
13
14 ZLIB_BUILD_TESTING=ON -- Enable Zlib Examples as tests
15
16 ZLIB_BUILD_SHARED=ON -- Enable building zlib shared library
17
18 ZLIB_BUILD_STATIC=ON -- Enable building zlib static library
19
20 ZLIB_BUILD_MINIZIP=ON -- Enable building libminizip contrib library
21
22 If this option is turned on, additional options are available from minizip (see below)
23
24 ZLIB_INSTALL=ON -- Enable installation of zlib
25
26 ZLIB_PREFIX=OFF -- prefix for all types and library functions, see zconf.h.in
27
28 This option is only on windows available and may/will be turned off and removed somewhen in the future.
29 If you rely cmake for finding and using zlib, this can be turned off, as `zlib1.dll` will never be used.
30
31 ## minizip-options with defaults ##
32
33 MINIZIP_BUILD_SHARED=ON -- Enable building minizip shared library
34
35 MINIZIP_BUILD_STATIC=ON -- Enable building minizip static library
36
37 MINIZIP_BUILD_TESTING=ON -- Enable testing of minizip
38
39 MINIZIP_ENABLE_BZIP2=ON -- Build minizip withj bzip2 support
40
41 A usable installation of bzip2 is needed or config will fail. Turn this option of in this case.
42
43 MINIZIP_INSTALL=ON -- Enable installation of minizip
44
45 This option is only available on mingw as they tend to name this lib different. Maybe this will also be
46 removed in the future as. If you rely cmake for finding and using zlib, this can be turned off, as
47 the other file will never be used.
48
49 ## Using the libs ##
50
51 To pull in what you need it's enough to just write
52
53 find_package(ZLIB CONFIG)
54
55 or
56
57 find_package(minizip CONFIG)
58
59 in your CMakeLists.txt, however it is advised to specify what you really want via:
60
61 find_package(ZLIB CONFIG COMPONENTS shared static REQUIRED)
62
63 or
64
65 find_package(minizip CONFIG COMPONENTS shared static REQUIRED)
66
67 As it's possible to only build the shared or the static lib, you can make sure that everything you need
68 is found. If no COMPONENTS are requested, everything needs to be found to satisfy your request. If the
69 libraries are optional in you project, you can omit the REQUIRED and check yourself if the targets you
70 want to link against are created.
71
72 When you search for minizip, it will search zlib for you, so only one of both is needed.
73
74 ## Imported targets ##
75
76 When found the following targets are created for you:
77
78 ZLIB::ZLIB and ZLIB::ZLIBSTATIC -- for zlib
79 MINIZIP::minizip and MINIZIP::minizipstatic -- for minizip
80