| Crates.io | zipora |
| lib.rs | zipora |
| version | 2.1.2 |
| created_at | 2025-08-03 10:57:26.747945+00 |
| updated_at | 2026-01-19 03:01:47.236831+00 |
| description | High-performance Rust implementation providing advanced data structures and compression algorithms with memory safety guarantees. Features LRU page cache, sophisticated caching layer, fiber-based concurrency, real-time compression, secure memory pools, SIMD optimizations, and complete C FFI for migration from C++. |
| homepage | |
| repository | https://github.com/infinilabs/zipora |
| max_upload_size | |
| id | 1779610 |
| size | 8,147,766 |
High-performance Rust data structures and compression algorithms with memory safety guarantees.
--features ffi)Migration Note: Version 2.0+ includes breaking changes. See Migration Guide.
[dependencies]
zipora = "2.1.2"
# With optional features
zipora = { version = "2.1.2", features = ["lz4", "ffi"] }
# AVX-512 (nightly only)
zipora = { version = "2.1.2", features = ["avx512"] }
use zipora::*;
// High-performance vector
let mut vec = FastVec::new();
vec.push(42).unwrap();
// Zero-copy strings with SIMD hashing
let s = FastStr::from_string("hello world");
println!("Hash: {:x}", s.hash_fast());
// Intelligent rank/select with automatic optimization
let mut bv = BitVector::new();
for i in 0..1000 { bv.push(i % 7 == 0).unwrap(); }
let adaptive_rs = AdaptiveRankSelect::new(bv).unwrap();
let rank = adaptive_rs.rank1(500);
// Unified Trie - Strategy-based configuration
use zipora::fsa::{ZiporaTrie, ZiporaTrieConfig, Trie};
let mut trie = ZiporaTrie::new();
trie.insert(b"hello").unwrap();
assert!(trie.contains(b"hello"));
// String-specialized trie
let mut string_trie = ZiporaTrie::with_config(ZiporaTrieConfig::string_specialized());
string_trie.insert(b"hello").unwrap();
// Unified Hash Map - Strategy-based configuration
use zipora::hash_map::{ZiporaHashMap, ZiporaHashMapConfig};
let mut map = ZiporaHashMap::new();
map.insert("key", "value").unwrap();
// String-optimized configuration
let mut string_map = ZiporaHashMap::with_config(ZiporaHashMapConfig::string_optimized());
string_map.insert("interned", 42).unwrap();
// Cache-optimized configuration
let mut cache_map = ZiporaHashMap::with_config(ZiporaHashMapConfig::cache_optimized());
cache_map.insert("cache", "optimized").unwrap();
// Blob storage with compression
let config = ZipOffsetBlobStoreConfig::performance_optimized();
let mut builder = ZipOffsetBlobStoreBuilder::with_config(config).unwrap();
builder.add_record(b"Compressed data").unwrap();
let store = builder.finish().unwrap();
// LRU Page Cache
use zipora::cache::{LruPageCache, PageCacheConfig};
let cache_config = PageCacheConfig::performance_optimized()
.with_capacity(256 * 1024 * 1024);
let cache = LruPageCache::new(cache_config).unwrap();
// Entropy coding
let encoder = HuffmanEncoder::new(b"sample data").unwrap();
let compressed = encoder.encode(b"sample data").unwrap();
| Feature | Default | Description |
|---|---|---|
simd |
Yes | SIMD optimizations (AVX2, SSE4.2) |
mmap |
Yes | Memory-mapped file support |
zstd |
Yes | ZSTD compression |
serde |
Yes | Serialization support |
lz4 |
No | LZ4 compression |
ffi |
No | C FFI bindings |
avx512 |
No | AVX-512 (nightly only) |
# Build
cargo build --release
# Test
cargo test --all-features
# Benchmark
cargo bench
# Lint
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
| Component | Target |
|---|---|
| Rank/Select | 0.3-0.4 Gops/s with BMI2 |
| Radix Sort | 4-8x vs comparison sorts |
| SIMD Memory | 4-12x bulk operations |
| Cache Hit | >95% with prefetching |
Business Source License 1.0 - See LICENSE for details.