Overview
lzma wraps liblzma (the XZ Utils library), providing both the raw LZMA algorithm and the XZ container format. XZ is the standard compression format for Linux distribution packages and source tarballs, offering best-in-class compression ratio at the expense of speed.
CLib package
Requires liblzma-dev. Ubuntu/Debian: sudo apt install liblzma-dev
Quick Start
uses lzma;
var data := ReadFile('/data/large_dataset.json');
// XZ format — best ratio, includes integrity check
var compressed := CompressXZ(data);
var restored := DecompressXZ(compressed);
WriteLn('Original: ', Length(data), ' bytes');
WriteLn('Compressed: ', Length(compressed), ' bytes');
WriteLn('liblzma: ', LZMAVersion);
XZ Format (recommended)
// Compress to XZ (includes CRC64 integrity check + multi-stream support)
var xz := CompressXZ(data);
var xz9 := CompressXZLevel(data, LZMA_LEVEL_BEST); // maximum ratio
// Decompress XZ
var back := DecompressXZ(xz);
// Check if data is a valid XZ stream
if IsXZStream(data) then
WriteLn('XZ stream detected');
Raw LZMA
// Raw LZMA (no container — you manage integrity yourself)
var raw := Compress(data);
var raw6 := CompressLevel(data, 6);
var back := Decompress(raw);
File Operations
// Compress to .xz (streaming, memory-efficient for large files)
CompressFile('/data/backup.tar', '/data/backup.tar.xz');
// Decompress .xz or .lzma file
DecompressFile('/data/backup.tar.xz', '/data/backup.tar');
Base64 Transport
var b64 := CompressToBase64(payload); // XZ + base64
var back := DecompressFromBase64(b64);
Package Info
Version1.0.0
Typeclib
C Libraryliblzma (XZ Utils)
Authorgustavo
Functions
- Compress
- CompressLevel
- Decompress
- CompressXZ
- CompressXZLevel
- DecompressXZ
- CompressFile
- DecompressFile
- CompressToBase64
- DecompressFromBase64
- IsXZStream
- LZMAVersion
See Also
- bzip2
- zstd
- lz4
- compression (zlib)