Tarantool CE/EE Documentation portal logo
Support
Updated at September 7, 2026   01:25 PM

Submodule compress.zstd

Overview

The compress.zstd submodule provides the ability to compress and decompress data using the zstd algorithm. You can use the zstd compressor as follows:

  1. Create a compressor instance using the compress.zstd.new() function:

    local zstd_compressor = require('compress.zstd').new()-- or --local zstd_compressor = require('compress').zstd.new()

    Optionally, you can pass compression options (zstd_opts) specific for zstd:

local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)
  1. To compress the specified data, use the compress() method:
local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)
  1. To decompress data, call decompress():
local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)

API Reference

Below is a list of the compress.zstd functions and objects.

Name

Purpose

compress.zstd.new()

Create a zstd compressor instance

zstd_compressor

A zstd compressor instance

zstd_opts

Configuration options of the zstd compressor

compress.zstd.new([zstd_opts])

Create a zstd compressor instance.

Parameters:

  • zstd_opts (table) — zstd compression options (see zstd_opts)

Returns

a new zstd compressor instance (see zstd_compressor)

Return type

userdata

Example:

local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)

zstd_compressor

A compressor instance that exposes the API for compressing and decompressing data using the zstd algorithm. To create the zstd compressor, call compress.zstd.new().

zstd_compressor:compress(data)

Compress the specified data.

Parameters:

  • data (string) — data to be compressed

Returns

compressed data

Return type

string

Example:

local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)

zstd_compressor:decompress(data)

Decompress the specified data.

Parameters:

  • data (string) — data to be decompressed

Returns

decompressed data

Return type

string

Example:

local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)

zstd_opts

Configuration options of the zstd_compressor. These options can be passed to the compress.zstd.new() function.

Example:

local zstd_compressor = require('compress.zstd').new({    level = 5})compressed_data = zstd_compressor:compress('Hello world!')decompressed_data = zstd_compressor:decompress(compressed_data)print(decompressed_data)

zstd_opts.level

Specifies the zstd compression level that enables you to adjust the compression ratio and speed. The lower level improves the compression speed at the cost of compression ratio. For example, you can use level 1 if speed is most important and level 22 if size is most important.

  • Default: 3
  • Minimum: -131072
  • Maximum: 22