Skip to main content

timeseries_table_core/
lib.rs

1//! Core engine for a log-structured time-series table format.
2//!
3//! This crate provides the foundational pieces for `timeseries-table-format`.
4//!
5//! Responsibilities (high level):
6//! - A Delta-inspired, append-only metadata log with version-guard optimistic
7//!   concurrency control ([`transaction_log`]).
8//! - Strongly-typed table metadata that distinguishes time-series tables (with a
9//!   [`TimeIndexSpec`]) from generic tables ([`metadata`]).
10//! - A [`TimeSeriesTable`] abstraction that exposes a logical view over the log
11//!   and segment metadata ([`table`]).
12//! - RoaringBitmap-based coverage utilities for reasoning about which time
13//!   buckets are present or missing ([`coverage`]).
14//! - Filesystem utilities for managing on-disk layout (log directory, CURRENT
15//!   pointer, segment paths, etc.) ([`storage`]).
16//!
17//! Main layers (new paths):
18//! - [`metadata`]: metadata model + schema/segment validation (no IO).
19//! - [`table`]: the [`table::TimeSeriesTable`] user-facing abstraction.
20//! - [`storage`]: storage backend + table-root IO utilities.
21//! - [`coverage`]: bitmap-based coverage math and utilities.
22//! - [`formats`]: format-specific helpers (currently Parquet).
23pub mod coverage;
24pub mod formats;
25pub mod metadata;
26pub mod storage;
27pub mod table;
28pub mod transaction_log;