chronos_vector/lib.rs
1//! # ChronosVector
2//!
3//! High-performance temporal vector database that treats time as a geometric
4//! dimension of embedding space.
5//!
6//! This crate re-exports all ChronosVector components for convenient single-dependency usage:
7//!
8//! ```toml
9//! [dependencies]
10//! chronos-vector = "0.1"
11//! ```
12//!
13//! ## Crate Architecture
14//!
15//! | Crate | Re-export | Description |
16//! |-------|-----------|-------------|
17//! | [`cvx_core`] | `core` | Types, traits, configuration |
18//! | [`cvx_index`] | `index` | ST-HNSW temporal index with SIMD |
19//! | [`cvx_analytics`] | `analytics` | 19 analytical functions |
20//! | [`cvx_storage`] | `storage` | Tiered storage (WAL + hot/warm/cold) |
21//! | [`cvx_ingest`] | `ingest` | Delta encoding, validation |
22//! | [`cvx_query`] | `query` | Query engine |
23//!
24//! ## Quick Start
25//!
26//! ```rust,no_run
27//! use chronos_vector::index::TemporalHnsw;
28//! use chronos_vector::index::metrics::L2Distance;
29//! use chronos_vector::core::TemporalFilter;
30//!
31//! let config = chronos_vector::index::HnswConfig::default();
32//! let mut index = TemporalHnsw::new(config, L2Distance);
33//!
34//! // Insert temporal vectors
35//! index.insert(/*entity_id=*/1, /*timestamp=*/1000, &[0.1, 0.2, 0.3]);
36//! index.insert(1, 2000, &[0.15, 0.25, 0.35]);
37//!
38//! // Search with temporal filtering
39//! let results = index.search(&[0.1, 0.2, 0.3], 5, TemporalFilter::All, 1.0, 0);
40//!
41//! // Retrieve trajectory
42//! let traj = index.trajectory(1, TemporalFilter::All);
43//! ```
44
45/// Core types, traits, and configuration.
46pub use cvx_core as core;
47
48/// Temporal HNSW index with SIMD-accelerated distance metrics.
49pub use cvx_index as index;
50
51/// 19 analytical functions: calculus, signatures, topology, anchors.
52pub use cvx_analytics as analytics;
53
54/// Tiered storage engine: WAL, RocksDB (hot), file-based (warm).
55pub use cvx_storage as storage;
56
57/// Ingestion pipeline: delta encoding, validation.
58pub use cvx_ingest as ingest;
59
60/// Query engine.
61pub use cvx_query as query;