Compression can be done in a single step if the buffers are large enough 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.
The library also supports reading and writing files in gzip(1) (.gz) format with an interface similar to that of stdio.
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 the case of corrupted input.
All functions of the compression library are documented in the file zlib.h. The distribution source includes examples of use of the library in the files test/example.c and test/minigzip.c, as well as other examples in the examples/ directory.
Changes to this version are documented in the file ChangeLog that accompanies the source.
zlib is built in to many languages and operating systems, including but not limited to Java, Python, .NET, PHP, Perl, Ruby, Swift, and Go.
An experimental package to read and write files in the .zip format, written on top of zlib by Gilles Vollant (email@example.com), is available at:
The data format used by the zlib library is described by RFC (Request for Comments) 1950 to 1952 in the files:
Mark Nelson wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available at:
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
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:
The deflate format used by zlib was defined by Phil Katz. The deflate and zlib specifications were written by L. Peter Deutsch. Thanks to all the people who reported problems and suggested various improvements in zlib; who are too numerous to cite here.
UNIX manual page by R. P. C. Rodgers, U.S. National Library of Medicine (firstname.lastname@example.org).