Overview
lz4 wraps the LZ4 library — the fastest general-purpose compressor available, achieving decompression speeds of 4–7 GB/s on modern hardware. LZ4 is used in Linux kernels, databases, network protocols, and real-time data pipelines where latency beats ratio.
CLib package
Requires liblz4-dev. Ubuntu/Debian: sudo apt install liblz4-dev
Speed vs Ratio Trade-off
Quick Start — Frame Format
uses lz4;
var data := ReadFile('/data/stream.bin');
// Frame format: self-contained (includes size + magic)
var packed := CompressFrame(data);
var back := DecompressFrame(packed);
WriteLn('Original: ', Length(data), ' bytes');
WriteLn('Compressed: ', Length(packed), ' bytes');
WriteLn('Version: ', LZ4Version);
Block API (low overhead)
// Block format: fastest, but you must store original size separately
var packed := Compress(data);
var back := Decompress(packed, Length(data)); // must pass original size
// High-Compression mode: same fast decompression, better ratio
var hc := CompressHC(data);
var hc12 := CompressHCLevel(data, LZ4HC_LEVEL_MAX); // level 12
Frame API (recommended for storage)
// Frame format stores the original size — no need to remember it
var packed := CompressFrame(data);
var hcpacked := CompressFrameHC(data, LZ4HC_LEVEL_DEFAULT); // better ratio
// Decompression reads size from header automatically
var back := DecompressFrame(packed);
// Check if data is LZ4 frame
if IsLZ4Frame(data) then
WriteLn('Valid LZ4 frame, size: ', CompressBound(Length(data)));
File Compression
// Standard LZ4 (fastest)
CompressFile('/data/access.log', '/data/access.log.lz4');
// High-compression mode
CompressFileHC('/data/large.bin', '/data/large.bin.lz4', 9);
// Decompress
DecompressFile('/data/access.log.lz4', '/data/access.log');
When to Use LZ4
LZ4 shines for real-time scenarios: network serialization, in-memory caches, write-ahead logs, live telemetry. Use CompressHC when you want better ratio and can afford slower compression (decompression stays equally fast).
Package Info
Version1.0.0
Typeclib
C Libraryliblz4
Authorgustavo
Functions
- Compress
- CompressHC
- CompressHCLevel
- Decompress
- CompressFrame
- CompressFrameHC
- DecompressFrame
- CompressFile
- CompressFileHC
- DecompressFile
- IsLZ4Frame
- CompressBound
- LZ4Version
See Also
- zstd (better ratio)
- bzip2
- lzma
- compression (zlib)