Zstandard(简称 zstd)是 Meta 开源的一种快速无损压缩算法,专为实时压缩场景设计。其压缩速度接近 zlib 水平,同时能提供更高的压缩率。
Zstandard 的底层熵编码阶段速度极快,主要由 Huff0 和 FSE 库提供支持。
该压缩格式已趋于稳定,并正式收录于 RFC 8878 标准中,目前已有多个独立实现。
本仓库提供的是 Zstandard 的参考实现,这是一个使用 C 语言 编写的开源库,采用 BSD 或 GPLv2 双许可证。
此外,它还提供了命令行工具,支持生成和解压以下格式的文件:
.zst、.gz、.xz 和 .lz4
ASP.NET Core 11 原生支持 Zstandard
Zstandard 正式纳入 System.IO.Compression。
ASP.NET Core 现已支持 Zstandard(zstd),可用于响应压缩和请求解压缩。
这意味着现有的 Response Compression Middleware 和 Request Decompression Middleware 均已加入对 zstd 的支持,且默认启用。
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddResponseCompression();
builder.Services.AddRequestDecompression();
builder.Services.Configure<ZstandardCompressionProviderOptions>(options =>
{
options.CompressionOptions = new ZstandardCompressionOptions
{
Quality = 6// 取值范围 1-22,数值越高,压缩率越高,但速度越慢
};
});
其中 Quality 参数用于控制 Zstandard 的压缩级别:
-
数值越低,压缩速度越快,但压缩率相对较低 -
数值越高,压缩率越高,但会消耗更多 CPU 和时间 -
可配置范围为 1-22
总结
Zstandard 堪称当前通用无损压缩算法中的第一梯队。其最大优势并非单纯追求极致压缩率,而是在压缩率、压缩速度和解压速度之间取得了卓越的平衡。

