ExCodecs.Compression.Zstd (ex_codecs v0.1.0)

Copy Markdown View Source

Zstandard (Zstd) compression codec.

Zstd is a fast compression algorithm providing high compression ratios. It was developed by Yann Collet at Facebook and offers configurable compression levels from 1 (fastest) to 22 (smallest).

Options

  • :level — Compression level, 1-22 (default: 3). Higher levels produce smaller output but take longer.
  • :window_log — Window log size. Controls the maximum reference distance.

Performance Characteristics

  • Fast decompression across all compression levels
  • Compression speed configurable via level
  • Excellent ratio at moderate speeds
  • Supports dictionary compression for small data

Examples

iex> {:ok, compressed} = ExCodecs.encode(:zstd, "hello world")
iex> {:ok, decompressed} = ExCodecs.decode(:zstd, compressed)
iex> decompressed
"hello world"

iex> {:ok, compressed} = ExCodecs.encode(:zstd, "hello world", level: 9)
iex> is_binary(compressed)
true

Summary

Functions

Returns codec metadata for the registry.

Decodes (decompresses) Zstd-compressed data.

Encodes (compresses) data using Zstd.

Functions

__codec_info__()

Returns codec metadata for the registry.

decode(data, opts)

Decodes (decompresses) Zstd-compressed data.

The decompressed size is read from the frame header.

encode(data, opts)

Encodes (compresses) data using Zstd.

Options

  • :level — Compression level 1-22 (default: 3)