compression
Data compression and decompression for PascalAI via zlib native binding. Compress strings and files, gzip, zip, and unzip.
Install
ppm install compression
Usage Example
uses compression;
// In-memory compression
var data := 'This is a long string to compress...';
var compressed := Compress(data);
var original := Decompress(compressed);
// Gzip single files
GZipFile('large-log.txt', 'large-log.txt.gz');
GUnzipFile('large-log.txt.gz', 'restored.txt');
// Zip entire directories
ZipDir('/home/user/project', 'project-backup.zip');
UnzipDir('project-backup.zip', '/tmp/restore');
// Compression ratio info
var ratio := Length(compressed) / Length(data);
WriteLn('Ratio: ' + FloatToStr(ratio));
Features
Compress / Decompress: in-memory zlib deflate/inflate
GZipFile / GUnzipFile: single-file gzip compression
ZipDir: create a ZIP archive from a directory
UnzipDir: extract a ZIP archive to a directory
Configurable compression level (1-9)
Streaming compression for large data