项目简介
本项目是基于C语言构建的,以zlib-ng这一zlib数据压缩库的下一代版本为核心。目标是在保留zlib兼容性的基础上,对其进行优化和改进,为开发者提供更高效、现代化的数据压缩解决方案。
项目的主要特性和功能
- API兼容性:具备与zlib兼容的API,支持双链接,同时拥有基于zlib API的现代化原生API,便于代码移植。
- 现代代码风格:采用现代C11语法,代码布局简洁清晰。
- 算法优化:采用基于英特尔zlib分支的Deflate中等和快速算法。
- CPU指令集支持:支持多种CPU指令集,如SSSE3、AVX2、Neon、VSX等,提升Adler32、CRC32等计算性能。
- 内存与性能改进:优化了未对齐内存读写和大位缓冲区,融入Cloudflare和英特尔分支的改进。
- 构建与测试支持:支持Configure、CMake和NMake构建系统,拥有全面的CMake单元测试,以及代码清理、模糊测试和覆盖率检测。
安装使用步骤
安装前提
确保已下载本项目的源码文件,并安装zlib库(或其兼容版本zlib-ng)。
构建项目
Cmake方式
bash
cmake .
cmake --build . --config Release
ctest --verbose -C Release
也可以使用cmake配置GUI工具ccmake:
bash
ccmake .
Configure方式
bash
./configure
make
make test
安装项目
注意:不建议手动安装,以免覆盖系统默认zlib库,导致系统不稳定。若需手动安装,建议使用/opt/
路径前缀。对于Linux发行版,可通过_LD_PRELOAD_
环境变量临时使用zlib-ng。
Cmake安装
bash
cmake --build . --target install
Configure安装
bash
make install
使用项目
编译本项目中的测试用例,运行测试用例时可通过命令行参数定制测试参数,观察测试结果确保压缩/解压缩功能正常。
注意事项
- 本项目依赖zlib库(或其兼容版本zlib-ng)进行实际的压缩和解压缩操作。
- 测试程序中的某些测试用例可能需要较大的内存和计算资源。
- 使用模糊测试工具libFuzzer进行模糊测试时,可能会生成大量随机输入数据,需确保有足够的磁盘空间。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】