oxigdal-compress
Advanced compression codecs and auto-selection for geospatial data.
Features
- Standard Codecs: LZ4, Zstandard, Brotli, Snappy, DEFLATE
- Geospatial-Specific Codecs: Delta encoding, RLE, Dictionary compression
- Floating-Point Compression: ZFP and SZ-style with configurable error bounds
- Auto-Selection Engine: Intelligent codec selection based on data characteristics
- Parallel Processing: Multi-threaded compression/decompression with rayon
- Benchmarking: Built-in performance measurement tools
Installation
Add to your Cargo.toml:
[]
= "0.1.3"
Usage
Basic Compression
use ;
// LZ4 compression
let codec = new;
let data = b"Hello, world!".repeat;
let compressed = codec.compress?;
let decompressed = codec.decompress?;
// Zstandard compression with custom level
let config = with_level?;
let codec = with_config;
let compressed = codec.compress?;
Auto-Selection
use *;
let selector = new;
let characteristics = DataCharacteristics ;
let recommendations = selector.recommend;
println!;
Parallel Compression
use ParallelCompressor;
let compressor = new;
let data = vec!; // 10 MB
let = compressor.compress_lz4?;
println!;
let decompressed = compressor.decompress_lz4?;
Floating-Point Compression
use *;
let config = with_mode;
let codec = with_config;
let data: = .map.collect;
let compressed = codec.compress_f64?;
let decompressed = codec.decompress_f64?;
Codecs
Standard Codecs
- LZ4: Extremely fast compression and decompression
- Zstandard: Excellent compression ratios with good speed
- Brotli: Best compression ratios, slower speed
- Snappy: Very fast, moderate compression
- DEFLATE: Widely compatible (gzip/zlib)
Geospatial Codecs
- Delta: Efficient for coordinate data and time series
- RLE: Excellent for categorical rasters
- Dictionary: Great for data with limited unique values
Floating-Point Codecs
- ZFP: Fixed-rate, precision, or accuracy modes
- SZ: Error-bounded lossy compression
Performance
Typical performance on modern hardware:
| Codec | Speed | Ratio | Use Case |
|---|---|---|---|
| Snappy | 500 MB/s | 1.8x | Real-time processing |
| LZ4 | 450 MB/s | 2.0x | Fast compression |
| Zstd | 400 MB/s | 3.0x | Balanced performance |
| Deflate | 200 MB/s | 2.5x | Wide compatibility |
| Brotli | 100 MB/s | 3.5x | Maximum compression |
| Delta | 600 MB/s | 2.5x | Coordinate data |
| RLE | 550 MB/s | 8.0x | Categorical rasters |
License
Apache-2.0
Author
COOLJAPAN OU (Team Kitasan)