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 supported public entry point and provides a small, stable surface.
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
28/// Convenience prelude with the stable, supported surface.
29pub mod prelude;
30
31/// Coverage namespace (wrapper-only).
32pub mod coverage {
33 pub use timeseries_table_core::coverage::Bucket;
34}
35
36/// DataFusion integration (enabled by default).
37#[cfg(feature = "datafusion")]
38pub mod datafusion {
39 pub use timeseries_table_datafusion::*;
40}
41
42pub use timeseries_table_core::metadata::logical_schema::{
43 LogicalDataType, LogicalField, LogicalSchema,
44};
45pub use timeseries_table_core::metadata::table_metadata::{
46 ParseTimeBucketError, TableMeta, TimeBucket, TimeIndexSpec,
47};
48pub use timeseries_table_core::storage::TableLocation;
49pub use timeseries_table_core::table::{TableError, TimeSeriesTable};
50
51/// DataFusion table provider (enabled by default).
52#[cfg(feature = "datafusion")]
53pub use timeseries_table_datafusion::TsTableProvider;