zlib
zlib 是 DEFLATE 生态中最常见的工程库之一。它不是最新的算法,但兼容性非常强。
核心思想
DEFLATE 结合 LZ77 字典匹配和 Huffman 编码。zlib 提供稳定、广泛可用的接口。
为什么它到现在还很重要
很多时候,zlib 的价值不在于“最强”,而在于“几乎到处都能用”:
- 大量现有协议、格式和工具默认支持它。
- 构建依赖轻,跨平台历史长。
- 对很多业务来说,兼容性和稳定性比极限指标更重要。
工程取舍
| 维度 | 特点 |
|---|---|
| 压缩速度 | 中等 |
| 解压速度 | 中等到较快 |
| 压缩率 | 中等 |
| 内存 | 较低 |
| 流式 | 支持 |
常见工程特征
- 适合与 gzip / zlib 包装格式生态协同工作。
- 既可以做简单 buffer 压缩,也可以做流式压缩。
- 是许多“先上一个可靠方案”场景里的保守默认值。
适用场景
- 需要广泛兼容的文件或网络格式
- gzip/zlib 生态集成
- 老系统和跨平台组件
调参时通常先看什么
- 压缩级别是否需要从默认值提高。
- 是否需要流式接口配合网络或文件读写。
- 是否真正需要兼容 gzip / zlib 外层格式。
使用时的常见坑
- 用它和 Brotli、ZSTD 比较时忘记它的兼容性红利。
- 认为“不是最新算法就不值得用”,忽略了部署现实。
C++ 示例
查看 zlib C++ 示例。