Submodule compress.zstd
The compress.zstd submodule provides the ability to compress and
decompress data using the zstd
algorithm. You can use the zstd compressor as follows:
-
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)
- 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)
- 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)
Below is a list of the compress.zstd functions and objects.
Name | Purpose |
|---|---|
Create a | |
A | |
Configuration options of the |
Create a zstd compressor instance.
Parameters:
zstd_opts(table) —zstdcompression 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)
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().
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)
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)
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)
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