Skip to main content

reddb_server/storage/primitives/
mod.rs

1//! Low-level storage primitives
2//!
3//! This module contains foundational utilities used by the storage engine:
4//! - **IDs**: Type-safe ID wrappers for all storage concepts (nodes, transactions, vectors)
5//! - Bloom filters for probabilistic membership testing
6//! - Encoding utilities for binary data serialization (varint, zigzag, IP addresses)
7//! - Memory-mapped file handling for efficient I/O
8//! - Serialization support for structured records
9//!
10//! These primitives are internal to the storage layer and should not be
11//! used directly by external code.
12
13pub mod bloom;
14pub mod count_min_sketch;
15pub mod cuckoo_filter;
16pub mod encoding;
17pub mod hyperloglog;
18pub mod ids;
19#[cfg(unix)]
20pub mod mmap;
21pub mod serializer;
22pub mod split_block_bloom;
23pub mod tdigest;
24
25// Re-export commonly used types
26pub use bloom::{BloomFilter, BloomFilterBuilder};
27pub use encoding::{
28    read_bytes, read_ip, read_string, read_vari32, read_vari64, read_varu32, read_varu64,
29    write_bytes, write_ip, write_string, write_vari32, write_vari64, write_varu32, write_varu64,
30    DecodeError, IpKey,
31};
32pub use hyperloglog::HyperLogLog;
33pub use ids::{
34    current_timestamp, next_btree_node_id, next_timestamp, next_txn_id, BTreeNodeId, EntityId,
35    HnswNodeId, PageId, SegmentId, Timestamp, TxnId, VectorId,
36};
37#[cfg(unix)]
38pub use mmap::{MadviseAdvice, MmapFile};
39pub use serializer::{Record, Serializer};
40pub use tdigest::TDigest;