Skip to content
Hans Kristian Rosbach edited this page Nov 15, 2025 · 38 revisions

Note: In an effort to limit the scope of compilers and platforms we must maintain support for, we recommend certain minimum versions. These are not the minimum versions that will work, we do attempt to support older versions as well, however our ability to actively support older versions is limited.

Zlib officially supported buildsystems

Zlib-ng 2.0.x Zlib-ng 2.1.x/2.2.x Zlib-ng 2.3.x
C-Standard C99 C11 C11
CMake 3.5.1 3.12.0 3.14.0
GCC 5.5.0 8.3 8.5
Clang 6.0 9.0 11.0
MSVC 2013 2019 2022
Configure (bash/gmake)) Full Reduced* Reduced*
NMake Full Community** Via Cmake

These are the minimum versions that we plan to maintain support for throughout the version series

  • Older versions are not actively supported or tested.
    It is possible to build zlib-ng outside of these minimums, however support for doing so is limited, and is not guaranteed to work later in the version series, although likely.
    Community patches are accepted.

  • Other compilers are not actively supported or tested.
    Community patches are accepted.

  • * Configure is still supported in 2.1.x, but at a reduced feature level compared to CMake.
    Configure only has basic tests.

  • ** NMake buildsystems are no longer actively supported and tested.

Recommended minimum platform versions

Zlib-ng 2.0.x Zlib-ng 2.1.x/2.2.x Zlib-ng 2.3.x
Android-API 18 (4.3) 19 (4.4) 27 (8.1)
MacOS 10.9 10.13 10.15
RedHat EL 7.0 8.4 8.10
Ubuntu 12.04 16.04 18.04
Windows 7 7 10

These are not actively tested, and are meant only as guidelines

Versioning

Several macros can be used to detect the version of zlib-ng at compile time. They can be found in zlib-ng.h or zlib.h (depending on whether or not you are compiling for zlib compatibility).

Macro Description
ZLIBNG_VERNUM Full 32-bit version of zlib-ng in the format MMNNRRSM: major minor revision status modified. Prior to 2.1.x it was a 16-bit value 0x2060 in the format MNRS.
ZLIBNG_VER_MAJOR Major version
ZLIBNG_VER_MINOR Minor version
ZLIBNG_VER_REVISION Revision
ZLIBNG_VER_STATUS (DEPRECATED) 0=devel, 1-E=beta, F=Release
ZLIBNG_VER_STATUSH 0x0=devel, 1-9=beta, A-E=Release Candidate, 0xF=Release
ZLIBNG_VER_MODIFIED non-zero if modified externally from zlib-ng

Technical Specification Documents

  • RFC1950 - ZLIB compressed data format
  • RFC1951 - DEFLATE compressed data format
  • RFC1952 - GZIP file format

These resources can also be found in the doc folder in the git repository.

Additional Resources

Clone this wiki locally