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