Submodule compress.zlib
Enterprise Edition
This submodule is a part of the Enterprise Edition.
The compress.zlib submodule provides the ability to compress and decompress data using the zlib algorithm.
You can use the zlib compressor as follows:
Create a compressor instance using the compress.zlib.new() function:
local zlib_compressor = require('compress.zlib').new() -- or -- local zlib_compressor = require('compress').zlib.new()
Optionally, you can pass compression options (zlib_opts) specific for
zlib:local zlib_compressor = require('compress.zlib').new({ level = 5, mem_level = 5, strategy = 'filtered' })
To compress the specified data, use the compress() method:
compressed_data = zlib_compressor:compress('Hello world!')
To decompress data, call decompress():
decompressed_data = zlib_compressor:decompress(compressed_data)
| Functions | |
| compress.zlib.new() | Create a zlib compressor instance. | 
| Objects | |
| zlib_compressor | A zlib compressor instance. | 
| zlib_opts | Configuration options of the zlib compressor. | 
- 
 
compress.zlib.new([zlib_opts])¶ Create a
zlibcompressor instance.Parameters: Return: a new
zlibcompressor instance (see zlib_compressor)Rtype: userdata
Example
local zlib_compressor = require('compress.zlib').new({ level = 5, mem_level = 5, strategy = 'filtered' })
- 
object 
zlib_compressor¶ A compressor instance that exposes the API for compressing and decompressing data using the
zlibalgorithm. To create thezlibcompressor, call compress.zlib.new().
- 
object 
zlib_opts¶ Configuration options of the zlib_compressor. These options can be passed to the compress.zlib.new() function.
Example
local zlib_compressor = require('compress.zlib').new({ level = 5, mem_level = 5, strategy = 'filtered' })
- 
 
zlib_opts.level¶ Specifies the
zlibcompression level that enables you to adjust the compression ratio and speed. The lower level improves the compression speed at the cost of compression ratio.Default: 6Minimum: 0 (no compression)Maximum: 9
- 
 
zlib_opts.mem_level¶ Specifies how much memory is allocated for the
zlibcompressor. The larger value improves the compression speed and ratio.Default: 8Minimum: 1Maximum: 9
- 
 
zlib_opts.strategy¶ Specifies the compression strategy. The possible values:
default- for normal data.huffman_only- forces Huffman encoding only (no string match). The fastest compression algorithm but not very effective in compression for most of the data.filtered- for data produced by a filter or predictor. Filtered data consists mostly of small values with a somewhat random distribution. This compression algorithm is tuned to compress them better.rle- limits match distances to one (run-length encoding).rleis designed to be almost as fast ashuffman_onlybut gives better compression for PNG image data.fixed- prevents the use of dynamic Huffman codes and provides a simpler decoder for special applications.
-