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;