chronix_engine/index/mod.rs
1//! # chronix-index
2//!
3//! Indexing structures for the Chronix time-series database.
4//!
5//! This crate provides indexing structures for efficient segment pruning:
6//!
7//! - [`SeriesBloomFilter`] — Per-segment bloom filters for series key pruning
8//! - [`series_index`] — The per-segment series list the blooms, the tag index
9//! and the cardinality budget are rebuilt from at open
10//! - [`SegmentCatalog`] — Segment metadata catalog with manifest persistence
11//! - [`TagInvertedIndex`] — Inverted tag index for tag-value → segment mapping
12//! - [`ZoneMapPredicate`] — Predicate pushdown using per-row-group column stats
13//!
14//! Together, these indices enable multi-level pruning that eliminates segments
15//! and row groups from query processing before any data is decoded.
16
17#![warn(missing_docs)]
18#![deny(unsafe_code)]
19
20pub mod bloom;
21pub mod catalog;
22pub mod error;
23pub mod inverted;
24pub mod series_index;
25pub mod zone_map;
26
27pub use bloom::SeriesBloomFilter;
28pub use catalog::{CatalogColumnStats, SegmentCatalog, SegmentCatalogEntry};
29pub use error::IndexError;
30pub use inverted::TagInvertedIndex;
31pub use zone_map::{
32 ZoneMapOp, ZoneMapPredicate, ZoneMapResult, prune_row_groups, segment_overlaps_range,
33};