x-cmd pkg | zstd - Facebook 开发高性能压缩工具

发布时间:2024年01月16日

简介

zstd (Zstandard)是一种开源的数据压缩算法和压缩库,旨在提供高性能的数据压缩和解压缩功能。它由Facebook开发并开源,是一种通用的压缩算法,可以用于压缩各种类型的数据,包括文本、图像、音频和其他二进制数据。

Zstandard 算法是一种快速的、可配置的压缩算法,支持多个压缩级别,可以根据需求进行权衡,以获得最佳的性能和压缩比。

首次用户

  1. 使用 x zstd 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 zstd 命令常用功能的 demo 示例,可以帮你快速上手 zstd 。

  3. 使用案例:

    zstd-1min-cn

    # 保存 emoji symbols 到 emoji_symbols.txt 文件
    x emoji ls symbols --csv > emoji_symbols.txt
    
    # 将 emoji_symbols.txt 文件压缩到 emoji.zst 文件
    x zstd emoji_symbols.txt -o emoji.zst
    
    # 指定压缩级别,数字越大压缩比越高,压缩速度越慢
    x zstd -10 emoji_symbols.txt -o emoji_10.zst
    
    # 在不解压的情况下查看压缩文件的详细信息
    x zstd -l emoji.zst emoji_10.zst
    
    # 将 emoji.zst 文件并解压并保存到 emoji.txt 文件中
    x zstd -d emoji.zst -o emoji.txt
    

zstd对压缩小文件的优化

当需要压缩的数据量较小时,压缩算法会面临困难。这是因为压缩算法以通过前面处理数据的模式(建立并更新词典)来实现对当前数据压缩。当需要压缩的数据集较小时,没有充足"过去的数据"可供参考,因此往往难以有效地利用数据特征以提高压缩比。

为了解决这个问题,Zstandard 引入了一种新的’训练模式’,用于优化压缩算法以适应特定类型的数据。通过训练 Zstandard,您可以提供一些数据样本(每个样本对应一个文件),然后将训练结果存储在称为“字典”的文件中。在压缩和解压缩数据之前,必须加载此字典。使用这个字典,Zstandard可以在小数据集上实现更好的压缩率,即使数据规模较小也能获得较好的压缩效果。

配置灵活

zstd提供了广泛的配置选项,允许用户根据其特定需求来平衡性能和压缩比。当需要时,它可以将压缩速度交换为更高的压缩比率(压缩速度与压缩比率的权衡可以通过小增量来配置),反之亦然。

丰富的语言库

高达45种语言及其不同的版本都提供了zstd的库。具体列表点击这里查看

竞品和相关作品

  1. x-cmd 提供 zuz 这个模块,该模块支持多种主流格式,并提供了更为友好和方便的压缩解压操作。
  2. zlib("z"表示无损压缩,"lib"表示库),这个库是主流 gzip 压缩算法的实现,被广泛应用。
  3. 7ziplzma, 1min for 7zip
  4. xz 以及 xz utils

进一步阅读

文章来源:https://blog.csdn.net/edwinjhlee/article/details/135631804
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。