Skip to content

Zstd (compress/zstd)

Modern compression with excellent ratio-to-speed balance (RFC 8878). Zstandard consistently outperforms both Gzip and LZ4 in compression ratio while maintaining competitive decompression speed.

Usage

rust
import { zstdCompress, zstdDecompress, zstdGetFrameContentSize } from "compress/zstd";

let data = "Zstandard in pure Vex!";
let ptr = data.as_ptr() as *void;
let len = data.len() as i64;

let outCap = len + len / 8 + 18;
let comp = alloc(outCap as u64);
let compLen = zstdCompress(ptr, len, comp, outCap);

let origSize = zstdGetFrameContentSize(comp, compLen);
let decomp = alloc(origSize as u64);
let decompLen = zstdDecompress(comp, compLen, decomp, origSize);

API

FunctionDescription
zstdCompress(src, srcLen, dst, dstCap): i64Compress into Zstd frame
zstdDecompress(src, srcLen, dst, dstCap): i64Decompress Zstd frame
zstdGetFrameContentSize(src, srcLen): i64Read content size from frame header

Internal Architecture

FilePurpose
compress.vxFrame compression with LZ77 matching
decompress.vxFrame decompression
fse.vxFinite State Entropy coding (tANS)
huffman.vxHuffman tree decoding
bitreader.vxBackward bit reader for entropy streams

The reference C implementation is ~20,000 lines. Vex achieves feature parity in ~1,060 lines — a 95% reduction.

Released under the MIT License.