splinter_rs/lib.rs
1//! Splinter is a compressed bitmap format similar to [Roaring
2//! Bitmaps](https://roaringbitmap.org/), optimized specifically for small,
3//! sparse sets of 32-bit unsigned integers (`u32`).
4//!
5//! ## Key Features:
6//!
7//! - **Tree-based Encoding**: Splinter encodes `u32` values into a 256-way tree
8//! structure by decomposing integers into big-endian component bytes. Nodes
9//! throughout the tree (including the root) are optimized into four different
10//! storage classes: tree, vec, bitmap, run.
11//! - **Zero-copy Access**: Designed for efficient querying without
12//! deserialization, the `SplinterRef` type allows direct, zero-copy reads from
13//! any type implementing `Deref<Target = [u8]>`.
14
15pub mod codec;
16pub mod cow;
17pub mod level;
18pub mod splinter;
19pub mod splinter_ref;
20pub mod traits;
21
22#[doc(hidden)]
23pub mod count;
24
25mod never;
26mod partition;
27mod partition_kind;
28mod partition_ops;
29mod segment;
30mod util;
31
32#[doc(inline)]
33pub use cow::CowSplinter;
34#[doc(inline)]
35pub use splinter::Splinter;
36#[doc(inline)]
37pub use splinter_ref::SplinterRef;
38
39#[doc(inline)]
40pub use crate::{
41 codec::Encodable,
42 traits::{Cut, Merge, Optimizable, PartitionRead, PartitionWrite},
43};
44
45#[cfg(any(test, feature = "testutil"))]
46pub mod testutil;