|
ZXC 0.15.0
High-performance asymmetric lossless compression library
|
One-shot buffer compression and decompression. More...
Go to the source code of this file.
Data Structures | |
| struct | zxc_frame_info_t |
| What a frame's header and footer declare, read without decoding. More... | |
Typedefs | |
| typedef struct zxc_cctx_s | zxc_cctx |
| Opaque reusable compression context (see zxc_create_cctx). | |
| typedef struct zxc_dctx_s | zxc_dctx |
| Opaque reusable decompression context (see zxc_create_dctx). | |
Functions | |
| int | zxc_min_level (void) |
| Minimum supported compression level. | |
| int | zxc_max_level (void) |
| Maximum supported compression level. | |
| int | zxc_default_level (void) |
| Default compression level. | |
| const char * | zxc_version_string (void) |
| Library version string, "MAJOR.MINOR.PATCH". | |
| uint64_t | zxc_compress_bound (const size_t input_size) |
Maximum compressed size for an input of input_size bytes. | |
| int64_t | zxc_compress (const void *src, const size_t src_size, void *dst, const size_t dst_capacity, const zxc_compress_opts_t *opts) |
| Compresses a buffer into a complete ZXC archive. | |
| int64_t | zxc_decompress (const void *src, const size_t src_size, void *dst, const size_t dst_capacity, const zxc_decompress_opts_t *opts) |
| Decompresses a complete ZXC archive. | |
| size_t | zxc_decompress_inplace_bound (const void *src, const size_t src_size) |
Buffer size required for an in-place decompression of src. | |
| int64_t | zxc_decompress_inplace (void *buffer, const size_t buffer_capacity, const size_t comp_size, const zxc_decompress_opts_t *opts) |
| Decompresses inside a single caller-owned buffer. | |
| uint64_t | zxc_get_decompressed_size (const void *src, const size_t src_size) |
| Reads the original size from the archive footers, without decoding. | |
| uint32_t | zxc_get_dict_id (const void *src, size_t src_size) |
| Reads the dictionary ID from an archive header, without decoding. | |
| int | zxc_get_frame_info (const void *src, size_t src_size, zxc_frame_info_t *info, size_t info_size) |
| Reads a frame's header and footer, without decoding. | |
| int | zxc_get_last_frame_info (const void *src, size_t src_size, zxc_frame_info_t *info, size_t info_size) |
Reads the last frame of src, without decoding. | |
| size_t | zxc_frame_info_size (void) |
Returns sizeof(zxc_frame_info_t) as compiled into the library. | |
| uint64_t | zxc_compress_block_bound (size_t input_size) |
| Maximum compressed size for a single block. | |
| uint64_t | zxc_decompress_block_bound (const size_t uncompressed_size) |
Minimum dst_capacity zxc_decompress_block() needs for a block of uncompressed_size bytes. | |
| int64_t | zxc_compress_block (zxc_cctx *cctx, const void *src, size_t src_size, void *dst, size_t dst_capacity, const zxc_compress_opts_t *opts) |
| Compresses a single block without file framing. | |
| int64_t | zxc_decompress_block (zxc_dctx *dctx, const void *src, size_t src_size, void *dst, size_t dst_capacity, const zxc_decompress_opts_t *opts) |
| Decompresses a single block produced by zxc_compress_block(). | |
| int64_t | zxc_decompress_block_safe (zxc_dctx *dctx, const void *src, const size_t src_size, void *dst, const size_t dst_capacity, const zxc_decompress_opts_t *opts) |
| Decompresses a single block into an exactly-sized destination. | |
| uint64_t | zxc_estimate_cctx_size (size_t src_size, int level) |
| Estimates peak compression memory for a given block size and level. | |
| zxc_cctx * | zxc_create_cctx (const zxc_compress_opts_t *opts) |
| Creates a reusable compression context. | |
| void | zxc_free_cctx (zxc_cctx *cctx) |
| Frees a compression context and its resources. | |
| int64_t | zxc_compress_cctx (zxc_cctx *cctx, const void *src, size_t src_size, void *dst, size_t dst_capacity, const zxc_compress_opts_t *opts) |
| Compresses data using a reusable context. | |
| zxc_dctx * | zxc_create_dctx (void) |
| Creates a reusable decompression context. | |
| void | zxc_free_dctx (zxc_dctx *dctx) |
| Frees a decompression context and its resources. | |
| int64_t | zxc_decompress_dctx (zxc_dctx *dctx, const void *src, size_t src_size, void *dst, size_t dst_capacity, const zxc_decompress_opts_t *opts) |
| Decompresses data using a reusable context. | |
| int64_t | zxc_decompress_inplace_dctx (zxc_dctx *dctx, void *buffer, const size_t buffer_capacity, const size_t comp_size, const zxc_decompress_opts_t *opts) |
| In-place decompression with a caller-supplied context. | |
| size_t | zxc_static_cctx_workspace_size (const size_t block_size, const int level) |
| Exact size of a static compression workspace. | |
| zxc_cctx * | zxc_init_static_cctx (void *workspace, const size_t workspace_size, const zxc_compress_opts_t *opts) |
| Initialises a compression context inside a caller-supplied workspace. | |
| size_t | zxc_static_dctx_workspace_size (const size_t block_size) |
| Exact size of a static decompression workspace. | |
| zxc_dctx * | zxc_init_static_dctx (void *workspace, const size_t workspace_size, const size_t block_size) |
| Initialises a decompression context inside a caller-supplied workspace. | |
One-shot buffer compression and decompression.
The simplest way to use ZXC: one input buffer in, one output buffer out. Everything here is single-threaded and blocking.
FILE* streaming. Definition in file zxc_buffer.h.