项目简介
zlib-ng是为下一代系统打造的数据压缩库,它是zlib的一个分支。由于官方zlib仓库未对诸多第三方含新优化的贡献进行实现,因此产生了这个分支。其目的并非取代zlib,而是作为一个可直接替换的库,以更低的门槛进行代码更改。该库采用现代C99语法,代码布局简洁,具有多种优化特性。
项目的主要特性和功能
- 兼容与易用:提供与zlib兼容的API,支持双链接,同时基于zlib API的现代化原生API便于移植。
- 代码优化:运用现代C99语法和简洁的代码布局,去除诸多旧编译器的兼容性代码,减轻维护负担。
- 算法优化:采用基于英特尔zlib分支的Deflate中等和快速算法。
- 硬件加速:支持多种CPU指令集,包括SSSE3、AVX2、Neon、VSX、PCLMULQDQ、ACLE等,实现Adler32、CRC32 - B等的硬件加速;支持使用IBM Z DFLTCC进行硬件加速的Deflate。
- 内存优化:改进了未对齐内存读写和大位缓冲区。
- 功能集成:集成了Cloudflare和英特尔分支的改进。
- 构建系统:支持Configure、CMake和NMake构建系统,拥有全面的CMake单元测试。
- 质量保障:包含代码清理、模糊测试和覆盖率检测。
安装使用步骤
前提条件
用户已下载本项目的源码文件,并确保安装了C语言编译器和相关的依赖库。
构建方式
Cmake
bash
cmake .
cmake --build . --config Release
ctest --verbose -C Release
也可使用cmake配置GUI工具ccmake:
bash
ccmake .
Configure
bash
./configure
make
make test
构建选项
| CMake | configure | Description | Default | |:-------------------------|:-------------------------|:--------------------------------------------------------------------------------------|---------| | ZLIB_COMPAT | --zlib-compat | Compile with zlib compatible API | OFF | | ZLIB_ENABLE_TESTS | | Build test binaries | ON | | WITH_GZFILEOP | --without-gzfileops | Compile with support for gzFile related functions | ON | | WITH_OPTIM | --without-optimizations | Build with optimisations | ON | | WITH_NEW_STRATEGIES | --without-new-strategies | Use new strategies | ON | | WITH_NATIVE_INSTRUCTIONS | --native | Compiles with full instruction set supported on this host (gcc/clang -march=native) | OFF | | WITH_SANITIZER | --with-sanitizer | Build with sanitizer (memory, address, undefined) | OFF | | WITH_FUZZERS | --with-fuzzers | Build test/fuzz | OFF | | WITH_MAINTAINER_WARNINGS | | Build with project maintainer warnings | OFF | | WITH_CODE_COVERAGE | | Enable code coverage reporting | OFF |
安装步骤
警告:除非您非常清楚自己在做什么,否则不建议手动安装,因为这可能会覆盖系统默认的zlib库,任何不兼容或错误的配置都可能导致整个系统无法使用,需要恢复或重新安装。如果仍要手动安装,建议使用 /opt/
路径前缀。
对于Linux发行版,如果以zlib兼容模式编译,可通过 LD_PRELOAD
环境变量使用zlib-ng代替zlib:
bash
LD_PRELOAD=/opt/zlib-ng/libz.so.1.2.11.zlib-ng /usr/bin/program
Cmake
bash
cmake --build . --target install
Configure
bash
make install
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】