Movatterモバイル変換
[0]ホーム

A Massively Spiffy Yet Delicately Unobtrusive Compression Library
(Also Free, Not to Mention Unencumbered by Patents)
(Not Related to the Linux zlibc Compressing File-I/O Library)
Welcome to thezlib home page, web pages originally created by Greg Roelofsand maintained byMark Adler.If this page seems suspiciously similar to thePNG Home Page, rest assuredthat the similarity iscompletely coincidental. No, really.
zlib was written byJean-loup Gailly (compression) andMark Adler(decompression).
Current release:January 22, 2024
Version 1.3.1 has these key updates from 1.3:
- Reject overflows of zip header fields in minizip.
- Fix bug in inflateSync() for data held in bit buffer.
- Add LIT_MEM define to use more memory for a small deflate speedup.
- Fix decision on the emission of Zip64 end records in minizip.
- Add bounds checking to ERR_MSG() macro, used by zError().
- Neutralize zip file traversal attacks in miniunz.
- Fix a bug in ZLIB_DEBUG compiles in check_match().
Version 1.3 has these key updates from 1.2.13:
- Building using K&R (pre-ANSI) function definitions is no longer supported.
- Fixed a bug indeflateBound() for level 0 and memLevel 9.
- Fixed a bug whengzungetc() is used immediately aftergzopen().
- Fixed a bug when usinggzflush() with a very small buffer.
- Fixed a crash whengzsetparams() is attempted for a transparent write.
- Fixed test/example.c to work withFORCE_STORED.
- Fixed minizip to allow it to open an empty zip file.
- Fixed reading disk number start on zip64 files in minizip.
- Fixed a logic error in minizip argument processing.
You can also look at the completeChange Log.
- Canonical URL:https://zlib.net/ (US)
zlib is designed to be afree,general-purpose, legally unencumbered -- that is, not covered by any patents-- lossless data-compression library for use on virtually any computer hardwareand operating system. The zlib data format is itself portable acrossplatforms. Unlike the LZW compression method used in Unixcompress(1)and in the GIF image format, the compression method currently used in zlibessentially never expands the data. (LZW can double or triple the file size inextreme cases.) zlib's memory footprint is also independent of the input dataand can be reduced, if necessary, at some cost in compression. A more precise,technical discussion of both points is available onanother page.
zlib was written byJean-loup Gailly (compression) andMark Adler(decompression). Jean-loup is also the primary author ofgzip(1), the author of thecomp.compression FAQ list andthe former maintainer ofInfo-ZIP'sZip;Mark is also the author of gzip's andUnZip's maindecompression routines and was the original author of Zip. Not surprisingly,the compression algorithm used in zlib is essentially the same as that ingzip and Zip, namely, the `deflate' method that originated inPKWARE's PKZIP 2.x.
Mark can be reached via e-mail at
.Please read theFAQ andthemanual before asking for help.Nearly all of the questions we get already have ananswer in thezlib documentation. Questions on the usage of zlib arebest answered onStack Overflow.zlib development contributions and issues are best addressed onzlib'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 araw class and as a component of theJAR archiveformat.
The lovely zlib-vise image above was provided courtesy of Bruce Gardner, artdirector ofDr. Dobb's Journal. Itappears 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 hash9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23):
US (zlib.net) (GPG signature)
zlib source code, version 1.3.1, tar.xz format (1275K, SHA-256 hash38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32):
US (zlib.net) (GPG signature)
zlib source code, version 1.3.1, zipfile format (1616K, SHA-256 hash72af66d44fcc14c22013b46b814d5d2514673dda3d115e64b690c1ad636e7b17):
US (zlib.net) (GPG signature)
Permalink for the most recent release:
https://zlib.net/current/zlib.tar.gz
Note that zlib is an integral part oflibpng andhas been tested extensively as part of manyPNG-supportingapplications.
zlib Information
zlib Frequently Asked Questions
Zlib-announce mailing list- New versions of zlib are announced on this list.
Zlib-devel mailing list- Please do not send questions or comments about zlib to this mailing list. Send those directly to the authors at
after checking theFAQ and themanual, 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 Usage Example
zlib Technical Details
zlib-related specifications:
Deflate stream disassembler.infgen.c produces a readable description of a gzip, zlib, or raw deflate stream.
zlib's Deflate Algorithm
zlib's deflate flush modes
zlib License
All released versions of zlib
zlib on github
CRC (Cyclic Redundancy Check) Bonus Information
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 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.
ZIP File Processing Bonus Software
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.
Related External Links
zlib for Linux, bothshared andstatic plus headers (RPM format, many architectures)
zlib for Solaris (alternate)
zlib for macOS (Mac OS X): zlib is already included as part of macOS
zlib for Palm Pilot
zlib for Newton OS
zlib for Windows CE
zlib for Windows 9x/NT/2000/XP/2003 (DLL version, plus related utilities)
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)
zlib for .NET in C#
zlib DLL wrapper for .NET in C#
Zip for .NET
Mark Nelson'sZlibTool article (January 1997)
zlib C++ wrapper for thegz* functions.
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)- (unsupportedVB5 binary also available)
zlib Delphi 5 interface- (includes compiled object files and corresponding C++ Builder 5 project files)
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 Tcl interface mkZiplib
zlib Haskell interface
zlib Java interface (see alsoJAR format)
zlib reimplementation in pure Java- (not tested by us, but looks like a good alternative to java.util.zip)
Random access for gzip archives, for Java
Gilles Vollant's zlib-basedmini-zip and mini-unzip- (see also Info-ZIP'sUnZip, which optionally can be compiled with zlib)
Scott Ludwig's zlib-basedCExe executable compressor for Win32
zlib technical issues, including spec errors
Zip Files: History, Explanation and Implementation
zlib information in Japanese
zlib information in Russian
Real World Scanning and Halftones (second edition includes a section on zlib)
Markus Oberhumer'sLZO `real-time' data compression library- (not tested by us, but looks like a good alternative if you need more speed and less compression)
lz4, a very fast compression algorithm- (not tested by us, but looks like an even better alternative if you need more speed and less compression)
Zstandard, a better compression algorithm- (not tested by us, but appears to be a better alternative to zlib in both dimensions of compression and speed, as well as decompression speed)
libbzip2- (not tested by us, but looks like a good alternative if you need more compression and less speed)
PPP Deflate Protocol (RFC 1979)
Info-ZIP Home Page
Portable Network Graphics (PNG) Home Page
gzip Home Page
pigz (parallel gzip) Home Page
DataCompression.info
comp.compression Frequently Asked Questions list
Send comments or questions aboutzlib to the authors at
after checking theFAQ and themanual.
Please report broken links to
(PGP key).This page last updatedDec 12th, 2025.
[8]ページ先頭