1#![warn(missing_docs)]
29#![warn(clippy::all)]
30
31pub mod advanced_features;
32
33#[cfg(feature = "storage")]
35pub mod agenticdb;
36
37pub mod distance;
38pub mod embeddings;
39pub mod error;
40pub mod index;
41pub mod quantization;
42
43#[cfg(feature = "storage")]
45pub mod storage;
46
47#[cfg(not(feature = "storage"))]
48pub mod storage_memory;
49
50#[cfg(not(feature = "storage"))]
51pub use storage_memory as storage;
52
53pub mod types;
54pub mod vector_db;
55
56pub mod arena;
58pub mod cache_optimized;
59#[cfg(all(feature = "parallel", not(target_arch = "wasm32")))]
60pub mod lockfree;
61pub mod simd_intrinsics;
62
63pub mod memory;
71
72pub mod advanced;
74
75pub use advanced_features::{
77 ConformalConfig, ConformalPredictor, EnhancedPQ, FilterExpression, FilterStrategy,
78 FilteredSearch, HybridConfig, HybridSearch, MMRConfig, MMRSearch, PQConfig, PredictionSet,
79 BM25,
80};
81
82#[cfg(feature = "storage")]
83pub use agenticdb::{
84 AgenticDB, PolicyAction, PolicyEntry, PolicyMemoryStore, SessionStateIndex, SessionTurn,
85 WitnessEntry, WitnessLog,
86};
87
88#[cfg(feature = "api-embeddings")]
89pub use embeddings::ApiEmbedding;
90pub use embeddings::{BoxedEmbeddingProvider, EmbeddingProvider, HashEmbedding};
91
92#[cfg(feature = "real-embeddings")]
93pub use embeddings::CandleEmbedding;
94
95#[cfg(feature = "storage")]
97const _: () = {
98 #[deprecated(
100 since = "0.1.0",
101 note = "AgenticDB uses placeholder hash-based embeddings. For semantic search, integrate a real embedding model (ONNX, Candle, or API). See /examples/onnx-embeddings for production setup."
102 )]
103 const AGENTICDB_EMBEDDING_WARNING: () = ();
104 let _ = AGENTICDB_EMBEDDING_WARNING;
105};
106
107pub use error::{Result, RuvectorError};
108pub use types::{DistanceMetric, SearchQuery, SearchResult, VectorEntry, VectorId};
109pub use vector_db::VectorDB;
110
111pub use quantization::{
113 BinaryQuantized, Int4Quantized, ProductQuantized, QuantizedVector, ScalarQuantized,
114};
115
116pub use arena::{Arena, ArenaVec, BatchVectorAllocator, CacheAlignedVec, CACHE_LINE_SIZE};
118
119#[cfg(all(feature = "parallel", not(target_arch = "wasm32")))]
121pub use lockfree::{
122 AtomicVectorPool, BatchItem, BatchResult, LockFreeBatchProcessor, LockFreeCounter,
123 LockFreeStats, LockFreeWorkQueue, ObjectPool, PooledObject, PooledVector, StatsSnapshot,
124 VectorPoolStats,
125};
126
127pub use cache_optimized::SoAVectorStorage;
129
130#[cfg(test)]
131mod tests {
132 use super::*;
133
134 #[test]
135 fn test_version() {
136 let version = env!("CARGO_PKG_VERSION");
138 assert!(!version.is_empty(), "Version should not be empty");
139 assert!(version.starts_with("0.1."), "Version should be 0.1.x");
140 }
141}