vecdb/variants/compressed/zstd/mod.rs
1use crate::{CompressedVecInner, Format, impl_vec_wrapper};
2
3mod iterators;
4mod strategy;
5mod value;
6
7pub use iterators::*;
8pub use strategy::*;
9pub use value::*;
10
11/// Compressed storage using Zstd for maximum general-purpose compression.
12///
13/// Zstd (Zstandard) provides the best compression ratios among general-purpose
14/// algorithms, with good decompression speed. Ideal when storage is expensive.
15///
16/// # Performance Characteristics
17/// - Highest compression ratios (typically 3-5x, better than LZ4)
18/// - Fast decompression (slower compression than LZ4)
19/// - Works well with any data type
20///
21/// # When to Use
22/// - Storage space is expensive
23/// - Can tolerate slower compression (decompression is fast)
24#[derive(Debug, Clone)]
25#[must_use = "Vector should be stored to keep data accessible"]
26pub struct ZstdVec<I, T>(CompressedVecInner<I, T, ZstdStrategy<T>>);
27
28impl_vec_wrapper!(
29 ZstdVec,
30 CompressedVecInner<I, T, ZstdStrategy<T>>,
31 ZstdVecValue,
32 ZstdVecIterator,
33 CleanZstdVecIterator,
34 DirtyZstdVecIterator,
35 Format::Zstd
36);