* 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> |
||
|---|---|---|
| .claude | ||
| .githooks | ||
| .github | ||
| benchmark_results | ||
| benchmarks | ||
| bindings-darwin-arm64 | ||
| bindings-darwin-x64 | ||
| bindings-linux-arm64-gnu | ||
| bindings-linux-x64-gnu | ||
| crates | ||
| docs | ||
| examples | ||
| logs/deployment | ||
| npm | ||
| packages | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| install.sh | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| test-all-packages.sh | ||
RuVector
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
ruvectorpackage 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:
- Store vectors like any vector DB (embeddings from OpenAI, Cohere, etc.)
- Query with Cypher like Neo4j (
MATCH (a)-[:SIMILAR]->(b) RETURN b) - The index learns — GNN layers make search results improve over time
- Scale horizontally — Raft consensus, multi-master replication, auto-sharding
- Route AI requests — Semantic routing and FastGRNN neural inference for LLM optimization
- Compress automatically — 2-32x memory reduction with adaptive tiered compression
- 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:
- Takes your query and its nearest neighbors
- Applies multi-head attention to weigh which neighbors matter
- Updates representations based on graph structure
- 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 | |
| ruvector-collections | Collection and namespace management | |
| ruvector-filter | Vector filtering and metadata queries | |
| ruvector-metrics | Performance metrics and monitoring | |
| ruvector-snapshot | Snapshot and persistence management |
Graph & GNN
| Crate | Description | crates.io |
|---|---|---|
| ruvector-graph | Hypergraph database with Neo4j-style Cypher | |
| ruvector-graph-node | Node.js bindings for graph operations | |
| ruvector-graph-wasm | WASM bindings for browser graph queries | |
| ruvector-gnn | Graph Neural Network layers and training | |
| ruvector-gnn-node | Node.js bindings for GNN inference | |
| ruvector-gnn-wasm | WASM bindings for browser GNN |
Attention Mechanisms
| Crate | Description | crates.io |
|---|---|---|
| ruvector-attention | 39 attention mechanisms (Flash, Hyperbolic, MoE, Graph) | |
| ruvector-attention-wasm | WASM bindings for browser attention |
Distributed Systems
| Crate | Description | crates.io |
|---|---|---|
| ruvector-cluster | Cluster management and coordination | |
| ruvector-raft | Raft consensus implementation | |
| ruvector-replication | Data replication and synchronization |
AI Agent Routing (Tiny Dancer)
| Crate | Description | crates.io |
|---|---|---|
| ruvector-tiny-dancer-core | FastGRNN neural inference for AI routing | |
| ruvector-tiny-dancer-node | Node.js bindings for AI routing | |
| ruvector-tiny-dancer-wasm | WASM bindings for browser AI routing |
Router (Semantic Routing)
| Crate | Description | crates.io |
|---|---|---|
| ruvector-router-core | Core semantic routing engine | |
| ruvector-router-cli | CLI for router testing and benchmarking | |
| ruvector-router-ffi | FFI bindings for other languages | |
| ruvector-router-wasm | WASM bindings for browser routing |
Scientific OCR (SciPix)
| Crate | Description | crates.io |
|---|---|---|
| ruvector-scipix | OCR engine for scientific documents, math equations → LaTeX/MathML |
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) | |
| ruvector-wasm | Main WASM bindings for browsers | |
| ruvector-cli | Command-line interface | |
| ruvector-server | HTTP/gRPC server |
npm Packages
✅ Published
| Package | Description | npm |
|---|---|---|
| ruvector | All-in-one CLI & package (vectors, graphs, GNN) | |
| @ruvector/core | Core vector database with native Rust bindings | |
| @ruvector/gnn | Graph Neural Network layers & tensor compression | |
| @ruvector/graph-node | Hypergraph database with Cypher queries | |
| @ruvector/tiny-dancer | FastGRNN neural inference for AI agent routing | |
| @ruvector/router | Semantic router with HNSW vector search | |
| @ruvector/agentic-synth | Synthetic data generator for AI/ML | |
| @ruvector/attention | 39 attention mechanisms for transformers & GNNs |
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.