Module: compress.lz4
Source: ./compress/lz4.reef
Overview
compress/lz4 - LZ4 fast compression using FFI
This module provides LZ4 compression/decompression using the system's liblz4 library via FFI. LZ4 is designed for very fast compression and decompression speeds.
IMPORTANT: This module requires the LZ4 library (-llz4) to be linked. Install: apt install liblz4-dev (Debian/Ubuntu)
Usage: import compress.lz4 unsafe let src: [byte] = lz4_alloc_buffer(100) // Fill src with data let dest: [byte] = lz4_alloc_buffer(lz4_compress_bound(100)) let compressed_len = lz4_compress(src, 100, dest, dest_size) end unsafe
Functions
fn LZ4_compressBound(inputSize: int): int
LZ4 FFI functions
fn LZ4_compress_default(src: pointer, dst: pointer, srcSize: int, dstCapacity: int): int
fn LZ4_compress_fast(src: pointer, dst: pointer, srcSize: int, dstCapacity: int, acceleration: int): int
fn LZ4_compress_HC(src: pointer, dst: pointer, srcSize: int, dstCapacity: int, compressionLevel: int): int
fn LZ4_decompress_safe(src: pointer, dst: pointer, compressedSize: int, dstCapacity: int): int
fn LZ4_HC_MIN(): int
fn LZ4_HC_DEFAULT(): int
fn LZ4_HC_MAX(): int
fn lz4_alloc_buffer(size: int): [uint8]
Allocate a byte buffer for use with LZ4 functions
fn lz4_compress_bound(src_len: int): int
Returns the maximum compressed size for given input size
fn lz4_compress(src: [uint8], src_len: int, dest: [uint8], dest_len: int): int
Compress data using default settings Returns compressed size, or 0 if compression fails
fn lz4_compress_fast(src: [uint8], src_len: int, dest: [uint8], dest_len: int, accel: int): int
Compress data with speed acceleration acceleration: 1 = default, higher values = faster but worse ratio Returns compressed size, or 0 if compression fails
fn lz4_compress_hc(src: [uint8], src_len: int, dest: [uint8], dest_len: int, level: int): int
Compress data using high compression mode (slower, better ratio) level: 3 (min) to 12 (max), 9 is default Returns compressed size, or 0 if compression fails
fn lz4_decompress(src: [uint8], src_len: int, dest: [uint8], dest_len: int): int
Decompress data dest_len: maximum expected decompressed size (must be exact or larger) Returns decompressed size, or negative value on error
Generated by reefc doc