Format Atlas

对比

LZ4 与 Zstandard:帧兼容性和设置

两者都无损,但 LZ4 帧与 Zstandard 帧的字节格式不兼容。

应该选择哪种格式?

先确认接收端支持,再用实际数据比较大小、压缩时间和解压时间。

适用于 LZ4

将文件或连续数据压缩为 LZ4 帧

  • 向支持 LZ4 的读取工具交付数据

适用于 Zstandard

无损压缩文件和数据流 · 压缩软件包和数据传输

  • 发送和接收端都支持 zstd 时调整速度与压缩率
  • 流式处理或使用字典压缩

基本信息

项目LZ4Zstandard
扩展名.lz4.zst
MIME 类型application/zstd
常见用途将文件或连续数据压缩为 LZ4 帧无损压缩文件和数据流 · 压缩软件包和数据传输
打开方式用支持帧格式的工具打开并检查完整性。原始块需要大小等外部信息;改扩展名不会把它封装成帧。使用支持 zstd 的解压工具或库。处理未知压缩文件前,请检查来源、解压后大小和可用内存。
导出或转换先解压再用 Zstandard 等格式重新压缩,并比较解压后数据的哈希。多文件先用 TAR 打包。保留使用过的外部字典。转换为 gzip 或 xz 时,先解压再重新压缩。之后比较文件内容或校验和,并考虑大小、耗时和接收端兼容性。tar.zst 是 tar 归档再经 zstd 压缩的组合;单独的 .zst 不是归档格式。

按用途选择

向支持 LZ4 的读取工具交付数据

将文件或连续数据压缩为 LZ4 帧

LZ4

发送和接收端都支持 zstd 时调整速度与压缩率

无损压缩文件和数据流 · 压缩软件包和数据传输

Zstandard

流式处理或使用字典压缩

无损压缩文件和数据流 · 压缩软件包和数据传输

Zstandard

关键点 1

区分 LZ4 原始块与帧。

进一步了解差异

关键点 2

RFC 8878 定义 Zstandard 的帧和字典。

进一步了解差异

进一步了解差异

重视快速处理时可评估 LZ4,但也应在相同条件下测试 Zstandard 设置。不能只凭格式名称判断优劣。

  • 检查 LZ4 的独立或依赖块及校验和设置。帧规范本身不提供随机访问索引。
  • 使用字典时,要给读取端提供对应格式所用的同一字典。多文件需要另用 TAR 等打包。

常见问题

改扩展名就能转换吗?

不能。必须解压后重新压缩,并比较恢复字节的哈希。LZ4 与 Zstandard 的字典也不一定能互换。

了解详情

参考资料与规范