Crate velesdb_core

Crate velesdb_core 

Source
Expand description

§VelesDB Core

High-performance vector database engine written in Rust.

VelesDB is a local-first vector database designed for semantic search, recommendation systems, and RAG (Retrieval-Augmented Generation) applications.

§Features

  • Blazing Fast: HNSW index with explicit SIMD (4x faster)
  • 5 Distance Metrics: Cosine, Euclidean, Dot Product, Hamming, Jaccard
  • Hybrid Search: Vector + BM25 full-text with RRF fusion
  • Quantization: SQ8 (4x) and Binary (32x) memory compression
  • Persistent Storage: Memory-mapped files for efficient disk access

§Quick Start

use velesdb_core::{Database, DistanceMetric, Point, StorageMode};
use serde_json::json;

// Create a new database
let db = Database::open("./data")?;

// Create a collection (all 5 metrics available)
db.create_collection("documents", 768, DistanceMetric::Cosine)?;
// Or with quantization: DistanceMetric::Hamming + StorageMode::Binary

let collection = db.get_collection("documents").unwrap();

// Insert vectors (upsert takes ownership)
collection.upsert(vec![
    Point::new(1, vec![0.1; 768], Some(json!({"title": "Hello World"}))),
])?;

// Search for similar vectors
let results = collection.search(&query_vector, 10)?;

// Hybrid search (vector + text)
let hybrid = collection.hybrid_search(&query_vector, "hello", 5, Some(0.7))?;

Re-exports§

pub use index::HnswIndex;
pub use index::HnswParams;
pub use index::SearchQuality;
pub use index::VectorIndex;
pub use collection::Collection;
pub use distance::DistanceMetric;
pub use error::Error;
pub use error::Result;
pub use filter::Condition;
pub use filter::Filter;
pub use point::Point;
pub use quantization::cosine_similarity_quantized;
pub use quantization::cosine_similarity_quantized_simd;
pub use quantization::dot_product_quantized;
pub use quantization::dot_product_quantized_simd;
pub use quantization::euclidean_squared_quantized;
pub use quantization::euclidean_squared_quantized_simd;
pub use quantization::BinaryQuantizedVector;
pub use quantization::QuantizedVector;
pub use quantization::StorageMode;
pub use column_store::ColumnStore;
pub use column_store::ColumnType;
pub use column_store::ColumnValue;
pub use column_store::StringId;
pub use column_store::StringTable;
pub use column_store::TypedColumn;
pub use metrics::average_metrics;
pub use metrics::compute_latency_percentiles;
pub use metrics::hit_rate;
pub use metrics::mean_average_precision;
pub use metrics::mrr;
pub use metrics::ndcg_at_k;
pub use metrics::precision_at_k;
pub use metrics::recall_at_k;
pub use metrics::LatencyStats;

Modules§

collection
Collection management for VelesDB.
column_store
Column-oriented storage for high-performance metadata filtering.
distance
Distance metrics for vector similarity calculations.
error
Error types for VelesDB.
filter
Metadata filtering for vector search.
half_precision
Half-precision floating point support for memory-efficient vector storage.
index
Index implementations for efficient vector search.
metrics
Search quality metrics for evaluating retrieval performance.
perf_optimizations
Performance optimizations module for ultra-fast vector operations.
point
Point data structure representing a vector with metadata.
quantization
Scalar Quantization (SQ8) for memory-efficient vector storage.
simd
SIMD-optimized vector operations for high-performance distance calculations.
simd_avx512
Enhanced SIMD operations with runtime CPU detection and optimized processing.
simd_explicit
Explicit SIMD optimizations using the wide crate for portable vectorization.
storage
Storage backends for persistent vector storage.
velesql
VelesQL - SQL-like query language for VelesDB.

Structs§

Database
Database instance managing collections and storage.