ZXC 0.15.0
High-performance asymmetric lossless compression library
Loading...
Searching...
No Matches
zxc_constants.h File Reference

Public constants: library version, block sizes, compression levels. More...

Go to the source code of this file.

Macros

#define ZXC_VERSION_MAJOR   0
 Major version number.
 
#define ZXC_VERSION_MINOR   15
 Minor version number.
 
#define ZXC_VERSION_PATCH   0
 Patch version number.
 
#define ZXC_LIB_VERSION_STR
 Human-readable version string in "MAJOR.MINOR.PATCH" form (e.g.
 
#define ZXC_BLOCK_SIZE_MIN_LOG2   12
 log2(ZXC_BLOCK_SIZE_MIN) - exponent code for minimum block size.
 
#define ZXC_BLOCK_SIZE_MAX_LOG2   21
 log2(ZXC_BLOCK_SIZE_MAX) - exponent code for maximum block size.
 
#define ZXC_BLOCK_SIZE_DEFAULT   (512 * 1024)
 Default block size (512 KB).
 
#define ZXC_BLOCK_SIZE_MIN   (1U << ZXC_BLOCK_SIZE_MIN_LOG2)
 Minimum allowed block size (4 KB = 2^12).
 
#define ZXC_BLOCK_SIZE_MAX   (1U << ZXC_BLOCK_SIZE_MAX_LOG2)
 Maximum allowed block size (2 MB = 2^21).
 
#define ZXC_DICT_SIZE_MAX   ((1U << 16) - 1U)
 Maximum dictionary content size in bytes (64 KB - 1).
 
#define ZXC_DICT_MAGIC   0x9CB0D1C7U
 Magic word opening a .zxd dictionary file, stored little-endian (C7 D1 B0 9C).
 
#define ZXC_DICT_HEADER_SIZE   16
 Size of the .zxd dictionary file header in bytes.
 
#define ZXC_HUF_TABLE_SIZE   128
 Size of a packed literal Huffman code-lengths table (256 symbols, 4 bits each): the shared table in a .zxd file, and internally the per-block lengths header.
 
#define ZXC_MAX_THREADS   512
 Maximum n_threads for zxc_stream_compress / zxc_stream_decompress.
 
#define ZXC_MAGIC_WORD   0x9CB02EF5U
 Magic word opening every frame, stored little-endian (F5 2E B0 9C).
 
#define ZXC_FILE_HEADER_SIZE   16
 File header size: Magic(4) + Version(1) + Chunk(1) + Flags(1) + Reserved(7) + Checksum(2).
 
#define ZXC_FILE_FOOTER_MIN_SIZE   3
 Smallest file footer: original_size(1) + compressed_size(1) + lengths(1).
 
#define ZXC_FILE_FOOTER_MAX_SIZE   17
 Largest file footer, digest excluded: original_size(8) + compressed_size(8) + lengths(1).
 
#define ZXC_FILE_DIGEST_SIZE   8
 Archive digest, opening the footer when the header sets HAS_CHECKSUM.
 

Enumerations

enum  zxc_compression_level_t {
  ZXC_LEVEL_FASTEST = 1 , ZXC_LEVEL_FAST = 2 , ZXC_LEVEL_DEFAULT = 3 , ZXC_LEVEL_BALANCED = 4 ,
  ZXC_LEVEL_COMPACT = 5 , ZXC_LEVEL_DENSITY = 6 , ZXC_LEVEL_ULTRA = 7
}
 ZXC compression levels. More...
 

Detailed Description

Public constants: library version, block sizes, compression levels.

Include it to check the version at compile time, or to name the constants the rest of the API expects.

Definition in file zxc_constants.h.