@eryx/compression/zstd Module

JSON

Zstandard compression helpers: compress/decompress and dictionary support.

Summary

Classes

Compressor:write(data: buffer)buffer
Compressor:flush()buffer
Compressor:finish()buffer
Decompressor:write(data: buffer)(buffer, boolean)

Functions

zstd.compress(data: buffer, level: number?)buffer
zstd.decompress(data: buffer)buffer
zstd.compressBound(len: number)number
zstd.frameContentSize(data: buffer)number?
zstd.compressWithDict(data: buffer, dict: buffer, level: number?)buffer
zstd.decompressWithDict(data: buffer, dict: buffer)buffer
zstd.trainDictionary(samples: { buffer }, capacity: number)buffer
zstd.createCompressor(level: number?)Compressor

API Reference

Classes

Compressor

A streaming Zstandard compressor.

@class Compressor

Properties

Compressor:write

Compressor:write(data: buffer)buffer

Compressor:flush

Compressor:flush()buffer

Compressor:finish

Compressor:finish()buffer

Compressor:close

Compressor:close()()

Decompressor

A streaming Zstandard decompressor.

@class Decompressor

Properties

Decompressor:write

Decompressor:write(data: buffer)(buffer, boolean)

Decompressor:close

Decompressor:close()()

Functions

zstd.compress

Compress data with Zstandard.

zstd.compress(data: buffer, level: number?)buffer

Parameters

data: buffer

input bytes to compress

level: number?

compression level (CLEVEL_MIN..CLEVEL_MAX)

Returns

buffer

compressed zstd frame level: CLEVEL_MIN (negative, ultra-fast) - CLEVEL_MAX (22, best). Default CLEVEL_DEFAULT (3). Negative levels trade ratio for extreme speed.

zstd.decompress

Decompress a Zstandard frame.

zstd.decompress(data: buffer)buffer

Parameters

data: buffer

zstd frame to decompress

Returns

buffer

decompressed bytes Uses the content size embedded in the frame header when available (fast path).

zstd.compressBound

Upper bound on compressed output size for len input bytes.

zstd.compressBound(len: number)number

Parameters

len: number

input length in bytes

Returns

number

upper bound on compressed size

zstd.frameContentSize

Returns the decompressed size stored in the frame header, or nil if it was not stored (compressed with contentSize=0) or the frame is invalid.

zstd.frameContentSize(data: buffer)number?

Parameters

data: buffer

zstd frame

Returns

number?

decompressed size or nil

zstd.compressWithDict

Compress using a pre-trained dictionary. The same dictionary must be supplied to decompressWithDict.

zstd.compressWithDict(data: buffer, dict: buffer, level: number?)buffer

Parameters

data: buffer

input bytes

dict: buffer

dictionary data

level: number?

compression level

Returns

buffer

compressed frame

zstd.decompressWithDict

Decompress using a pre-trained dictionary.

zstd.decompressWithDict(data: buffer, dict: buffer)buffer

Parameters

data: buffer

compressed frame

dict: buffer

dictionary data used for compression

Returns

buffer

decompressed bytes

zstd.trainDictionary

Train a Zstandard dictionary from an array of sample buffers.

zstd.trainDictionary(samples: { buffer }, capacity: number)buffer

Parameters

samples: { buffer }

representative examples of data

capacity: number

desired dictionary size in bytes

Returns

buffer

trained dictionary samples: { buffer } - representative examples of data you plan to compress. capacity: desired dictionary size in bytes (e.g. 112640 = 110 KB). Returns a dictionary buffer ready to pass to compress/decompressWithDict.

zstd.createCompressor

Creates a streaming Zstandard compressor.

zstd.createCompressor(level: number?)Compressor

Parameters

level: number?

compression level (CLEVEL_MIN..CLEVEL_MAX)

Returns

the streaming compressor

zstd.createDecompressor

Creates a streaming Zstandard decompressor.

zstd.createDecompressor()Decompressor

Returns

the streaming decompressor

Constants