Skip to content

zlib

zlib 是 DEFLATE 生态中最常见的工程库之一。它不是最新的算法,但兼容性非常强。

核心思想

DEFLATE 结合 LZ77 字典匹配和 Huffman 编码。zlib 提供稳定、广泛可用的接口。

为什么它到现在还很重要

很多时候,zlib 的价值不在于“最强”,而在于“几乎到处都能用”:

  • 大量现有协议、格式和工具默认支持它。
  • 构建依赖轻,跨平台历史长。
  • 对很多业务来说,兼容性和稳定性比极限指标更重要。

工程取舍

维度特点
压缩速度中等
解压速度中等到较快
压缩率中等
内存较低
流式支持

常见工程特征

  • 适合与 gzip / zlib 包装格式生态协同工作。
  • 既可以做简单 buffer 压缩,也可以做流式压缩。
  • 是许多“先上一个可靠方案”场景里的保守默认值。

适用场景

  • 需要广泛兼容的文件或网络格式
  • gzip/zlib 生态集成
  • 老系统和跨平台组件

调参时通常先看什么

  1. 压缩级别是否需要从默认值提高。
  2. 是否需要流式接口配合网络或文件读写。
  3. 是否真正需要兼容 gzip / zlib 外层格式。

使用时的常见坑

  • 用它和 Brotli、ZSTD 比较时忘记它的兼容性红利。
  • 认为“不是最新算法就不值得用”,忽略了部署现实。

C++ 示例

查看 zlib C++ 示例