Expand description
§Haagenti Core
Core traits, types, and streaming API for the Haagenti compression library.
Haagenti is named after the 48th demon of the Ars Goetia, who transmutes substances into more valuable forms - just as compression transforms data into denser representations.
§Design Philosophy
- Zero-copy where possible: Minimize allocations and memory copies
- Streaming-first: All operations support incremental processing
- SIMD-ready: Types designed for vectorized operations
- No-std compatible: Core traits work without standard library
§Core Traits
Compressor- One-shot compression operationsDecompressor- One-shot decompression operationsCodec- Combined compress/decompress capabilityStreamingCompressor- Incremental compressionStreamingDecompressor- Incremental decompression
§Example
ⓘ
use haagenti_core::{Codec, CompressionLevel};
use haagenti_lz4::Lz4Codec;
let codec = Lz4Codec::with_level(CompressionLevel::Fast);
let compressed = codec.compress(data)?;
let original = codec.decompress(&compressed)?;Re-exports§
pub use error::Error;pub use error::Result;pub use stats::CompressionStats;pub use stats::Metrics;pub use stream::Flush;pub use stream::StreamConfig;pub use stream::StreamState;pub use traits::Codec;pub use traits::Compressor;pub use traits::Decompressor;pub use traits::DictionaryCompressor;pub use traits::DictionaryDecompressor;pub use traits::ParallelCompressor;pub use traits::SimdCompressor;pub use traits::StreamingCompressor;pub use traits::StreamingDecompressor;pub use types::Algorithm;pub use types::Checksum;pub use types::CompressionLevel;pub use types::CompressionRatio;pub use types::WindowSize;