littlebot
Published on 2025-04-09 / 1 Visits
0

【源码】基于C语言的zlib数据压缩工具

项目简介

本项目使用C语言编写,基于zlib库实现数据压缩与解压缩功能。由于官方zlib库对第三方新优化贡献集成较慢,此项目作为zlib的一个可共存替代方案,可让代码更改的门槛更低。项目包含生成Huffman编码表、CRC校验码表等辅助数据结构的工具,还有用于测试zlib库功能的测试用例。

项目的主要特性和功能

  1. API兼容性:提供与zlib兼容的API,支持双链接,同时具备基于zlib API的现代化原生API,方便移植。
  2. 代码优化:采用现代C11语法和简洁代码布局,去除大量旧编译器的兼容性代码。
  3. 算法优化:采用基于英特尔zlib分支的Deflate中等和快速算法。
  4. 硬件加速:支持SSSE3、AVX2、Neon等多种CPU指令集,利用硬件加速Adler32、CRC32等计算和数据处理。
  5. 功能测试:有全面的CMake单元测试,支持代码清理、模糊测试和代码覆盖率检测。
  6. 压缩选项丰富:支持多种压缩级别和策略,能适应不同压缩需求。

安装使用步骤

前提条件

编译和运行代码前,需确保已安装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】