大数跨境

Zstandard 顶级压缩 API 正式成为ASP.NET Core 11 的一等公民

Zstandard 顶级压缩 API 正式成为ASP.NET Core 11 的一等公民 dotNET跨平台
2026-09-19
3
导读:Zstandard 可以算目前通用无损压缩算法里的第一梯队,它最大的优势不是单纯追求最高压缩率,而是在压缩率、压缩速度和解压速度之间取得了非常好的平衡。

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 堪称当前通用无损压缩算法中的第一梯队。其最大优势并非单纯追求极致压缩率,而是在压缩率、压缩速度和解压速度之间取得了卓越的平衡。

【声明】内容源于网络
0
0
dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
内容 2349
粉丝 0
dotNET跨平台 专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
总阅读73.3k
粉丝0
内容2.3k