 
Welcome to the zlib home page, web pages originally created by Greg Roelofs and maintained by Mark Adler. If this page seems suspiciously similar to the PNG Home Page, rest assured that the similarity is completely coincidental. No, really.
zlib was written by Jean-loup Gailly (compression) and Mark Adler (decompression).
zlib 1.3.1
January 22, 2024
Version 1.3.1 has these key updates from 1.3:
Version 1.3 has these key updates from 1.2.13:
You can also look at the complete Change Log.
![[DDJ's zlib image]](images/zlib_ddj.png) zlib is designed to be a free,
general-purpose, legally unencumbered -- that is, not covered by any patents
-- lossless data-compression library for use on virtually any computer hardware
and operating system.  The zlib data format is itself portable across
platforms.  Unlike the LZW compression method used in Unix compress(1)
and in the GIF image format, the compression method currently used in zlib
essentially never expands the data.  (LZW can double or triple the file size in
extreme cases.)  zlib's memory footprint is also independent of the input data
and can be reduced, if necessary, at some cost in compression.  A more precise,
technical discussion of both points is available on 
another page.
zlib is designed to be a free,
general-purpose, legally unencumbered -- that is, not covered by any patents
-- lossless data-compression library for use on virtually any computer hardware
and operating system.  The zlib data format is itself portable across
platforms.  Unlike the LZW compression method used in Unix compress(1)
and in the GIF image format, the compression method currently used in zlib
essentially never expands the data.  (LZW can double or triple the file size in
extreme cases.)  zlib's memory footprint is also independent of the input data
and can be reduced, if necessary, at some cost in compression.  A more precise,
technical discussion of both points is available on 
another page.
zlib was written by Jean-loup Gailly (compression) and Mark Adler (decompression). Jean-loup is also the primary author of gzip(1), the author of the comp.compression FAQ list and the former maintainer of Info-ZIP's Zip; Mark is also the author of gzip's and UnZip's main decompression routines and was the original author of Zip. Not surprisingly, the compression algorithm used in zlib is essentially the same as that in gzip and Zip, namely, the `deflate' method that originated in PKWARE's PKZIP 2.x.
Mark can be reached via e-mail at
 .
Please read the FAQ and
the manual before asking for help.
Nearly all of the questions we get already have an
answer in the zlib documentation. Questions on the usage of zlib are
best answered on Stack Overflow.
zlib development contributions and issues are best addressed on
zlib's GitHub repository.
.
Please read the FAQ and
the manual before asking for help.
Nearly all of the questions we get already have an
answer in the zlib documentation. Questions on the usage of zlib are
best answered on Stack Overflow.
zlib development contributions and issues are best addressed on
zlib's GitHub repository.
The deflate and zlib specifications both achieved official Internet RFC status in May 1996, and zlib itself was adopted in version 1.1 of the Java Development Kit (JDK), both as a raw class and as a component of the JAR archive format.
The lovely zlib-vise image above was provided courtesy of Bruce Gardner, art director of Dr. Dobb's Journal. It appears in Mark Nelson's article in the January 1997 issue (see below).
The current release is publicly available here:
 zlib source code, version 1.3.1, tar.gz format (1477K,
    SHA-256 hash 9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23):
    zlib source code, version 1.3.1, tar.gz format (1477K,
    SHA-256 hash 9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23):
    
 US (zlib.net) (GPG signature)
        US (zlib.net) (GPG signature)
         zlib source code, version 1.3.1, tar.xz format (1275K,
    SHA-256 hash 38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32):
    zlib source code, version 1.3.1, tar.xz format (1275K,
    SHA-256 hash 38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32):
    
 US (zlib.net) (GPG signature)
        US (zlib.net) (GPG signature)
         zlib source code, version 1.3.1, zipfile format (1616K,
    SHA-256 hash 72af66d44fcc14c22013b46b814d5d2514673dda3d115e64b690c1ad636e7b17):
    zlib source code, version 1.3.1, zipfile format (1616K,
    SHA-256 hash 72af66d44fcc14c22013b46b814d5d2514673dda3d115e64b690c1ad636e7b17):
    
 US (zlib.net) (GPG signature)
        US (zlib.net) (GPG signature)
        Permalink for the most recent release:
 https://zlib.net/current/zlib.tar.gz
        https://zlib.net/current/zlib.tar.gz
    
 zlib Frequently Asked Questions
    zlib Frequently Asked Questions
     Zlib-announce mailing list
    
       Zlib-announce mailing list
         Zlib-devel mailing list
    
       Zlib-devel mailing list
         after checking the FAQ and
	    the manual, of course.  The zlib-devel list is for the development of
	    zlib—members are contributors to and testers of new versions of zlib.
	    after checking the FAQ and
	    the manual, of course.  The zlib-devel list is for the development of
	    zlib—members are contributors to and testers of new versions of zlib.
             zlib Manual
    zlib Manual
    
     zlib Usage Example
    zlib Usage Example
     zlib Technical Details
    zlib Technical Details
     zlib-related specifications:
    zlib-related specifications:
    
     Deflate stream disassembler.
        infgen.c produces a readable description of a gzip, zlib, or
        raw deflate stream.
        Deflate stream disassembler.
        infgen.c produces a readable description of a gzip, zlib, or
        raw deflate stream.
     zlib's Deflate Algorithm
    zlib's Deflate Algorithm
     zlib's deflate flush modes
    zlib's deflate flush modes
     zlib License
    zlib License
     All released versions of zlib
    All released versions of zlib
     zlib on github
    zlib on github
     Ross Williams' classic "A Painless Guide to CRC Error Detection Algorithms"
        Ross Williams' classic "A Painless Guide to CRC Error Detection Algorithms"
     Code to generate any CRC, with a list of CRC
        descriptions. crcany.c can take a description of a CRC and
        compute that CRC efficiently.  It includes bit-wise, table-driven
        byte-wise, and table-driven word-wise CRC algorithms.
 Code to generate any CRC, with a list of CRC
        descriptions. crcany.c can take a description of a CRC and
        compute that CRC efficiently.  It includes bit-wise, table-driven
        byte-wise, and table-driven word-wise CRC algorithms.
     Code to modify a message so that it generates the
        desired CRC. spoof.c takes an abbreviated description of
        the CRC, the exclusive-or of the current CRC of the message and the
        desired CRC, the length of the message, and a list of bit locations in
        a message, and tells you which of those bits should be inverted in the
        message to get the desired CRC.  Note that it does not need the message
        itself, due to the linearity property of CRCs.
 Code to modify a message so that it generates the
        desired CRC. spoof.c takes an abbreviated description of
        the CRC, the exclusive-or of the current CRC of the message and the
        desired CRC, the length of the message, and a list of bit locations in
        a message, and tells you which of those bits should be inverted in the
        message to get the desired CRC.  Note that it does not need the message
        itself, due to the linearity property of CRCs.
     Code to read a zip file as a stream and extract
        its contents.  sunzip.c will read a zip file from stdin
        and extract the files therein that use compression methods 0, 8, 9, or
        12 (stored, deflate, deflate64, or bzip2).  It accepts Zip64 input.
 Code to read a zip file as a stream and extract
        its contents.  sunzip.c will read a zip file from stdin
        and extract the files therein that use compression methods 0, 8, 9, or
        12 (stored, deflate, deflate64, or bzip2).  It accepts Zip64 input.
     Code to merge multiple zip files into a single
        zip file. zipknit.c accepts Zip64 input files, and will
        create Zip64 output if the combined size of the merged zip file
        warrants it. All compression formats are permitted, since no
        decompression or recompression is performed.  Encrypted entries are
        permitted, and pass through unscathed.
 Code to merge multiple zip files into a single
        zip file. zipknit.c accepts Zip64 input files, and will
        create Zip64 output if the combined size of the merged zip file
        warrants it. All compression formats are permitted, since no
        decompression or recompression is performed.  Encrypted entries are
        permitted, and pass through unscathed.
    
 zlib for Linux, both shared and
    static plus headers (RPM format, many
    architectures)
    zlib for Linux, both shared and
    static plus headers (RPM format, many
    architectures)
    
    
    
     zlib for Solaris (alternate)
    
    zlib for Solaris (alternate)
     zlib for macOS (Mac OS X): zlib is already included as part of macOS
     zlib for macOS (Mac OS X): zlib is already included as part of macOS
    
    
    
    
     zlib for Palm Pilot
    zlib for Palm Pilot
     zlib for Newton OS
    zlib for Newton OS
     zlib for Windows CE
    zlib for Windows CE
     zlib for Windows
    9x/NT/2000/XP/2003 (DLL version, plus related utilities)
    zlib for Windows
    9x/NT/2000/XP/2003 (DLL version, plus related utilities)
     zlib for Windows 9x/NT (DLL and static version)
    
    zlib for Windows 9x/NT (DLL and static version)
     DotNetZip zip file manipulation for .NET, and more (including replacements for the
    buggy Microsoft GZipStream and DeflateStream classes)
    
    DotNetZip zip file manipulation for .NET, and more (including replacements for the
    buggy Microsoft GZipStream and DeflateStream classes)
     zlib for .NET in C#
    
    zlib for .NET in C#
     zlib DLL wrapper for .NET in C#
            
                zlib DLL wrapper for .NET in C#
             Zip for .NET
    
    Zip for .NET
     Mark Nelson's
    ZlibTool article (January 1997)
    Mark Nelson's
    ZlibTool article (January 1997)
     zlib C++ wrapper for the
    
    zlib C++ wrapper for the gz* functions.
    
     C++ zlib and gzip filters in an iostream framework.
    
    C++ zlib and gzip filters in an iostream framework.
    
     zlib
    32-bit OCX
    (C++ source and binaries for use with Visual Basic 4.x or
    Delphi 2.0)
    zlib
    32-bit OCX
    (C++ source and binaries for use with Visual Basic 4.x or
    Delphi 2.0)
         zlib Delphi 5 interface
    zlib Delphi 5 interface
         zlib Perl interface (source code; look for Compress-Zlib*.tar.gz)
    zlib Perl interface (source code; look for Compress-Zlib*.tar.gz)
    
     zlib Python
     interface (online manual; part of the standard library as of
     Python 1.5)
    zlib Python
     interface (online manual; part of the standard library as of
     Python 1.5)
    
    
     zlib Tcl
     interface mkZiplib
    zlib Tcl
     interface mkZiplib
     zlib Haskell
     interface
    zlib Haskell
     interface
    
     zlib Java interface (see also JAR format)
 zlib Java interface (see also JAR format)
    
     zlib reimplementation in pure
     Java
    zlib reimplementation in pure
     Java
         Mark Nelson's
    JavaZip article (with source code) (December 1997)
    Mark Nelson's
    JavaZip article (with source code) (December 1997)
     Random access for gzip archives, for Java
    Random access for gzip archives, for Java
    
     Gilles Vollant's zlib-based
    mini-zip and
    mini-unzip
    Gilles Vollant's zlib-based
    mini-zip and
    mini-unzip
    
         Scott Ludwig's zlib-based
    CExe executable compressor for Win32
    Scott Ludwig's zlib-based
    CExe executable compressor for Win32
     zlib technical issues, including spec errors
    zlib technical issues, including spec errors
    
     Zip Files: History, Explanation and Implementation
    Zip Files: History, Explanation and Implementation
     zlib information in Japanese
    zlib information in Japanese
     zlib information in Russian
    zlib information in Russian
    
     Real World Scanning and Halftones
    (second edition includes a section on zlib)
    Real World Scanning and Halftones
    (second edition includes a section on zlib)
    
     Markus Oberhumer's
    LZO `real-time' data compression library
    Markus Oberhumer's
    LZO `real-time' data compression library
         lz4, a very fast compression algorithm
    lz4, a very fast compression algorithm
         Zstandard, a better compression algorithm
    Zstandard, a better compression algorithm
         libbzip2
    libbzip2
         PPP Deflate Protocol
    (RFC 1979)
    PPP Deflate Protocol
    (RFC 1979)
     Info-ZIP Home Page
    Info-ZIP Home Page
     Portable Network Graphics (PNG)
    Home Page
    Portable Network Graphics (PNG)
    Home Page
     gzip Home Page
    gzip Home Page
     pigz (parallel gzip) Home Page
    pigz (parallel gzip) Home Page
     DataCompression.info
    DataCompression.info
     comp.compression Frequently Asked Questions list
    comp.compression Frequently Asked Questions list
    
 after checking the FAQ and the
manual.
 
after checking the FAQ and the
manual.
 (PGP key).
(PGP key).
This page last updated May 4nd, 2025.
| Web page copyright © 1996-2025
      Greg Roelofs,
      Jean-loup Gailly and
      Mark Adler. zlib software copyright © 1995-2025 Jean-loup Gailly and Mark Adler. | zlib.org domain name donated by Andrew Green. |