Zlib - Applications

Applications

Today, zlib is something of a de facto standard, to the point that zlib and DEFLATE are often used interchangeably in standards documents, with thousands of applications relying on it for compression, either directly or indirectly. These include:

  • The Linux kernel itself, where zlib is used to implement compressed network protocols, compressed file systems and to decompress the kernel image itself at boot time.
  • libpng, the reference implementation for the PNG image format, which specifies DEFLATE as the stream compression for its bitmap data.
  • Libwww, an API for Web applications like Web browsers.
  • The Apache HTTP server, which uses zlib to implement HTTP/1.1.
  • The OpenSSH client and server, which rely on zlib to perform the optional compression offered by the Secure Shell protocol.
  • The OpenSSL and GnuTLS security libraries, which can optionally use zlib to compress TLS connections.
  • The FFmpeg multimedia library, which uses zlib to read and write the DEFLATE-compressed parts of stream formats such as Matroska.
  • The rsync remote file synchronizer, which uses zlib to implement optional protocol compression.
  • The dpkg and RPM package managers, which use zlib to unpack files from compressed software packages.
  • The Subversion and CVS version control systems, which use zlib to compress traffic to and from remote repositories.
  • The Git version control system that uses zlib to store the contents of its data objects (blobs, trees, commits and tags).
  • The PostgreSQL RDBMS that uses zlib with custom dump format (pg_dump -Fc) for database backups.
  • The class System.IO.Compression.DeflateStream of the Microsoft .NET Framework 4.5.

zlib is also used in many embedded devices such as the Apple Inc. iPhone and Sony PlayStation 3, because the code is portable, liberally licensed, and has a relatively small memory footprint.

Read more about this topic:  Zlib