![](https://products-qa.fileformat.com/zh/compression/c/zstandard/header-image.png)
Zstandard
用于强大和快速压缩的 C 库
通过开源 C 库实现快速实时强大的压缩和解压缩
Zstandard 是一个开源 C 压缩库,它为 C 应用程序中的高压缩比提供了强大而快速的算法。该库提供了非常广泛的速度范围,并在双 BSD 和 GPLv2 许可下可用。该库支持字典压缩模式,这对于小数据压缩非常有用。
Zstandard 库针对 zlib 级别的实时压缩场景和更好的压缩比。该库支持从 1 到 22 的常规压缩级别。请记住,必须小心使用 20 级及更高级别,因为需要更多内存才能顺利工作。
该 API 非常稳定,有据可查,而且非常易于处理。它包括对与压缩和解压缩、流压缩和解压缩、字典辅助函数、帧大小调整、更好的内存管理相关的几个重要功能的支持。该库还支持用于压缩和解压缩、无缓冲区和同步内部流功能、无缓冲区流压缩和解压缩(同步模式)的高级功能。
Zstandard 入门
Zstandard的推荐安装方式来自GitHub,请使用以下命令顺利安装。
通过 GitHub 安装 Zstandard 库
gh repo clone facebook/zstd
通过 C API 进行压缩和解压缩
开源库 Zstandard 包含几个重要的压缩和解压缩函数。该库提供内存压缩和解压缩功能。它提供了几个压缩级别,可以扩展速度和比率偏好。您可以在单个命令中轻松压缩或解压缩单个文件以及多个文件。随着新版本的发布,解压速度得到了进一步的提升。
通过 C API 进行多线程压缩和解压缩
有几个压缩库是单线程的,这意味着用户需要信任另一个软件或编写自己的多线程代码。开源库 Zstandard 包含允许压缩操作使用 C 命令利用多个线程的功能。好处是压缩过程可以切换到多线程API,解压过程不需要任何特殊处理。
小数据压缩和解压
通常,已经看到压缩或解压缩少量数据总是非常困难的。这是大多数压缩程序面临的一个非常普遍的问题。 Zstandard 库通过提供一种允许用户选择选定数据类型的训练模式来改进这一点。因此,在训练模块中使用少量样本和少量数据来调整程序。训练模块的结果存储在一个名为字典的文件中,以供将来在任何压缩和解压缩之前使用。据观察,压缩算法从过去的数据中学习以及如何压缩未来的数据。因此使用字典的概念大大提高了对小数据的压缩和解压缩率。