1#![allow(missing_docs)]
29#![warn(clippy::all)]
30#![allow(clippy::incompatible_msrv)]
31
32pub mod advanced_features;
33
34#[cfg(feature = "storage")]
36pub mod agenticdb;
37
38pub mod distance;
39pub mod embeddings;
40pub mod error;
41pub mod index;
42pub mod quantization;
43
44#[cfg(feature = "storage")]
46pub mod storage;
47
48#[cfg(not(feature = "storage"))]
49pub mod storage_memory;
50
51#[cfg(not(feature = "storage"))]
52pub use storage_memory as storage;
53
54pub mod types;
55pub mod vector_db;
56
57pub mod arena;
59pub mod cache_optimized;
60#[cfg(all(feature = "parallel", not(target_arch = "wasm32")))]
61pub mod lockfree;
62pub mod simd_intrinsics;
63
64pub mod memory;
72
73pub mod advanced;
75
76pub use advanced_features::{
78 ConformalConfig, ConformalPredictor, EnhancedPQ, FilterExpression, FilterStrategy,
79 FilteredSearch, HybridConfig, HybridSearch, MMRConfig, MMRSearch, PQConfig, PredictionSet,
80 BM25,
81};
82
83#[cfg(feature = "storage")]
84pub use agenticdb::{
85 AgenticDB, PolicyAction, PolicyEntry, PolicyMemoryStore, SessionStateIndex, SessionTurn,
86 WitnessEntry, WitnessLog,
87};
88
89#[cfg(feature = "api-embeddings")]
90pub use embeddings::ApiEmbedding;
91pub use embeddings::{BoxedEmbeddingProvider, EmbeddingProvider, HashEmbedding};
92
93#[cfg(feature = "real-embeddings")]
94pub use embeddings::CandleEmbedding;
95
96#[cfg(feature = "storage")]
98#[allow(deprecated, clippy::let_unit_value)]
99const _: () = {
100 #[deprecated(
101 since = "0.1.0",
102 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."
103 )]
104 const AGENTICDB_EMBEDDING_WARNING: () = ();
105 let _ = AGENTICDB_EMBEDDING_WARNING;
106};
107
108pub use error::{Result, RuvectorError};
109pub use types::{DistanceMetric, SearchQuery, SearchResult, VectorEntry, VectorId};
110pub use vector_db::VectorDB;
111
112pub use quantization::{
114 BinaryQuantized, Int4Quantized, ProductQuantized, QuantizedVector, ScalarQuantized,
115};
116
117pub use arena::{Arena, ArenaVec, BatchVectorAllocator, CacheAlignedVec, CACHE_LINE_SIZE};
119
120#[cfg(all(feature = "parallel", not(target_arch = "wasm32")))]
122pub use lockfree::{
123 AtomicVectorPool, BatchItem, BatchResult, LockFreeBatchProcessor, LockFreeCounter,
124 LockFreeStats, LockFreeWorkQueue, ObjectPool, PooledObject, PooledVector, StatsSnapshot,
125 VectorPoolStats,
126};
127
128pub use cache_optimized::SoAVectorStorage;
130
131#[cfg(test)]
132mod tests {
133 use super::*;
134
135 #[test]
136 fn test_version() {
137 let version = env!("CARGO_PKG_VERSION");
139 assert!(!version.is_empty(), "Version should not be empty");
140 assert!(version.starts_with("0.1."), "Version should be 0.1.x");
141 }
142}