summaryrefslogtreecommitdiff
path: root/dedup/compression.py
diff options
context:
space:
mode:
Diffstat (limited to 'dedup/compression.py')
-rw-r--r--dedup/compression.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/dedup/compression.py b/dedup/compression.py
index 2e9869c..742d7fd 100644
--- a/dedup/compression.py
+++ b/dedup/compression.py
@@ -5,6 +5,11 @@ import zlib
import lzma
+try:
+ import zstandard
+except ImportError:
+ zstandard = None
+
class Decompressor(typing.Protocol):
def copy(self) -> "Decompressor":
@@ -196,6 +201,10 @@ decompressors = {
'.xz': lzma.LZMADecompressor,
}
+if zstandard is not None:
+ decompressors[".zst"] = zstandard.ZstdDecompressor
+
+
def decompress(filelike: typing.BinaryIO, extension: str) -> typing.BinaryIO:
"""Decompress a stream according to its extension.
@param filelike: is a read-only byte-stream. It must support read(size) and