/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: Compression.hpp Date: 2021-6-9 Author: Reece ***/ #pragma once // Types #include "ECompressionType.hpp" #include "CompressionInfo.hpp" // Legacy API #include "StreamPipeProcessor.hpp" // Recommended API #include "ICompressionStream.hpp" #include "StreamProcessor.hpp" // Utility #include "BasicCompression.hpp" #include "CompressionInterceptor.hpp" // TODO: neat comment + real world data /* Ballpark figures of real world performance: https://www.gaia-gis.it/fossil/librasterlite2/wiki?name=benchmarks+(2019+update) RELATIVE Useful for compression ratio variation and realistic igors lzma decompression perf values 9th gen intel benchmark figures in MB/s: https://github.com/lz4/lz4 Similar to above, i7 bin: https://facebook.github.io/zstd/ LZMA -> Large packages. Sony conures. (Reliable 2.3 - 2.5. Scales all the way up to 20+. Extremely slow but scalable) LZ4 -> Network compression and other large data streams (~4.5GB/s, 2.884 compression ratio) ZSTD -> Standard use (~1.5GB/s to 2.5GB/s, respective compression ratios 2.4 and 2.1. Can be pushed to ~10 at around 750MB/s. Great general use. ) ZIP -> Zlib has a disgusting decompression upper limit of around 450MB/s for 2.7 */