Skip to main content

timeseries_table_format/
lib.rs

1//! # timeseries-table-format
2//!
3//! Append-only time-series table format with gap/overlap tracking.
4//!
5//! This crate is the canonical library for the table engine and optional integrations.
6//!
7//! ## Features
8//!
9//! - `datafusion` (default): Enables DataFusion integration for SQL queries
10//!
11//! ## Quick start
12//!
13//! Open an existing table (async; returns a `Future`):
14//!
15//! ```rust
16//! use timeseries_table_format::{TableLocation, TimeSeriesTable};
17//!
18//! let location = TableLocation::local("./my_table");
19//! let _open = TimeSeriesTable::open(location);
20//! ```
21//!
22//! Or import the stable, supported surface via the prelude:
23//!
24//! ```rust
25//! use timeseries_table_format::prelude::*;
26//! ```
27
28pub mod coverage;
29#[cfg(feature = "datafusion")]
30pub mod datafusion;
31pub mod formats;
32pub mod metadata;
33/// Convenience prelude with the stable, supported surface.
34pub mod prelude;
35pub mod storage;
36pub mod table;
37pub mod transaction_log;
38
39pub use metadata::logical_schema::{LogicalDataType, LogicalField, LogicalSchema};
40pub use metadata::table_metadata::{
41    IndexKind, IndexSpec, IndexSpecError, IndexValue, IndexValueError, ParseTimeBucketError,
42    TableMeta, TimeBucket, validate_index_range,
43};
44pub use storage::TableLocation;
45pub use table::{OptimizeReport, TableError, TimeSeriesTable};
46
47/// DataFusion table provider (enabled by default).
48#[cfg(feature = "datafusion")]
49pub use datafusion::TsTableProvider;