powturbo/TurboPFor-Integer-Compression
FreeFastest Integer Compression
About powturbo/TurboPFor-Integer-Compression
TurboPFor is a high-performance integer compression library written in C, providing the fastest known integer compression and decompression routines. It supports full-range 8/16/32/64 bit integers via scalar and SIMD (SSE, AVX2, NEON) codecs on x86, ARMv8, and Power9 architectures. The library includes a wide variety of compression schemes: PFor/PForDelta, variable byte, bit packing, Simple family, Elias Fano, TurboVLC, hybrid TurboBitByte, and more. It features direct/random access to compressed data without full decompression, integrated delta/zigzag/xor transforms, and special optimizations for time series (Gorilla-style) and floating-point compression. Bindings are available for Rust and Java, allowing near-native performance. TurboPFor is designed for use in databases, search engines, time-series systems, and any application requiring high-throughput integer data compression.
Key Features
Pros & Cons
- Claimed to be fastest integer compression library available
- Extensive SIMD support for modern CPUs
- Direct access capability reduces decompression overhead
- Wide range of codecs for different data patterns
- Simple C API with optional high-level bindings
- Free and open source under permissive license
- Primarily focused on integer data; not a general-purpose compression library
- SIMD code paths require modern hardware (e.g., AVX2, NEON) for peak performance
- RISC-V support currently limited to scalar path without SIMD optimizations
- Learning curve for selecting appropriate codec for specific data
- Documentation appears mostly in source code comments and README