Compression
Entropy coding, LZ coding, transforms and integer/float codecs.
Entropy coding
Coding symbols near their information content.
Huffman coding
lowOptimal prefix code with whole-bit codeword lengths; table-driven decoding at about one symbol per few cycles, the entropy stage of DEFLATE, JPEG and zstd literals.
Arithmetic coding
lowEncodes a whole message as one number in [0,1), spending fractional bits per symbol; pairs with adaptive context models for the best ratios.
Asymmetric numeral systems (ANS)
lowEntropy coder that packs fractional bits into a single integer state; arithmetic-coding ratio at Huffman-like speed, the entropy stage of zstd and LZFSE.
context modeling
Planned.
LZ / dictionary coding
Replacing repeats with back-references.
LZ77
lowReplace repeated byte strings with (distance, length) back-references into a sliding window; the parsing stage of gzip, LZ4, zstd, Brotli and xz.
LZ4
lowByte-aligned LZ77 with no entropy stage; compresses at hundreds of MB/s and decompresses at several GB/s per core, for when speed beats ratio.
Zstandard (zstd)
lowLZ77 plus Huffman and FSE entropy coding, with levels from LZ4-like speed to xz-like ratio, all decoding at about 1-2 GB/s.
Dictionary compression
lowPrime the compressor with shared, pre-trained content so small messages can reference it; often 2-5x better ratio on sub-KB records.
deflate
Planned.
Transforms
Reshaping data so it compresses better.
Burrows-Wheeler transform (BWT)
lowReversible permutation that sorts every character by the context following it, clustering equal bytes into runs; the core of bzip2 and of FM-index text search.
Delta encoding
lowStore differences between consecutive values instead of the values, turning sorted IDs, timestamps and counters into small numbers that pack into few bits.
run length encoding
Planned.
prefix compression
Planned.
dictionary encoding
Planned.
vector quantization
Planned.
Integer codecs
Compressing integer arrays and IDs.
Varint (LEB128)
lowVariable-length integers in 7-bit groups with a continuation bit; small numbers take 1 byte, the wire format of Protobuf, WebAssembly and DWARF.
Bit packing and PFOR
lowStore blocks of integers with exactly b bits each and patch rare outliers separately (PFOR); the fastest integer codec family, billions of values per second.
Stream VByte
lowInteger codec that keeps 2-bit lengths in a separate control stream, so one table-driven SIMD shuffle decodes 4 integers without branches.
Roaring bitmaps
lowCompressed set of 32-bit integers in 64K-value chunks, each a sorted array, bitmap or run list; fast intersections, the standard for bitmap indexes.
Float & time-series codecs
Compressing measurements.
Gorilla XOR compression
lowTime-series codec: delta-of-delta timestamps plus XOR of consecutive float bit patterns, storing only changed bits; about 1.4 bytes per point.
swinging door compression
Planned.
block floating point compression
Planned.
Deltas & deduplication
Sending and storing only what changed.
binary delta diff
Planned.
rsync delta algorithm
Planned.
content defined chunking
Planned.
seekable compressed stream
Planned.