littlebot
Published on 2025-04-10 / 4 Visits
0

【源码】基于C语言的zlibng数据压缩库项目

项目简介

zlib-ng是下一代系统使用的zlib数据压缩库。它以兼容zlib API为基础,运用现代C99语法和简洁的代码布局,对zlib进行多方面优化与改进。该项目因官方zlib仓库未及时实现部分第三方贡献的新优化而产生,目标并非取代zlib,而是作为其可直接替换的库,降低代码变更门槛。

项目的主要特性和功能

  1. 兼容与可移植:提供与zlib兼容的API,支持双链接,具备基于zlib API的现代化原生API,方便代码移植。
  2. 性能优化:采用基于Intel zlib分支的Deflate中等和快速算法,支持SSSE3、AVX2、Neon等CPU指令集加速Adler32、CRC32 - B等计算,支持硬件加速的Deflate(IBM Z DFLTCC),有未对齐内存读写和大位缓冲区改进。
  3. 代码改进:融合Cloudflare和Intel分支的改进,移除大量旧编译器的变通代码,采用现代化的C99语法和简洁的代码布局。

安装使用步骤

构建方式

Cmake

cmake . cmake --build . --config Release ctest --verbose -C Release 也可使用ccmakeccmake .

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】