项目简介
zlib-ng是下一代系统使用的zlib数据压缩库。它以兼容zlib API为基础,运用现代C99语法和简洁的代码布局,对zlib进行多方面优化与改进。该项目因官方zlib仓库未及时实现部分第三方贡献的新优化而产生,目标并非取代zlib,而是作为其可直接替换的库,降低代码变更门槛。
项目的主要特性和功能
- 兼容与可移植:提供与zlib兼容的API,支持双链接,具备基于zlib API的现代化原生API,方便代码移植。
- 性能优化:采用基于Intel zlib分支的Deflate中等和快速算法,支持SSSE3、AVX2、Neon等CPU指令集加速Adler32、CRC32 - B等计算,支持硬件加速的Deflate(IBM Z DFLTCC),有未对齐内存读写和大位缓冲区改进。
- 代码改进:融合Cloudflare和Intel分支的改进,移除大量旧编译器的变通代码,采用现代化的C99语法和简洁的代码布局。
安装使用步骤
构建方式
Cmake
cmake .
cmake --build . --config Release
ctest --verbose -C Release
也可使用ccmake
:
ccmake .
Configure
./configure
make
make test
构建选项
| CMake | configure | 描述 | 默认值 | |:-------------------------|:-------------------------|:--------------------------------------------------------------------------------------|---------| | ZLIB_COMPAT | --zlib-compat | 以zlib兼容API编译 | OFF | | ZLIB_ENABLE_TESTS | | 构建测试二进制文件 | ON | | WITH_GZFILEOP | --without-gzfileops | 编译支持gzFile相关函数 | ON | | WITH_OPTIM | --without-optimizations | 构建时使用优化 | ON | | WITH_NEW_STRATEGIES | --without-new-strategies | 使用新策略 | ON | | WITH_NATIVE_INSTRUCTIONS | --native | 以主机支持的完整指令集编译 (gcc/clang -march=native) | OFF | | WITH_SANITIZER | --with-sanitizer | 构建时使用清理工具 (内存、地址、未定义) | OFF | | WITH_FUZZERS | --with-fuzzers | 构建测试/模糊测试 | OFF | | WITH_MAINTAINER_WARNINGS | | 构建时显示项目维护者警告 | OFF | | WITH_CODE_COVERAGE | | 启用代码覆盖率报告 | OFF |
安装
警告:不建议手动安装,以免覆盖系统默认的zlib库导致系统不可用。若要手动安装,建议使用/opt/
路径前缀。
对于Linux发行版,若以zlib兼容模式编译,可通过_LD_PRELOAD_
环境变量使用zlib-ng。
LD_PRELOAD=/opt/zlib-ng/libz.so.1.2.11.zlib-ng /usr/bin/program
Cmake
cmake --build . --target install
Configure
make install
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】