Skip to content

Awesome Compression Awesome

精选数据压缩(无损)算法、库、工具与学习资源,主要面向中文社区。

本仓库同时提供配套的中文文档站与可运行的 C++ 示例,见「本仓库配套内容」一节。

Contents

算法库

C / C++

  • Zstandard (zstd) - 工业级无损压缩算法(RFC 8878),压缩率与速度覆盖 1-22 级宽光谱调节,附命令行工具,被 Linux 内核、MySQL、RocksDB 等广泛集成.
  • LZ4 - 以极致解压速度著称的块压缩算法,广泛用于实时场景(Kafka、ClickHouse、RocksDB 等).
  • zlib - DEFLATE 的事实标准实现,gzip/zlib 格式的基础.
  • zlib-ng - 采用 SIMD 指令的现代化分支,大幅提升性能.
  • zlib (Cloudflare fork) - Cloudflare 维护的 zlib 优化分支,针对 Web 场景优化.
  • Brotli - 谷歌推出的高压缩率算法(RFC 7932),内置预训练字典,适合 Web 内容.
  • Snappy - 谷歌出品的高吞吐压缩库,压缩率低但极快,广泛用于大数据生态(Kafka、Parquet 等).
  • XZ Utils / liblzma - LZMA2 参考实现,.xz 格式与极高压缩率的代表.
  • bzip2 - 基于 Burrows-Wheeler 变换的经典压缩库.
  • libdeflate - 高度优化的 DEFLATE/zlib/gzip 实现,压缩率与速度均优于 zlib.
  • miniz - 单文件、零依赖的 DEFLATE 实现,适合嵌入式场景.
  • Zopfli - 以更慢的压缩时间换取最高 DEFLATE 压缩率,常用于静态资源发布.
  • LZFSE - Apple 的 LZ77+ANS 压缩算法,iOS/macOS 系统自带.
  • LZHAM - 压缩率接近 LZMA、解压更快的变形算法.
  • BSC - 基于 BWT + 上下文混合的高压缩率算法,本仓库示例之一.
  • LZMA SDK - 官方 LZMA SDK 的 GitHub 镜像(与 7-Zip 同源).
  • 7-Zip - 7z 格式官方源码镜像,支持 7z/xz/zstd 等多种格式.
  • FastLZ - 极简轻量的快速压缩库.
  • zling - 追求高压缩率与快速解压的通用压缩库.
  • FiniteStateEntropy (FSE) - ANS 熵编码(tANS)的参考实现,zstd 的核心组件.

Rust

  • zstd-rs - 为 zstd 提供 Rust 绑定.
  • flate2 - DEFLATE/gzip/zlib 的实现与绑定,Cargo 生态默认选择.
  • lz4_flex - 纯 Rust 的 LZ4 实现,含帧格式支持.
  • snap - 纯 Rust 的 Snappy 实现,含流式帧格式.
  • zlib-rs - ISRG 的 Prossimo 项目发起、用 Rust 重写的 zlib,性能与 zlib-ng 相当.
  • rust-brotli - Brotli 的纯 Rust 实现(Dropbox 维护).
  • lzma-rs - 纯 Rust 的 LZMA/LZMA2 解码实现.
  • miniz_oxide - 纯 Rust 的 DEFLATE 实现,flate2 的默认后端.

Go

  • klauspost/compress - Go 压缩算法集(zstd/snappy/gzip/brotli 等),注重性能.
  • pierrec/lz4 - LZ4 的 Go 实现(含帧格式).
  • snappy - 官方 Go 实现(标准库 compress/snappy 同源).
  • dsnet/compress - 纯 Go 的 brotli/bzip2/flate 实现.

Java

  • lz4-java - LZ4 的 Java 实现(含 JNI 加速与纯 Java 版本).
  • zstd-jni - 为 zstd 提供 JNI 绑定.
  • snappy-java - Snappy 的 JNI 绑定,Hadoop/Spark 生态常用.

Python

  • python-lz4 - LZ4 的 Python 绑定(块与帧格式).
  • python-zstandard - 为 zstd 提供功能完整的 Python 绑定(含字典训练).

JavaScript / Web

  • fflate - 快速、小体积的浏览器/Node 压缩库(gzip/deflate/zlib,支持 ZIP).
  • pako - 为 zlib 提供 JavaScript 移植,最经典的浏览器方案.
  • brotli.js - 纯 JS 的 Brotli 实现.

高压缩率与研究实现

  • cmix - 目前压缩率最高的通用压缩器之一(上下文混合 + 神经网络模型).
  • paq8px - PAQ 系列的高压缩率实现.
  • zpaq - 面向归档与增量备份的上下文混合压缩器.
  • ryg_rans - Fabian Giesen 的 rANS 教学实现(非库,学习用).

学习资源

中文资源

工具

  • 7-Zip - 最流行的开源归档工具,支持 7z/xz/zstd 等格式.
  • pigz - 并行 gzip 实现,充分利用多核.
  • lzip - 面向数据恢复的 LZMA 压缩工具(含 lziprecover).
  • Efficient Compression Tool (ECT) - 高性能文件优化器(PNG/JPEG/ZIP 等).
  • oxipng - Rust 编写的高效 PNG 优化器.
  • precomp - 对已压缩文件(ZIP/JPEG/PDF 等)进行再压缩.
  • UPX - 可执行文件压缩器.
  • bsdiff - 二进制差分压缩,常用于软件增量更新.
  • xdelta - 基于 VCDIFF 的差分压缩工具.

基准测试

格式与规范

本仓库配套内容

相关精选列表

贡献

欢迎通过 issue 或 PR 贡献新的条目、修正错误或补充中文资料。请先阅读 CONTRIBUTING.md。

许可证

本仓库(精选列表、文档与示例代码)以 CC0-1.0 发布。

About

精选数据压缩(无损)算法、库、工具与学习资源,面向中文社区 | Curated list of lossless data compression resources for the Chinese community

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors