BtrBlocks drops general-purpose codecs entirely. It uses a pool of fast, lightweight encodings (including run-length, dictionary, frequency, SIMD bit-packing, Fast Static Symbol Table (FSST) for strings, and Roaring bitmaps for nulls) and applies them in cascades. The output of one encoding becomes the input to the next. A string column might be dictionary-encoded, its integer codes run-length encoded, and those run lengths bit-packed.
Choosing a cascade by hand would be impractical, so BtrBlocks chooses automatically for each 64,000-value block. It samples ten runs of 64 values (1% of the block), rules out unsuitable schemes using simple statistics, trial-compresses the sample with each remaining scheme, and keeps the best. It then repeats the process on the output, up to three levels deep by default. Selection takes about 1.2% of total compression time.