isolate all logic associated with block decompression into its own module. zstd_decompress is still in charge of context creation/destruction, frames, headers, streaming, special blocks, etc. Compressed blocks themselves are now handled within zstd_decompress_block .