Skip to main content

Crate oxigdal_compress

Crate oxigdal_compress 

Source
Expand description

OxiGDAL Compression Library

Advanced compression codecs and auto-selection for geospatial data.

§Features

  • Standard Codecs: LZ4, Zstandard, Brotli, Snappy, DEFLATE
  • Geospatial Codecs: Delta encoding, RLE, Dictionary compression
  • Floating-Point: ZFP and SZ-style compression with error bounds
  • Auto-Selection: Intelligent codec selection based on data characteristics
  • Parallel Processing: Multi-threaded compression/decompression
  • Benchmarking: Built-in performance measurement

§Examples

use oxigdal_compress::{
    codecs::{Lz4Codec, ZstdCodec},
    auto_select::{AutoSelector, CompressionGoal, DataType, DataCharacteristics},
};

// Basic compression with LZ4
let codec = Lz4Codec::new();
let data = b"Hello, world!".repeat(1000);
let compressed = codec.compress(&data)?;
let decompressed = codec.decompress(&compressed, Some(data.len()))?;
assert_eq!(decompressed, data);

// Auto-selection
let selector = AutoSelector::new(CompressionGoal::Balanced);
let characteristics = DataCharacteristics {
    data_type: DataType::Categorical,
    size: 10000,
    entropy: 0.3,
    unique_count: Some(10),
    value_range: None,
    run_length_ratio: Some(50.0),
};
let recommendations = selector.recommend(&characteristics);
println!("Recommended codec: {:?}", recommendations[0].codec);

Re-exports§

pub use error::CompressionError;
pub use error::Result;

Modules§

auto_select
Automatic codec selection
benchmark
Built-in compression benchmarking
codecs
Compression codecs
error
Error types for compression operations
floating_point
Floating-point compression
metadata
Compression metadata and statistics
parallel
Parallel compression and decompression
prelude
Prelude module for common imports