Skip to main content

vecdb/variants/compressed/zstd/
mod.rs

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