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 operations - [
Decompressor] - One-shot decompression operations - [
Codec] - Combined compress/decompress capability - [
StreamingCompressor] - Incremental compression - [
StreamingDecompressor] - 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)?;