+| CI | Stable | Develop |
+|:---|:-------|:--------|
+| GitHub Actions | [](https://github.com/zlib-ng/zlib-ng/actions) <br> [](https://github.com/zlib-ng/zlib-ng/actions) <br> [](https://github.com/zlib-ng/zlib-ng/actions) | [](https://github.com/zlib-ng/zlib-ng/actions) <br> [](https://github.com/zlib-ng/zlib-ng/actions) <br> [](https://github.com/zlib-ng/zlib-ng/actions) |
+| CodeFactor | [](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng/overview/stable) | [](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng/overview/develop) |
+| OSS-Fuzz | [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng) | [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng) |
+| Codecov | [](https://codecov.io/github/zlib-ng/zlib-ng/tree/stable) | [](https://codecov.io/github/zlib-ng/zlib-ng/tree/develop) |
+
## zlib-ng
*zlib data compression library for the next generation systems*
Maintained by Hans Kristian Rosbach
aka Dead2 (zlib-ng àt circlestorm dót org)
-|CI|Status|
-|:-|-|
-|GitHub Actions|[](https://github.com/zlib-ng/zlib-ng/actions) [](https://github.com/zlib-ng/zlib-ng/actions) [](https://github.com/zlib-ng/zlib-ng/actions)|
-|Buildkite|[](https://buildkite.com/circlestorm-productions/zlib-ng)|
-|CodeFactor|[](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng)|
-|OSS-Fuzz|[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng)
-|Codecov|[](https://codecov.io/github/zlib-ng/zlib-ng/)|
-
-
Features
--------
History
-------
-The motivation for this fork came after seeing several 3rd party
-contributions containing new optimizations not getting implemented
-into the official zlib repository.
+The motivation for this fork was seeing several 3rd party contributions with new optimizations not getting
+implemented into the official zlib repository.
-Mark Adler has been maintaining zlib for a very long time, and he has
-done a great job and hopefully he will continue for a long time yet.
-The idea of zlib-ng is not to replace zlib, but to co-exist as a
-drop-in replacement with a lower threshold for code change.
+Mark Adler has been maintaining zlib for a very long time, and he has done a great job and hopefully he will continue
+for a long time yet. The idea of zlib-ng is not to replace zlib, but to co-exist as a drop-in replacement with a
+lower threshold for code change.
-zlib has a long history and is incredibly portable, even supporting
-lots of systems that predate the Internet. This is great, but it does
-complicate further development and maintainability.
-The zlib code has numerous workarounds for old compilers that do not
-understand ANSI-C or to accommodate systems with limitations such as
-operating in a 16-bit environment.
+zlib has a long history and is incredibly portable, even supporting many systems that predate the Internet.<br>
+That is great, but it can complicate further development and maintainability. The zlib code contains many workarounds
+for really old compilers or to accommodate systems with limitations such as operating in a 16-bit environment.
-Many of these workarounds are only maintenance burdens, some of them
-are pretty huge code-wise. For example, the [v]s[n]printf workaround
-code has a whopping 8 different implementations just to cater to
-various old compilers. With this many workarounds cluttered throughout
-the code, new programmers with an idea/interest for zlib will need
-to take some time to figure out why all of these seemingly strange
-things are used, and how to work within those confines.
+Many of these workarounds are only maintenance burdens, some of them are pretty huge code-wise. With many workarounds
+cluttered throughout the code, it makes it harder for new programmers with an idea/interest for zlib to contribute.
-So I decided to make a fork, merge all the Intel optimizations, merge
-the Cloudflare optimizations that did not conflict, plus a couple
-of other smaller patches. Then I started cleaning out workarounds,
-various dead code, all contrib and example code as there is little
-point in having those in this fork for various reasons.
+I decided to make a fork, merge all the Intel optimizations, some of the Cloudflare optimizations, plus a couple other
+smaller patches. Then started cleaning out workarounds, various dead code, all contrib and example code.<br>
+The result is a better performing and easier to maintain zlib-ng.
-A lot of improvements have gone into zlib-ng since its start, and
-numerous people and companies have contributed both small and big
-improvements, or valuable testing.
-
-Please read LICENSE.md, it is very simple and very liberal.
+A lot of improvements have gone into zlib-ng since its start, and numerous people and companies have contributed both
+small and big improvements, or valuable testing.
Build
-----
+<sup>Please read LICENSE.md, it is very simple and very liberal.</sup>
There are two ways to build zlib-ng:
Install
-------
-WARNING: We do not recommend manually installing unless you really
-know what you are doing, because this can potentially override the system
-default zlib library, and any incompatibility or wrong configuration of
-zlib-ng can make the whole system unusable, requiring recovery or reinstall.
+WARNING: We do not recommend manually installing unless you really know what you are doing, because this can
+potentially override the system default zlib library, and any incompatibility or wrong configuration of zlib-ng
+can make the whole system unusable, requiring recovery or reinstall.
If you still want a manual install, we recommend using the /opt/ path prefix.
-For Linux distros, an alternative way to use zlib-ng (if compiled in
-zlib-compat mode) instead of zlib, is through the use of the
-_LD_PRELOAD_ environment variable. If the program is dynamically linked
-with zlib, then zlib-ng will temporarily be used instead by the program,
-without risking system-wide instability.
+For Linux distros, an alternative way to use zlib-ng (if compiled in zlib-compat mode) instead of zlib, is through
+the use of the _LD_PRELOAD_ environment variable. If the program is dynamically linked with zlib, then the program
+will temporarily attempt to use zlib-ng instead, without risking system-wide instability.
```
LD_PRELOAD=/opt/zlib-ng/libz.so.1.2.13.zlib-ng /usr/bin/program
./vcpkg install zlib-ng
```
-The zlib-ng port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
+The zlib-ng port in vcpkg is kept up to date by Microsoft team members and community contributors.
+If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
Contributing
------------
-Zlib-ng is a aiming to be open to contributions, and we would be delighted to
-receive pull requests on github.
-Just remember that any code you submit must be your own and it must be zlib licensed.
-Help with testing and reviewing of pull requests etc is also very much appreciated.
-
-If you are interested in contributing, please consider joining our
-IRC channel #zlib-ng on the Freenode IRC network.
+Zlib-ng is aiming to be open to contributions, and we would be delighted to receive pull requests on github.
+Help with testing and reviewing pull requests etc is also very much appreciated.
+Please check the Wiki for more info: [Contributing](https://github.com/zlib-ng/zlib-ng/wiki/Contributing)
Acknowledgments
----------------
-Thanks to Servebolt.com for sponsoring my maintainership of zlib-ng.
-
Thanks go out to all the people and companies who have taken the time to contribute
code reviews, testing and/or patches. Zlib-ng would not have been nearly as good without you.
-The deflate format used by zlib was defined by Phil Katz.
+The deflate format used by zlib was defined by Phil Katz.<br>
The deflate and zlib specifications were written by L. Peter Deutsch.
-zlib was originally created by Jean-loup Gailly (compression)
-and Mark Adler (decompression).
+zlib was originally created by Jean-loup Gailly (compression) and Mark Adler (decompression).
Advanced Build Options