ddn.compressor.zstd
ddn.compressor.zstd
Zstandard (ZSTD) compression/decompression provider built on ddn-lib-zstd.
This module implements the streaming Compressor and Decompressor interfaces from ddn.api.compressor and registers itself under:
- Enum registry:
CompressionFormat.ZSTD - String registry: formatId "zstd" with provider name "lib-zstd"
The implementation uses libzstd's streaming API (ZSTD_compressStream2 / ZSTD_decompressStream) for true incremental compression and decompression.
Provider name convention: vendor "lib", toString() returns "lib-zstd".
Copyright
BSD-3-Clause
Module Initializers 1
shared static this
()Types 2
classZstdCompressor : Compressor
ZSTD compressor that implements ddn.api.compressor.Compressor using libzstd's streaming API (ZSTD_compressStream2).
Fields
private CompressionOptions _optsprivate OutputSink _sinkprivate bool _finishedprivate ZSTD_CCtx _cctxprivate ubyte[] _outBufprivate ulong _bytesInprivate ulong _bytesOutMethods
void setOutputSink(OutputSink sink)Set the output sink delegate.void setProgressCallback(ProgressCallback callback)Set the progress callback.void write(const(ubyte)[] data)Feed uncompressed data into the stream.void finish()Finalize the stream.void reset()Reset the compression context for reuse.bool setDictionary(const(ubyte)[] dict)Set a compression dictionary.Constructors
this(CompressionOptions opts)Create a compressor with provided options.Destructors
~thisRelease the ZSTD context.classZstdDecompressor : Decompressor
ZSTD decompressor that implements ddn.api.compressor.Decompressor using libzstd's streaming API (ZSTD_decompressStream).
Fields
private DecompressionOptions _optsprivate OutputSink _sinkprivate bool _finishedprivate ZSTD_DCtx _dctxprivate ubyte[] _outBufprivate ulong _bytesInprivate ulong _bytesOutprivate bool _frameCompleteMethods
void setOutputSink(OutputSink sink)Set the output sink delegate.void setProgressCallback(ProgressCallback callback)Set the progress callback.void write(const(ubyte)[] data)Feed compressed data into the stream.void finish()Finalize the stream.void reset()Reset the decompression context for reuse.bool setDictionary(const(ubyte)[] dict)Provide a dictionary if required.Constructors
this(DecompressionOptions opts)Create a decompressor with provided options.Destructors
~thisRelease the ZSTD context.Functions 6
private fn
int toZstdLevel(CompressionOptions opts)Map `CompressionLevel` / numericLevel to zstd compression level.private fn
int toZstdStrategy(CompressionStrategy strategy)Map `CompressionStrategy` to zstd strategy constant.private fn
int toZstdChecksum(ChecksumType cs)Map `ChecksumType` to zstd checksum flag (0 = disabled, 1 = enabled).private fn
void throwZstdError(size_t rc, string context)Convert `CompressionError` from a ZSTD return code.fn
Compressor makeZstdCompressor(CompressionOptions opts)Factory function that constructs a `ZstdCompressor`.fn
Decompressor makeZstdDecompressor(DecompressionOptions opts)Factory function that constructs a `ZstdDecompressor`.