Skip to main content

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;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 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").ok_or("Collection not found")?;

    // 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 query_vector = vec![0.1; 768];
    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::streaming::BackpressureError;
pub use collection::Collection;
pub use collection::CollectionType;
pub use collection::EdgeType;
pub use collection::GraphCollection;
pub use collection::GraphEdge;
pub use collection::GraphNode;
pub use collection::GraphSchema;
pub use collection::IndexInfo;
pub use collection::MetadataCollection;
pub use collection::NodeType;
pub use collection::TraversalResult;
pub use collection::ValueType;
pub use collection::VectorCollection;
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 point::SearchResult;
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::BatchUpdate;
pub use column_store::BatchUpdateResult;
pub use column_store::BatchUpsertResult;
pub use column_store::ColumnStore;
pub use column_store::ColumnStoreError;
pub use column_store::ColumnType;
pub use column_store::ColumnValue;
pub use column_store::ExpireResult;
pub use column_store::StringId;
pub use column_store::StringTable;
pub use column_store::TypedColumn;
pub use column_store::UpsertResult;
pub use config::ConfigError;
pub use config::HnswConfig;
pub use config::LimitsConfig;
pub use config::QuantizationConfig;
pub use config::QuantizationType;
pub use config::SearchConfig;
pub use config::SearchMode;
pub use config::VelesConfig;
pub use config::LoggingConfig;
pub use config::ServerConfig;
pub use config::StorageConfig;
pub use fusion::FusionError;
pub use fusion::FusionStrategy;
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;
pub use observer::DatabaseObserver;

Modules§

agent
Agent Memory Patterns SDK (EPIC-010)
alloc_guard
RAII guards for safe manual memory management.
cache
Caching layer for VelesDB (SOTA 2026).
collection
Collection management for VelesDB.
column_store
Column-oriented storage for high-performance metadata filtering.
compression
Column compression for VelesDB (SOTA 2026).
config
VelesDB Configuration Module
distance
Distance metrics for vector similarity calculations.
error
Error types for VelesDB.
filter
Metadata filtering for vector search.
fusion
Multi-query fusion strategies for VelesDB.
gpu
GPU-accelerated vector operations using wgpu (WebGPU).
guardrails
Production-grade query guard-rails (EPIC-048).
half_precision
Half-precision floating point support for memory-efficient vector storage.
index
Index implementations for efficient vector search.
metrics
Search quality metrics, operational monitoring, and query diagnostics.
observer
DatabaseObserver — extension hook for velesdb-premium.
perf_optimizations
Performance optimizations module for ultra-fast vector operations.
point
Point data structure representing a vector with metadata.
quantization
Scalar Quantization (SQ8) and Binary Quantization for memory-efficient vector storage.
simd_dispatch
Zero-overhead SIMD function dispatch.
simd_native
Native SIMD intrinsics for maximum performance.
sparse_index
Sparse vector types, inverted index, and search – always compiled (no persistence dependency). Sparse vector types, inverted index, and search.
storage
Storage backends for persistent vector storage.
sync
Synchronization primitives with loom support for concurrency testing.
vector_ref
Zero-copy vector reference abstraction.
velesql
VelesQL - SQL-like query language for VelesDB.

Macros§

sum_remainder_unrolled_8
Macro for unrolled remainder sum computation (1-7 elements). Generates optimal code for remainders 1-7 with 4->2->1 unrolling.
sum_squared_remainder_unrolled_8
Macro for unrolled squared L2 remainder (1-7 elements).

Structs§

Database
Database instance managing collections and storage.