ruvector_collections/
lib.rs

1//! # Ruvector Collections
2//!
3//! Multi-collection management with aliases for organizing vector databases.
4//!
5//! ## Features
6//!
7//! - **Multiple Collections**: Organize vectors into separate collections
8//! - **Alias Management**: Create aliases for collection names
9//! - **Collection Statistics**: Track collection metrics
10//! - **Thread-safe**: Concurrent access using DashMap
11//! - **Persistence**: Store collections on disk
12//!
13//! ## Example
14//!
15//! ```no_run
16//! use ruvector_collections::{CollectionManager, CollectionConfig};
17//! use ruvector_core::types::{DistanceMetric, HnswConfig};
18//! use std::path::PathBuf;
19//!
20//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
21//! // Create a collection manager
22//! let manager = CollectionManager::new(PathBuf::from("./collections"))?;
23//!
24//! // Create a collection
25//! let config = CollectionConfig {
26//!     dimensions: 384,
27//!     distance_metric: DistanceMetric::Cosine,
28//!     hnsw_config: Some(HnswConfig::default()),
29//!     quantization: None,
30//!     on_disk_payload: true,
31//! };
32//!
33//! manager.create_collection("documents", config)?;
34//!
35//! // Create an alias
36//! manager.create_alias("current_docs", "documents")?;
37//!
38//! // Get collection by name or alias
39//! let collection = manager.get_collection("current_docs").unwrap();
40//! # Ok(())
41//! # }
42//! ```
43
44#![warn(missing_docs)]
45#![warn(clippy::all)]
46
47pub mod collection;
48pub mod error;
49pub mod manager;
50
51pub use collection::{Collection, CollectionConfig, CollectionStats};
52pub use error::{CollectionError, Result};
53pub use manager::CollectionManager;