littlebot
Published on 2025-04-08 / 2 Visits
0

【源码】基于C语言的下一代zlib数据压缩库

项目简介

本项目是下一代系统使用的zlib数据压缩库zlib-ng。它并非要取代原始的zlib,而是作为其可直接替换的版本,以更低的代码变更门槛与之共存。该库解决了原始zlib在进一步开发和维护方面的复杂问题,集成了众多优化改进,广泛适用于需要数据压缩的各类软件和应用程序。

项目的主要特性和功能

  1. API兼容:提供与zlib兼容的API,支持双链接,同时有基于zlib API的现代化原生API,便于移植。
  2. 代码优化:采用现代C11语法和简洁的代码布局,去除大量旧编译器的工作区代码,提升可维护性。
  3. 算法优化:基于Intel的zlib分支实现了Deflate中等和快速算法。
  4. 硬件加速:支持多种CPU指令集,如SSSE3、AVX2、Neon、VSX等,实现Adler32、CRC32等算法的硬件加速;支持IBM Z的硬件加速压缩。
  5. 内存优化:改进了非对齐内存读写和大位缓冲区操作。
  6. 构建支持:支持Configure、CMake和NMake构建系统,有全面的CMake单元测试。
  7. 质量保障:具备代码消毒、模糊测试和代码覆盖率检测。

安装使用步骤

构建

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发行版,若以zlib兼容模式编译zlib-ng,可通过_LD_PRELOAD_环境变量临时使用zlib-ng。

Cmake安装

bash cmake --build . --target install

Configure安装

bash make install

使用

安装完成后,在自己的项目中包含相应的头文件,即可使用zlib-ng库提供的函数和工具。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】