umi_memory/storage/
mod.rs

1//! Storage - Backend Trait and Implementations
2//!
3//! TigerStyle: Abstract storage with simulation-first testing.
4//!
5//! # Architecture
6//!
7//! ```text
8//! ┌─────────────────────────────────────────────────────────────┐
9//! │                    StorageBackend Trait                      │
10//! └─────────────────────────────────────────────────────────────┘
11//!          ↑                    ↑                    ↑
12//!          │                    │                    │
13//! ┌────────┴────────┐  ┌────────┴────────┐  ┌───────┴────────┐
14//! │SimStorageBackend│  │LanceStorageBack │  │ PostgresBackend│
15//! │   (testing)     │  │   (embedded)    │  │   (server)     │
16//! └─────────────────┘  └─────────────────┘  └────────────────┘
17//! ```
18//!
19//! # Simulation-First
20//!
21//! Tests are written BEFORE implementation. SimStorageBackend enables
22//! deterministic testing with fault injection.
23
24mod backend;
25mod entity;
26mod error;
27mod evolution;
28mod sim;
29mod vector;
30
31#[cfg(feature = "postgres")]
32mod postgres;
33
34#[cfg(feature = "postgres")]
35mod postgres_vector;
36
37#[cfg(feature = "lance")]
38mod lance;
39
40#[cfg(feature = "lance")]
41mod lance_vector;
42
43pub use backend::StorageBackend;
44pub use entity::{Entity, EntityBuilder, EntityType, SourceRef};
45pub use error::{StorageError, StorageResult};
46pub use evolution::{EvolutionRelation, EvolutionRelationBuilder, EvolutionType};
47pub use sim::SimStorageBackend;
48pub use vector::{SimVectorBackend, VectorBackend, VectorSearchResult};
49
50#[cfg(feature = "postgres")]
51pub use postgres::PostgresBackend;
52
53#[cfg(feature = "postgres")]
54pub use postgres_vector::PostgresVectorBackend;
55
56#[cfg(feature = "lance")]
57pub use lance::LanceStorageBackend;
58
59#[cfg(feature = "lance")]
60pub use lance_vector::LanceVectorBackend;