std.compression
std.compression compresses and decompresses data and files via zstd and
lz4. Available only when the engine was built with those libraries —
otherwise calls throw UNSUPPORTED.
Reference
capability() // -> {zstd: bool, lz4: bool}
compress(data, "zstd"|"lz4"[, level])
decompress(data) // format auto-detected by frame magic bytes
compress_file(in, out, format[, level])
decompress_file(in, out)
| Function | Description |
|---|---|
capability() | Which backends are present |
compress(data, fmt[, lvl]) | Compress a string; zstd levels 1–19 (default 3); lz4 0 (fast) or HC |
decompress(data) | Decompress — format auto-detected |
compress_file(in, out, fmt[, lvl]) | File variant |
decompress_file(in, out) | File variant |
File paths accept ~ and $VAR expansion.
Examples
if (std.compression.capability().zstd) {
var packed = std.compression.compress("hello hello hello", "zstd", 3)
var back = std.compression.decompress(packed)
print(back) // hello hello hello
}
// file round-trip
std.compression.compress_file("plain.txt", "plain.zst", "zstd", 6)
std.compression.decompress_file("plain.zst", "plain2.txt")
// lz4 fast path
if (std.compression.capability().lz4) {
var p = std.compression.compress("data", "lz4")
print(std.compression.decompress(p))
}
Availability
var caps = std.compression.capability()
print(caps.zstd, caps.lz4)
if (!caps.zstd && !caps.lz4) {
print("no compression backends — build with zstd/lz4")
}