项目简介
本项目使用C语言编写,基于zlib库实现数据压缩与解压缩功能。由于官方zlib库对第三方新优化贡献集成较慢,此项目作为zlib的一个可共存替代方案,可让代码更改的门槛更低。项目包含生成Huffman编码表、CRC校验码表等辅助数据结构的工具,还有用于测试zlib库功能的测试用例。
项目的主要特性和功能
- API兼容性:提供与zlib兼容的API,支持双链接,同时具备基于zlib API的现代化原生API,方便移植。
- 代码优化:采用现代C11语法和简洁代码布局,去除大量旧编译器的兼容性代码。
- 算法优化:采用基于英特尔zlib分支的Deflate中等和快速算法。
- 硬件加速:支持SSSE3、AVX2、Neon等多种CPU指令集,利用硬件加速Adler32、CRC32等计算和数据处理。
- 功能测试:有全面的CMake单元测试,支持代码清理、模糊测试和代码覆盖率检测。
- 压缩选项丰富:支持多种压缩级别和策略,能适应不同压缩需求。
安装使用步骤
前提条件
编译和运行代码前,需确保已安装zlib库,并在编译时正确指定zlib库的路径和版本。
编译
Cmake方式
bash
cmake .
cmake --build . --config Release
ctest --verbose -C Release
也可用 ccmake
配置:
bash
ccmake .
Configure方式
bash
./configure
make
make test
安装
不建议手动安装,以免覆盖系统默认的zlib库。若需手动安装,建议用 /opt/
路径前缀。
Cmake方式
bash
cmake --build . --target install
Configure方式
bash
make install
使用
下载项目源代码文件后,按需编译并运行工具或测试用例,通过命令行参数进行设置,执行压缩或解压缩操作。若要在Linux系统中临时用zlib-ng替代zlib,可使用 LD_PRELOAD
环境变量:
bash
LD_PRELOAD=/opt/zlib-ng/libz.so.1.2.11.zlib-ng /usr/bin/program
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】