About Zstd
Zstd,全称 Zstandard,是 Facebook 于 2016 年开源的新无损压缩算法。与 zlib、lz4、xz 等当前流行的压缩算法不同,Zstd 寻求一种压缩性能与压缩率通吃的方案,而实际上它也确实做到了。在由官方所列出的表格中,可以看到,Zstd 不仅具备优秀的压缩性能,在压缩率上也有非常亮眼的表现。
综合来说,Zstd 具有以下特性:
- 在压缩性能和压缩率上均有很突出的表现
- 支持以训练方式生成字典文件,可显著提高对小数据包的压缩率
About Zstd-jni
Zstd-jni,顾名思义,是基于 Zstd 本地库实现的 Java 调用接口。它支持通过 Java 语言实现 Zstd 的压缩与解压缩。
在 Zstd-jni 的三方包中,主要实现了以下功能:
- 提供静态的压缩与解压缩方法
- 支持压缩数据的流式传输
- 支持字典文件的训练与添加
Code Example
下面示例代码将展示 Zstd-jni 的压缩、解压、字典训练等功能:
package com.panda.zstd;
import com.github.luben.zstd.Zstd;
import com.github.luben.zstd.ZstdDictCompress;
import com.github.luben.zstd.ZstdDictDecompress;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* zstd 示例
*
* @author panda
* @date 2020/7/29
*/
public class ZstdDemo