Find a file
rUv 4d5d3bb092 feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40)
* docs: Add comprehensive GNN v2 implementation plans

Add 22 detailed planning documents for 19 advanced GNN features:

Tier 1 (Immediate - 3-6 months):
- GNN-Guided HNSW Routing (+25% QPS)
- Incremental Graph Learning/ATLAS (10-100x faster updates)
- Neuro-Symbolic Query Execution (hybrid neural + logical)

Tier 2 (Medium-Term - 6-12 months):
- Hyperbolic Embeddings (Poincaré ball model)
- Degree-Aware Adaptive Precision (2-4x memory reduction)
- Continuous-Time Dynamic GNN (concept drift detection)

Tier 3 (Research - 12+ months):
- Graph Condensation (10-100x smaller graphs)
- Native Sparse Attention (8-15x GPU speedup)
- Quantum-Inspired Attention (long-range dependencies)

Novel Innovations (10 experimental features):
- Gravitational Embedding Fields, Causal Attention Networks
- Topology-Aware Gradient Routing, Embedding Crystallization
- Semantic Holography, Entangled Subspace Attention
- Predictive Prefetch Attention, Morphological Attention
- Adversarial Robustness Layer, Consensus Attention

Includes comprehensive regression prevention strategy with:
- Feature flag system for safe rollout
- Performance baseline (186 tests + 6 search_v2 tests)
- Automated rollback mechanisms

Related to #38

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(micro-hnsw-wasm): Add neuromorphic HNSW v2.3 with SNN integration

## New Crate: micro-hnsw-wasm v2.3.0
- Published to crates.io: https://crates.io/crates/micro-hnsw-wasm
- 11.8KB WASM binary with 58 exported functions
- Neuromorphic vector search combining HNSW + Spiking Neural Networks

### Core Features
- HNSW graph-based approximate nearest neighbor search
- Multi-distance metrics: L2, Cosine, Dot product
- GNN extensions: typed nodes, edge weights, neighbor aggregation
- Multi-core sharding: 256 cores × 32 vectors = 8K total

### Spiking Neural Network (SNN)
- LIF (Leaky Integrate-and-Fire) neurons with membrane dynamics
- STDP (Spike-Timing Dependent Plasticity) learning
- Spike propagation through graph topology
- HNSW→SNN bridge for similarity-driven neural activation

### Novel Neuromorphic Features (v2.3)
- Spike-Timing Vector Encoding (rate-to-time conversion)
- Homeostatic Plasticity (self-stabilizing thresholds)
- Oscillatory Resonance (40Hz gamma synchronization)
- Winner-Take-All Circuits (competitive selection)
- Dendritic Computation (nonlinear branch integration)
- Temporal Pattern Recognition (spike history matching)
- Combined Neuromorphic Search pipeline

### Performance Optimizations
- 5.5x faster SNN tick (2,726ns → 499ns)
- 18% faster STDP learning
- Pre-computed reciprocal constants
- Division elimination in hot paths

### Documentation & Organization
- Reorganized docs into subdirectories (gnn/, implementation/, publishing/, status/)
- Added comprehensive README with badges, SEO, citations
- Added benchmark.js and test_wasm.js test suites
- Added DEEP_REVIEW.md with performance analysis
- Added Verilog RTL for ASIC synthesis

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-01 22:30:15 -05:00
.claude Add README documentation for ruvector-cli and ruvector-core crates 2025-11-20 20:26:39 +00:00
.githooks feat: Add automated package-lock.json sync tooling 2025-11-25 21:24:14 +00:00
.github feat(agentic-synth): Update RuVector adapter to use native NAPI-RS bindings (#34) 2025-12-01 13:17:26 -05:00
benchmark_results feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
benchmarks feat: Add Neo4j-compatible hypergraph database package (ruvector-graph) 2025-11-25 23:11:54 +00:00
bindings-darwin-arm64 init 2025-11-21 21:13:12 +00:00
bindings-darwin-x64 init 2025-11-21 21:13:12 +00:00
bindings-linux-arm64-gnu init 2025-11-21 21:13:12 +00:00
bindings-linux-x64-gnu init 2025-11-21 21:13:12 +00:00
crates feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
docs feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
examples feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
logs/deployment feat: Implement GNN forgetting mitigation (#17) 2025-11-26 23:17:07 +00:00
npm feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
packages fix(security): Resolve all 10 npm audit vulnerabilities 2025-12-01 19:36:37 +00:00
scripts feat: Add persistence support and Cypher queries to @ruvector/graph-node 2025-11-27 04:26:50 +00:00
src Add advanced optimizations and update README 2025-11-20 19:31:42 +00:00
tests feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
.env.example feat: Phase 3 - WASM architecture with in-memory storage 2025-11-21 13:40:34 +00:00
.gitignore Plan Rust Mathpix clone for ruvector (#28) 2025-11-29 17:34:47 -05:00
Cargo.lock feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
Cargo.toml feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
CHANGELOG.md feat: Complete ALL Ruvector phases - production-ready vector database 2025-11-19 14:37:21 +00:00
CLAUDE.md feat: Implement Ruvector Phase 1 foundation 2025-11-19 13:39:33 +00:00
install.sh fix: Rewrite install.sh with proper error handling 2025-11-27 05:10:57 +00:00
LICENSE Initial commit 2025-11-19 01:10:23 -05:00
package.json fix(security): Resolve all 10 npm audit vulnerabilities 2025-12-01 19:36:37 +00:00
README.md feat: Add attention mechanisms documentation and fix CLI bugs 2025-12-01 15:41:17 +00:00
test-all-packages.sh feat: Update NAPI-RS bindings with new capabilities (v0.1.15) 2025-11-26 18:47:48 +00:00

RuVector

MIT License Crates.io npm Rust Build Docs

A distributed vector database that learns. Store embeddings, query with Cypher, scale horizontally with Raft consensus, and let the index improve itself through Graph Neural Networks.

npx ruvector

All-in-One Package: The core ruvector package includes everything — vector search, graph queries, GNN layers, distributed clustering, AI routing, and WASM support. No additional packages needed.

What Problem Does RuVector Solve?

Traditional vector databases just store and search. When you ask "find similar items," they return results but never get smarter. They don't scale horizontally. They can't route AI requests intelligently.

RuVector is different:

  1. Store vectors like any vector DB (embeddings from OpenAI, Cohere, etc.)
  2. Query with Cypher like Neo4j (MATCH (a)-[:SIMILAR]->(b) RETURN b)
  3. The index learns — GNN layers make search results improve over time
  4. Scale horizontally — Raft consensus, multi-master replication, auto-sharding
  5. Route AI requests — Semantic routing and FastGRNN neural inference for LLM optimization
  6. Compress automatically — 2-32x memory reduction with adaptive tiered compression
  7. Run anywhere — Node.js, browser (WASM), HTTP server, or native Rust

Think of it as: Pinecone + Neo4j + PyTorch + etcd in one Rust package.

Quick Start

One-Line Install

Node.js / Browser

# Install
npm install ruvector

# Or try instantly
npx ruvector

Features

Core Capabilities

Feature What It Does Why It Matters
Vector Search HNSW index, <0.5ms latency, SIMD acceleration Fast enough for real-time apps
Cypher Queries MATCH, WHERE, CREATE, RETURN Familiar Neo4j syntax
GNN Layers Neural network on index topology Search improves with usage
Hyperedges Connect 3+ nodes at once Model complex relationships
Metadata Filtering Filter vectors by properties Combine semantic + structured search
Collections Namespace isolation, multi-tenancy Organize vectors by project/user

Distributed Systems

Feature What It Does Why It Matters
Raft Consensus Leader election, log replication Strong consistency for metadata
Auto-Sharding Consistent hashing, shard migration Scale to billions of vectors
Multi-Master Replication Write to any node, conflict resolution High availability, no SPOF
Snapshots Point-in-time backups, incremental Disaster recovery
Cluster Metrics Prometheus-compatible monitoring Observability at scale
cargo add ruvector-raft ruvector-cluster ruvector-replication

AI & ML

Feature What It Does Why It Matters
Tensor Compression f32→f16→PQ8→PQ4→Binary 2-32x memory reduction
Differentiable Search Soft attention k-NN End-to-end trainable
Semantic Router Route queries to optimal endpoints Multi-model AI orchestration
Tiny Dancer FastGRNN neural inference Optimize LLM inference costs
Adaptive Routing Learn optimal routing strategies Minimize latency, maximize accuracy

Attention Mechanisms (@ruvector/attention)

High-performance attention mechanisms for transformers, graph neural networks, and hyperbolic embeddings. Native Rust with NAPI-RS bindings for maximum performance.

Documentation: Attention Module Docs | API Reference

Core Attention Mechanisms

Mechanism Complexity Memory Best For
DotProductAttention O(n²) O(n²) Standard transformer attention, general purpose
MultiHeadAttention O(n²·h) O(n²·h) Transformers, parallel attention heads, BERT/GPT
FlashAttention O(n²) O(n) Long sequences, memory-constrained environments
LinearAttention O(n·d) O(n·d) Very long sequences (>8K tokens), streaming
HyperbolicAttention O(n²) O(n²) Hierarchical data, taxonomies, tree structures
MoEAttention O(n·k) O(n·k) Mixture of Experts, sparse routing, large models

Graph Attention Mechanisms

Mechanism Complexity Best For
GraphRoPeAttention O(n²) Graph transformers with rotary position embeddings
EdgeFeaturedAttention O(n²·e) Molecular graphs, knowledge graphs with edge attributes
DualSpaceAttention O(n²) Combined Euclidean + hyperbolic embeddings
LocalGlobalAttention O(n·k + n) Large-scale graphs (>100K nodes), scalable GNNs

Specialized Mechanisms

Mechanism Type Best For
SparseAttention Efficiency Very long documents, memory-limited inference
CrossAttention Multi-modal Vision-language models, encoder-decoder
NeighborhoodAttention Graph Local graph neighborhoods, message passing
HierarchicalAttention Structure Document hierarchies, multi-level attention

Hyperbolic Math Functions

For working with hyperbolic embeddings (Poincaré ball model):

Function Description Use Case
expMap(v, c) Tangent space → Poincaré ball Embedding initialization
logMap(p, c) Poincaré ball → Tangent space Gradient computation
mobiusAddition(x, y, c) Hyperbolic vector addition Feature aggregation
poincareDistance(x, y, c) Hyperbolic distance metric Similarity computation
projectToPoincareBall(p, c) Project to valid ball region Numerical stability

Async & Batch Operations

Operation Description Performance
asyncBatchCompute() Parallel batch processing 3-5x speedup
streamingAttention() Chunk-based streaming Constant memory
HardNegativeMiner Contrastive learning Semi-hard/hard mining
AttentionCache KV-cache for inference 10x faster generation
# Install attention module
npm install @ruvector/attention

# CLI commands
npx ruvector attention list                    # List all 39 mechanisms
npx ruvector attention info flash              # Details on FlashAttention
npx ruvector attention benchmark               # Performance comparison
npx ruvector attention compute -t dot -d 128   # Run attention computation
npx ruvector attention hyperbolic -a distance -v "[0.1,0.2]" -b "[0.3,0.4]"
// JavaScript API
const { FlashAttention, HyperbolicAttention, poincareDistance } = require('@ruvector/attention');

// Flash attention for long sequences
const flash = new FlashAttention(512, 64);  // dim=512, block_size=64
const output = flash.compute(query, keys, values);

// Hyperbolic attention for hierarchical data
const hyper = new HyperbolicAttention(256, 1.0);  // dim=256, curvature=1.0
const result = hyper.compute(query, keys, values);

// Hyperbolic distance
const dist = poincareDistance(new Float32Array([0.1, 0.2]), new Float32Array([0.3, 0.4]), 1.0);

Deployment

Feature What It Does Why It Matters
HTTP/gRPC Server REST API, streaming support Easy integration
WASM/Browser Full client-side support Run AI search offline
Node.js Bindings Native napi-rs bindings No serialization overhead
FFI Bindings C-compatible interface Use from Python, Go, etc.
CLI Tools Benchmarking, testing, management DevOps-friendly

Benchmarks

Real benchmark results on standard hardware:

Operation Dimensions Time Throughput
HNSW Search (k=10) 384 61µs 16,400 QPS
HNSW Search (k=100) 384 164µs 6,100 QPS
Cosine Distance 1536 143ns 7M ops/sec
Dot Product 384 33ns 30M ops/sec
Batch Distance (1000) 384 237µs 4.2M/sec

Global Cloud Performance (500M Streams)

Production-validated metrics at hyperscale:

Metric Value Details
Concurrent Streams 500M baseline Burst capacity to 25B (50x)
Global Latency (p50) <10ms Multi-region + CDN edge caching
Global Latency (p99) <50ms Cross-continental with failover
Availability SLA 99.99% 15 regions, automatic failover
Cost per Stream/Month $0.0035 60% optimized ($1.74M total at 500M)
Regions 15 global Americas, EMEA, APAC coverage
Throughput per Region 100K+ QPS Adaptive batching enabled
Memory Efficiency 2-32x compression Tiered hot/warm/cold storage
Index Build Time 1M vectors/min Parallel HNSW construction
Replication Lag <100ms Multi-master async replication

Comparison

Feature RuVector Pinecone Qdrant Milvus ChromaDB
Latency (p50) 61µs ~2ms ~1ms ~5ms ~50ms
Memory (1M vec) 200MB* 2GB 1.5GB 1GB 3GB
Graph Queries Cypher
Hyperedges
Self-Learning (GNN)
AI Agent Routing Tiny Dancer
Raft Consensus
Multi-Master Replication
Auto-Compression 2-32x
Browser/WASM
Differentiable
Open Source MIT

*With PQ8 compression. Benchmarks on Apple M2 / Intel i7.

How the GNN Works

Traditional vector search:

Query → HNSW Index → Top K Results

RuVector with GNN:

Query → HNSW Index → GNN Layer → Enhanced Results
                ↑                      │
                └──── learns from ─────┘

The GNN layer:

  1. Takes your query and its nearest neighbors
  2. Applies multi-head attention to weigh which neighbors matter
  3. Updates representations based on graph structure
  4. Returns better-ranked results

Over time, frequently-accessed paths get reinforced, making common queries faster and more accurate.

Compression Tiers

The architecture adapts to your data. Hot paths get full precision and maximum compute. Cold paths compress automatically and throttle resources. Recent data stays crystal clear; historical data optimizes itself in the background.

Think of it like your computer's memory hierarchy—frequently accessed data lives in fast cache, while older files move to slower, denser storage. RuVector does this automatically for your vectors:

Access Frequency Format Compression What Happens
Hot (>80%) f32 1x Full precision, instant retrieval
Warm (40-80%) f16 2x Slight compression, imperceptible latency
Cool (10-40%) PQ8 8x Smart quantization, ~1ms overhead
Cold (1-10%) PQ4 16x Heavy compression, still fast search
Archive (<1%) Binary 32x Maximum density, batch retrieval

No configuration needed. RuVector tracks access patterns and automatically promotes/demotes vectors between tiers. Your hot data stays fast; your cold data shrinks.

Use Cases

RAG (Retrieval-Augmented Generation)

const context = ruvector.search(questionEmbedding, 5);
const prompt = `Context: ${context.join('\n')}\n\nQuestion: ${question}`;

Recommendation Systems

MATCH (user:User)-[:VIEWED]->(item:Product)
MATCH (item)-[:SIMILAR_TO]->(rec:Product)
RETURN rec ORDER BY rec.score DESC LIMIT 10

Knowledge Graphs

MATCH (concept:Concept)-[:RELATES_TO*1..3]->(related)
RETURN related

Installation

Platform Command
npm npm install ruvector
Browser/WASM npm install ruvector-wasm
Rust cargo add ruvector-core ruvector-graph ruvector-gnn

Documentation

Topic Link
Getting Started docs/guide/GETTING_STARTED.md
Cypher Reference docs/api/CYPHER_REFERENCE.md
GNN Architecture docs/gnn-layer-implementation.md
Node.js API crates/ruvector-gnn-node/README.md
WASM API crates/ruvector-gnn-wasm/README.md
Performance Tuning docs/optimization/PERFORMANCE_TUNING_GUIDE.md
API Reference docs/api/

Crates

All crates are published to crates.io under the ruvector-* namespace.

Core Crates

Crate Description crates.io
ruvector-core Vector database engine with HNSW indexing crates.io
ruvector-collections Collection and namespace management crates.io
ruvector-filter Vector filtering and metadata queries crates.io
ruvector-metrics Performance metrics and monitoring crates.io
ruvector-snapshot Snapshot and persistence management crates.io

Graph & GNN

Crate Description crates.io
ruvector-graph Hypergraph database with Neo4j-style Cypher crates.io
ruvector-graph-node Node.js bindings for graph operations crates.io
ruvector-graph-wasm WASM bindings for browser graph queries crates.io
ruvector-gnn Graph Neural Network layers and training crates.io
ruvector-gnn-node Node.js bindings for GNN inference crates.io
ruvector-gnn-wasm WASM bindings for browser GNN crates.io

Attention Mechanisms

Crate Description crates.io
ruvector-attention 39 attention mechanisms (Flash, Hyperbolic, MoE, Graph) crates.io
ruvector-attention-wasm WASM bindings for browser attention crates.io

Distributed Systems

Crate Description crates.io
ruvector-cluster Cluster management and coordination crates.io
ruvector-raft Raft consensus implementation crates.io
ruvector-replication Data replication and synchronization crates.io

AI Agent Routing (Tiny Dancer)

Crate Description crates.io
ruvector-tiny-dancer-core FastGRNN neural inference for AI routing crates.io
ruvector-tiny-dancer-node Node.js bindings for AI routing crates.io
ruvector-tiny-dancer-wasm WASM bindings for browser AI routing crates.io

Router (Semantic Routing)

Crate Description crates.io
ruvector-router-core Core semantic routing engine crates.io
ruvector-router-cli CLI for router testing and benchmarking crates.io
ruvector-router-ffi FFI bindings for other languages crates.io
ruvector-router-wasm WASM bindings for browser routing crates.io

Scientific OCR (SciPix)

Crate Description crates.io
ruvector-scipix OCR engine for scientific documents, math equations → LaTeX/MathML crates.io

SciPix extracts text and mathematical equations from images, converting them to LaTeX, MathML, or plain text. Features GPU-accelerated ONNX inference, SIMD-optimized preprocessing, REST API server, CLI tool, and MCP integration for AI assistants.

# Install
cargo add ruvector-scipix

# CLI usage
scipix-cli ocr --input equation.png --format latex
scipix-cli serve --port 3000

# MCP server for Claude/AI assistants
scipix-cli mcp
claude mcp add scipix -- scipix-cli mcp

ONNX Embeddings

Example Description Path
ruvector-onnx-embeddings Production-ready ONNX embedding generation in pure Rust examples/onnx-embeddings

ONNX Embeddings provides native embedding generation using ONNX Runtime — no Python required. Supports 8+ pretrained models (all-MiniLM, BGE, E5, GTE), multiple pooling strategies, GPU acceleration (CUDA, TensorRT, CoreML, WebGPU), and direct RuVector index integration for RAG pipelines.

use ruvector_onnx_embeddings::{Embedder, PretrainedModel};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Create embedder with default model (all-MiniLM-L6-v2)
    let mut embedder = Embedder::default_model().await?;

    // Generate embedding (384 dimensions)
    let embedding = embedder.embed_one("Hello, world!")?;

    // Compute semantic similarity
    let sim = embedder.similarity(
        "I love programming in Rust",
        "Rust is my favorite language"
    )?;
    println!("Similarity: {:.4}", sim); // ~0.85

    Ok(())
}

Supported Models:

Model Dimension Speed Best For
AllMiniLmL6V2 384 Fast General purpose (default)
BgeSmallEnV15 384 Fast Search & retrieval
AllMpnetBaseV2 768 Accurate Production RAG

Bindings & Tools

Crate Description crates.io
ruvector-node Main Node.js bindings (napi-rs) crates.io
ruvector-wasm Main WASM bindings for browsers crates.io
ruvector-cli Command-line interface crates.io
ruvector-server HTTP/gRPC server crates.io

npm Packages

Published

Package Description npm
ruvector All-in-one CLI & package (vectors, graphs, GNN) npm
@ruvector/core Core vector database with native Rust bindings npm
@ruvector/gnn Graph Neural Network layers & tensor compression npm
@ruvector/graph-node Hypergraph database with Cypher queries npm
@ruvector/tiny-dancer FastGRNN neural inference for AI agent routing npm
@ruvector/router Semantic router with HNSW vector search npm
@ruvector/agentic-synth Synthetic data generator for AI/ML npm
@ruvector/attention 39 attention mechanisms for transformers & GNNs npm

Platform-specific native bindings (auto-detected):

  • @ruvector/node-linux-x64-gnu, @ruvector/node-linux-arm64-gnu, @ruvector/node-darwin-x64, @ruvector/node-darwin-arm64, @ruvector/node-win32-x64-msvc
  • @ruvector/gnn-linux-x64-gnu, @ruvector/gnn-linux-arm64-gnu, @ruvector/gnn-darwin-x64, @ruvector/gnn-darwin-arm64, @ruvector/gnn-win32-x64-msvc
  • @ruvector/tiny-dancer-linux-x64-gnu, @ruvector/tiny-dancer-linux-arm64-gnu, @ruvector/tiny-dancer-darwin-x64, @ruvector/tiny-dancer-darwin-arm64, @ruvector/tiny-dancer-win32-x64-msvc
  • @ruvector/router-linux-x64-gnu, @ruvector/router-linux-arm64-gnu, @ruvector/router-darwin-x64, @ruvector/router-darwin-arm64, @ruvector/router-win32-x64-msvc
  • @ruvector/attention-linux-x64-gnu, @ruvector/attention-linux-arm64-gnu, @ruvector/attention-darwin-x64, @ruvector/attention-darwin-arm64, @ruvector/attention-win32-x64-msvc

🔧 Ready to Publish (Crates Built)

These packages have Rust crates ready and can be published on request:

Package Description Rust Crate Status
@ruvector/wasm WASM fallback for core vector DB ruvector-wasm Built
@ruvector/gnn-wasm WASM fallback for GNN layers ruvector-gnn-wasm Built
@ruvector/graph-wasm WASM fallback for graph DB ruvector-graph-wasm Built
@ruvector/attention-wasm WASM fallback for attention ruvector-attention-wasm Built
@ruvector/tiny-dancer-wasm WASM fallback for AI routing ruvector-tiny-dancer-wasm Built
@ruvector/router-wasm WASM fallback for semantic router ruvector-router-wasm Built
@ruvector/cluster Distributed clustering & sharding ruvector-cluster Built
@ruvector/server HTTP/gRPC server mode ruvector-server Built

🚧 Planned

Package Description Status
@ruvector/raft Raft consensus for distributed ops Crate ready
@ruvector/replication Multi-master replication Crate ready
@ruvector/scipix Scientific OCR (LaTeX/MathML) Crate ready

See GitHub Issue #20 for multi-platform npm package roadmap.

# Install all-in-one package
npm install ruvector

# Or install individual packages
npm install @ruvector/core @ruvector/gnn @ruvector/graph-node

# List all available packages
npx ruvector install
const ruvector = require('ruvector');

// Vector search
const db = new ruvector.VectorDB(128);
db.insert('doc1', embedding1);
const results = db.search(queryEmbedding, 10);

// Graph queries (Cypher)
db.execute("CREATE (a:Person {name: 'Alice'})-[:KNOWS]->(b:Person {name: 'Bob'})");
db.execute("MATCH (p:Person)-[:KNOWS]->(friend) RETURN friend.name");

// GNN-enhanced search
const layer = new ruvector.GNNLayer(128, 256, 4);
const enhanced = layer.forward(query, neighbors, weights);

// Compression (2-32x memory savings)
const compressed = ruvector.compress(embedding, 0.3);

// Tiny Dancer: AI agent routing
const router = new ruvector.Router();
const decision = router.route(candidates, { optimize: 'cost' });

Rust

cargo add ruvector-graph ruvector-gnn
use ruvector_graph::{GraphDB, NodeBuilder};
use ruvector_gnn::{RuvectorLayer, differentiable_search};

let db = GraphDB::new();

let doc = NodeBuilder::new("doc1")
    .label("Document")
    .property("embedding", vec![0.1, 0.2, 0.3])
    .build();
db.create_node(doc)?;

// GNN layer
let layer = RuvectorLayer::new(128, 256, 4, 0.1);
let enhanced = layer.forward(&query, &neighbors, &weights);
use ruvector_raft::{RaftNode, RaftNodeConfig};
use ruvector_cluster::{ClusterManager, ConsistentHashRing};
use ruvector_replication::{SyncManager, SyncMode};

// Configure a 5-node Raft cluster
let config = RaftNodeConfig {
    node_id: "node-1".into(),
    cluster_members: vec!["node-1", "node-2", "node-3", "node-4", "node-5"]
        .into_iter().map(Into::into).collect(),
    election_timeout_min: 150,  // ms
    election_timeout_max: 300,  // ms
    heartbeat_interval: 50,     // ms
};
let raft = RaftNode::new(config);

// Auto-sharding with consistent hashing (150 virtual nodes per real node)
let ring = ConsistentHashRing::new(64, 3); // 64 shards, replication factor 3
let shard = ring.get_shard("my-vector-key");

// Multi-master replication with conflict resolution
let sync = SyncManager::new(SyncMode::SemiSync { min_replicas: 2 });

Project Structure

crates/
├── ruvector-core/           # Vector DB engine (HNSW, storage)
├── ruvector-graph/          # Graph DB + Cypher parser + Hyperedges
├── ruvector-gnn/            # GNN layers, compression, training
├── ruvector-tiny-dancer-core/  # AI agent routing (FastGRNN)
├── ruvector-*-wasm/         # WebAssembly bindings
└── ruvector-*-node/         # Node.js bindings (napi-rs)

Contributing

We welcome contributions! See CONTRIBUTING.md.

# Run tests
cargo test --workspace

# Run benchmarks
cargo bench --workspace

# Build WASM
cargo build -p ruvector-gnn-wasm --target wasm32-unknown-unknown

License

MIT License — free for commercial and personal use.


Built by rUvGitHubnpmDocs

Vector search that gets smarter over time.