# RuVector
[](https://crates.io/crates/ruvector-core)
[](https://www.npmjs.com/package/ruvector)
[](https://www.npmjs.com/package/ruvector)
[](https://huggingface.co/ruv/ruvltra)
[](https://ruv.io)
[](https://opensource.org/licenses/MIT)
**The vector database that gets smarter the more you use it.**
```bash
npx ruvector
```
Most vector databases are staticβthey store embeddings and search them. That's it. RuVector is different: it learns from every query, runs LLMs locally, scales horizontally, and costs nothing to operate.
| | Pinecone/Weaviate | RuVector |
|---|---|---|
| **Search improves over time** | β | β
GNN layers learn from usage |
| **Run LLMs locally** | β | β
ruvllm + RuvLTRA models ($0) |
| **Graph queries (Cypher)** | β | β
`MATCH (a)-[:SIMILAR]->(b)` |
| **Self-learning AI hooks** | β | β
Q-learning, HNSW memory |
| **Real-time graph updates** | β Rebuild index | β
Dynamic min-cut (no rebuild) |
| **Horizontal scaling** | π° Paid | β
Raft consensus, free |
| **Works offline** | β | β
Browser, edge, embedded |
**One package. Everything included:** vector search, graph queries, GNN learning, distributed clustering, local LLMs, 39 attention mechanisms, and WASM support.
π See Full Capabilities (14 features)
| # | Capability | What It Does |
|---|------------|--------------|
| 1 | **Store vectors** | Like any vector DB (embeddings from OpenAI, Cohere, local ONNX) |
| 2 | **Query with Cypher** | Graph queries like Neo4j (`MATCH (a)-[:SIMILAR]->(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 + FastGRNN for LLM optimization |
| 6 | **Run LLMs locally** | ruvllm with GGUF, Metal/CUDA, save $250+/month on API costs |
| 6a | **RuvLTRA models** | Pre-trained GGUF models for routing & embeddings (<10ms, $0) β [HuggingFace](https://huggingface.co/ruv/ruvltra) |
| 7 | **Self-learning hooks** | Q-learning, neural patterns, HNSW memory, swarm coordination |
| 8 | **Compress automatically** | 2-32x memory reduction with adaptive tiered compression |
| 9 | **39 attention mechanisms** | Flash, linear, graph, hyperbolic, mincut-gated (50% compute) |
| 10 | **Drop into Postgres** | pgvector-compatible extension with SIMD acceleration |
| 11 | **Run anywhere** | Node.js, browser (WASM), edge (rvLite), HTTP server, Rust |
| 12 | **Continuous learning** | SONA with LoRA, EWC++, ReasoningBank for runtime adaptation |
| 13 | **MCP integration** | Model Context Protocol server for AI assistant tools |
| 14 | **Quantum coherence** | ruQu for quantum error correction via dynamic min-cut |
Claude-Flow v3 β Turn Claude Code into a collaborative AI team
**54+ specialized agents** working together on complex software engineering tasks:
```bash
# Install
npx @claude-flow/cli@latest init --wizard
# Spawn a swarm
npx @claude-flow/cli@latest swarm init --topology hierarchical --max-agents 8
```
**Key Features:**
- **SONA Learning**: Sub-50ms adaptive routing, learns optimal patterns over time
- **Queen-led Swarms**: Byzantine fault-tolerant consensus with 5 protocols (Raft, Gossip, CRDT)
- **HNSW Memory**: 150x-12,500x faster pattern retrieval via RuVector
- **175+ MCP Tools**: Native Model Context Protocol integration
- **Cost Optimization**: 3-tier routing extends Claude Code quota by 2.5x
- **Security**: AIDefence threat detection (<10ms), prompt injection blocking
Agentic-Flow v2 β Production AI agents for any cloud
**66 self-learning agents** with Claude Agent SDK, deployable to any cloud:
```bash
# Install
npx agentic-flow@latest
# Or with npm
npm install agentic-flow
```
**Key Features:**
- **SONA Architecture**: <1ms adaptive learning, +55% quality improvement
- **Flash Attention**: 2.49x JS speedup, 7.47x with NAPI bindings
- **213 MCP Tools**: Swarm management, memory, GitHub integration
- **Agent Booster**: 352x faster code editing for simple transforms
- **Multi-Provider**: Claude, GPT, Gemini, Cohere, local models with failover
- **Graph Reasoning**: GNN query refinement with +12.4% recall improvement
π Comparison with Other Vector Databases
| 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 | β | β | β | β |
| **SPARQL/RDF** | β
W3C 1.1 | β | β | β | β |
| **Hyperedges** | β
| β | β | β | β |
| **Dynamic Min-Cut** | β
n^0.12 | β | β | β | β |
| **Self-Learning (GNN)** | β
| β | β | β | β |
| **Runtime Adaptation (SONA)** | β
LoRA+EWC++ | β | β | β | β |
| **AI Agent Routing** | β
Tiny Dancer | β | β | β | β |
| **Attention Mechanisms** | β
39 types | β | β | β | β |
| **Hyperbolic Embeddings** | β
PoincarΓ©+Lorentz | β | β | β | β |
| **Local Embeddings** | β
6 models | β | β | β | β |
| **PostgreSQL Extension** | β
77+ functions | β | β | β | β |
| **SIMD Optimization** | β
AVX-512/NEON | Partial | β
| β
| β |
| **Metadata Filtering** | β
| β
| β
| β
| β
|
| **Sparse Vectors** | β
BM25/TF-IDF | β
| β
| β
| β |
| **Raft Consensus** | β
| β | β
| β | β |
| **Multi-Master Replication** | β
| β | β | β
| β |
| **Auto-Sharding** | β
| β
| β
| β
| β |
| **Auto-Compression** | β
2-32x | β | β | β
| β |
| **Snapshots/Backups** | β
| β
| β
| β
| β |
| **Browser/WASM** | β
| β | β | β | β |
| **Standalone Edge DB** | β
rvLite | β | β | β | β |
| **LLM Runtime** | β
ruvllm | β | β | β | β |
| **Pre-trained Models** | β
RuvLTRA (HF) | β | β | β | β |
| **MCP Server** | β
mcp-gate | β | β | β | β |
| **Self-Learning Hooks** | β
Q-learning+Neural+HNSW | β | β | β | β |
| **Quantum Coherence** | β
ruQu | β | β | β | β |
| **MinCut-Gated Attention** | β
50% compute | β | β | β | β |
| **FPGA Acceleration** | β
| β | β | β | β |
| **Local ONNX Embeddings** | β
8+ models | β | β | β | β |
| **Differentiable** | β
| β | β | β | β |
| **Multi-Tenancy** | β
Collections | β
| β
| β
| β
|
| **Open Source** | β
MIT | β | β
| β
| β
|
*With PQ8 compression. Benchmarks on Apple M2 / Intel i7.
β‘ Core Features & Capabilities
### 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 |
```bash
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 |
| **Hybrid Routing** | Keyword-first + embedding fallback | **90% accuracy** for agent routing |
| **Tiny Dancer** | FastGRNN neural inference | Optimize LLM inference costs |
| **Adaptive Routing** | Learn optimal routing strategies | Minimize latency, maximize accuracy |
| **SONA** | Two-tier LoRA + EWC++ + ReasoningBank | Runtime learning without retraining |
### Attention Mechanisms (`@ruvector/attention`)
| Feature | What It Does | Why It Matters |
|---------|--------------|----------------|
| **39 Mechanisms** | Dot-product, multi-head, flash, linear, sparse, cross-attention | Cover all transformer and GNN use cases |
| **Graph Attention** | RoPE, edge-featured, local-global, neighborhood | Purpose-built for graph neural networks |
| **Hyperbolic Attention** | PoincarΓ© ball operations, curved-space math | Better embeddings for hierarchical data |
| **SIMD Optimized** | Native Rust with AVX2/NEON acceleration | 2-10x faster than pure JS |
| **Streaming & Caching** | Chunk-based processing, KV-cache | Constant memory, 10x faster inference |
> **Documentation**: [Attention Module Docs](./crates/ruvector-attention/README.md)
#### Core Attention Mechanisms
Standard attention layers for sequence modeling and transformers.
| Mechanism | Complexity | Memory | Best For |
|-----------|------------|--------|----------|
| **DotProductAttention** | O(nΒ²) | O(nΒ²) | Basic attention for small-medium sequences |
| **MultiHeadAttention** | O(nΒ²Β·h) | O(nΒ²Β·h) | BERT, GPT-style transformers |
| **FlashAttention** | O(nΒ²) | O(n) | Long sequences with limited GPU memory |
| **LinearAttention** | O(nΒ·d) | O(nΒ·d) | 8K+ token sequences, real-time streaming |
| **HyperbolicAttention** | O(nΒ²) | O(nΒ²) | Tree-like data: taxonomies, org charts |
| **MoEAttention** | O(nΒ·k) | O(nΒ·k) | Large models with sparse expert routing |
#### Graph Attention Mechanisms
Attention layers designed for graph-structured data and GNNs.
| Mechanism | Complexity | Best For |
|-----------|------------|----------|
| **GraphRoPeAttention** | O(nΒ²) | Position-aware graph transformers |
| **EdgeFeaturedAttention** | O(nΒ²Β·e) | Molecules, knowledge graphs with edge data |
| **DualSpaceAttention** | O(nΒ²) | Hybrid flat + hierarchical embeddings |
| **LocalGlobalAttention** | O(nΒ·k + n) | 100K+ node graphs, scalable GNNs |
#### Specialized Mechanisms
Task-specific attention variants for efficiency and multi-modal learning.
| Mechanism | Type | Best For |
|-----------|------|----------|
| **SparseAttention** | Efficiency | Long docs, low-memory inference |
| **CrossAttention** | Multi-modal | Image-text, encoder-decoder models |
| **NeighborhoodAttention** | Graph | Local message passing in GNNs |
| **HierarchicalAttention** | Structure | Multi-level docs (section β paragraph) |
#### Hyperbolic Math Functions
Operations for PoincarΓ© ball embeddingsβcurved space that naturally represents hierarchies.
| Function | Description | Use Case |
|----------|-------------|----------|
| `expMap(v, c)` | Map to hyperbolic space | Initialize embeddings |
| `logMap(p, c)` | Map to flat space | Compute gradients |
| `mobiusAddition(x, y, c)` | Add vectors in curved space | Aggregate features |
| `poincareDistance(x, y, c)` | Measure hyperbolic distance | Compute similarity |
| `projectToPoincareBall(p, c)` | Ensure valid coordinates | Prevent numerical errors |
#### Async & Batch Operations
Utilities for high-throughput inference and training optimization.
| Operation | Description | Performance |
|-----------|-------------|-------------|
| `asyncBatchCompute()` | Process batches in parallel | 3-5x faster |
| `streamingAttention()` | Process in chunks | Fixed memory usage |
| `HardNegativeMiner` | Find hard training examples | Better contrastive learning |
| `AttentionCache` | Cache key-value pairs | 10x faster inference |
```bash
# 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]"
```
π Deployment Options
| 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 |
π Performance Benchmarks
**Measured results** from [`/bench_results/`](./bench_results/):
| Configuration | QPS | p50 Latency | p99 Latency | Recall |
|---------------|-----|-------------|-------------|--------|
| **ruvector (optimized)** | 1,216 | 0.78ms | 0.78ms | 100% |
| **Multi-threaded (16)** | 3,597 | 2.86ms | 8.47ms | 100% |
| **ef_search=50** | 674 | 1.35ms | 1.35ms | 100% |
| Python baseline | 77 | 11.88ms | 11.88ms | 100% |
| Brute force | 12 | 77.76ms | 77.76ms | 100% |
*Dataset: 384D, 10K-50K vectors. See full results in [latency_benchmark.md](./bench_results/latency_benchmark.md).*
| 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 |
ποΈ Adaptive 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)**
```javascript
const context = ruvector.search(questionEmbedding, 5);
const prompt = `Context: ${context.join('\n')}\n\nQuestion: ${question}`;
```
**Recommendation Systems**
```cypher
MATCH (user:User)-[:VIEWED]->(item:Product)
MATCH (item)-[:SIMILAR_TO]->(rec:Product)
RETURN rec ORDER BY rec.score DESC LIMIT 10
```
**Knowledge Graphs**
```cypher
MATCH (concept:Concept)-[:RELATES_TO*1..3]->(related)
RETURN related
```
π Documentation
| Topic | Link |
|-------|------|
| Getting Started | [docs/guides/GETTING_STARTED.md](./docs/guides/GETTING_STARTED.md) |
| Cypher Reference | [docs/api/CYPHER_REFERENCE.md](./docs/api/CYPHER_REFERENCE.md) |
| GNN Architecture | [docs/gnn/gnn-layer-implementation.md](./docs/gnn/gnn-layer-implementation.md) |
| Node.js API | [crates/ruvector-gnn-node/README.md](./crates/ruvector-gnn-node/README.md) |
| WASM API | [crates/ruvector-gnn-wasm/README.md](./crates/ruvector-gnn-wasm/README.md) |
| Performance Tuning | [docs/optimization/PERFORMANCE_TUNING_GUIDE.md](./docs/optimization/PERFORMANCE_TUNING_GUIDE.md) |
| API Reference | [docs/api/](./docs/api/) |
### Architecture Decision Records (ADRs)
| ADR | Status | Description |
|-----|--------|-------------|
| [ADR-001](./docs/adr/ADR-001-ruvector-core-architecture.md) | Accepted | Core architecture design |
| [ADR-002](./docs/adr/ADR-002-ruvllm-integration.md) | Accepted | RuvLLM integration |
| [ADR-003](./docs/adr/ADR-003-simd-optimization-strategy.md) | Accepted | SIMD optimization strategy |
| [ADR-004](./docs/adr/ADR-004-kv-cache-management.md) | Accepted | KV cache management |
| [ADR-005](./docs/adr/ADR-005-wasm-runtime-integration.md) | Accepted | WASM runtime integration |
| [ADR-006](./docs/adr/ADR-006-memory-management.md) | Accepted | Memory management |
| [ADR-007](./docs/adr/ADR-007-security-review-technical-debt.md) | Accepted | Security review |
| [ADR-008](./docs/adr/ADR-008-mistral-rs-integration.md) | **New** | Mistral-rs backend integration |
| [ADR-009](./docs/adr/ADR-009-structured-output.md) | **New** | Structured output (SOTA) |
| [ADR-010](./docs/adr/ADR-010-function-calling.md) | **New** | Function calling (SOTA) |
| [ADR-011](./docs/adr/ADR-011-prefix-caching.md) | **New** | Prefix caching (SOTA) |
| [ADR-012](./docs/adr/ADR-012-security-remediation.md) | **New** | Security remediation |
| [ADR-013](./docs/adr/ADR-013-huggingface-publishing.md) | **New** | HuggingFace publishing |
π¦ Rust Crates (63 Packages)
All crates are published to [crates.io](https://crates.io) under the `ruvector-*` namespace.
### Core Crates
| Crate | Description | crates.io |
|-------|-------------|-----------|
| [ruvector-core](./crates/ruvector-core) | Vector database engine with HNSW indexing | [](https://crates.io/crates/ruvector-core) |
| [ruvector-collections](./crates/ruvector-collections) | Collection and namespace management | [](https://crates.io/crates/ruvector-collections) |
| [ruvector-filter](./crates/ruvector-filter) | Vector filtering and metadata queries | [](https://crates.io/crates/ruvector-filter) |
| [ruvector-metrics](./crates/ruvector-metrics) | Performance metrics and monitoring | [](https://crates.io/crates/ruvector-metrics) |
| [ruvector-snapshot](./crates/ruvector-snapshot) | Snapshot and persistence management | [](https://crates.io/crates/ruvector-snapshot) |
### Graph & GNN
| Crate | Description | crates.io |
|-------|-------------|-----------|
| [ruvector-graph](./crates/ruvector-graph) | Hypergraph database with Neo4j-style Cypher | [](https://crates.io/crates/ruvector-graph) |
| [ruvector-graph-node](./crates/ruvector-graph-node) | Node.js bindings for graph operations | [](https://crates.io/crates/ruvector-graph-node) |
| [ruvector-graph-wasm](./crates/ruvector-graph-wasm) | WASM bindings for browser graph queries | [](https://crates.io/crates/ruvector-graph-wasm) |
| [ruvector-gnn](./crates/ruvector-gnn) | Graph Neural Network layers and training | [](https://crates.io/crates/ruvector-gnn) |
| [ruvector-gnn-node](./crates/ruvector-gnn-node) | Node.js bindings for GNN inference | [](https://crates.io/crates/ruvector-gnn-node) |
| [ruvector-gnn-wasm](./crates/ruvector-gnn-wasm) | WASM bindings for browser GNN | [](https://crates.io/crates/ruvector-gnn-wasm) |
### Attention Mechanisms
| Crate | Description | crates.io |
|-------|-------------|-----------|
| [ruvector-attention](./crates/ruvector-attention) | 39 attention mechanisms (Flash, Hyperbolic, MoE, Graph) | [](https://crates.io/crates/ruvector-attention) |
| [ruvector-attention-node](./crates/ruvector-attention-node) | Node.js bindings for attention mechanisms | [](https://crates.io/crates/ruvector-attention-node) |
| [ruvector-attention-wasm](./crates/ruvector-attention-wasm) | WASM bindings for browser attention | [](https://crates.io/crates/ruvector-attention-wasm) |
| [ruvector-attention-cli](./crates/ruvector-attention-cli) | CLI for attention testing and benchmarking | [](https://crates.io/crates/ruvector-attention-cli) |
### LLM Runtime (ruvllm)
| Crate | Description | crates.io |
|-------|-------------|-----------|
| [ruvllm](./crates/ruvllm) | LLM serving runtime with SONA, paged attention, KV cache | [](https://crates.io/crates/ruvllm) |
| [ruvllm-cli](./crates/ruvllm-cli) | CLI for model inference and benchmarking | [](https://crates.io/crates/ruvllm-cli) |
| [ruvllm-wasm](./crates/ruvllm-wasm) | WASM bindings for browser LLM inference | [](https://crates.io/crates/ruvllm-wasm) |
**Features:** Candle backend, Metal/CUDA acceleration, Apple Neural Engine, GGUF support, SONA learning integration.
```bash
cargo add ruvllm --features inference-metal # Mac with Metal
cargo add ruvllm --features inference-cuda # NVIDIA GPU
```
**RuvLTRA Models** β Pre-trained GGUF models optimized for Claude Code workflows:
| Model | Size | Use Case | Link |
|-------|------|----------|------|
| ruvltra-claude-code-0.5b-q4_k_m | 398 MB | Agent routing | [HuggingFace](https://huggingface.co/ruv/ruvltra) |
| ruvltra-small-0.5b-q4_k_m | 398 MB | Embeddings | [HuggingFace](https://huggingface.co/ruv/ruvltra) |
| ruvltra-medium-1.1b-q4_k_m | 800 MB | Classification | [HuggingFace](https://huggingface.co/ruv/ruvltra) |
```bash
# Download and use
wget https://huggingface.co/ruv/ruvltra/resolve/main/ruvltra-small-0.5b-q4_k_m.gguf
```
π RuvLLM Training & Fine-Tuning Tutorials
#### Hybrid Routing (90% Accuracy)
RuvLTRA achieves **90% routing accuracy** using a keyword-first strategy with embedding fallback:
```javascript
// Optimal routing: Keywords first, embeddings as tiebreaker
function routeTask(task, taskEmbedding, agentEmbeddings) {
const keywordScores = getKeywordScores(task);
const maxKw = Math.max(...Object.values(keywordScores));
if (maxKw > 0) {
const candidates = Object.entries(keywordScores)
.filter(([_, score]) => score === maxKw)
.map(([agent]) => agent);
if (candidates.length === 1) return { agent: candidates[0] };
return pickByEmbedding(candidates, taskEmbedding, agentEmbeddings);
}
return embeddingSimilarity(taskEmbedding, agentEmbeddings);
}
```
Run the benchmark: `node npm/packages/ruvllm/scripts/hybrid-model-compare.js`
#### Generate Training Data
```bash
# Using CLI (recommended)
npx @ruvector/ruvllm train stats # View dataset statistics
npx @ruvector/ruvllm train dataset # Export training data
npx @ruvector/ruvllm train contrastive # Run full training pipeline
# With options
npx @ruvector/ruvllm train dataset --output ./my-training
npx @ruvector/ruvllm train contrastive --epochs 20 --batch-size 32 --lr 0.0001
```
**Programmatic API:**
```javascript
import { ContrastiveTrainer, generateTrainingDataset, getDatasetStats } from '@ruvector/ruvllm';
const stats = getDatasetStats();
console.log(`${stats.totalExamples} examples, ${stats.agentTypes} agent types`);
const trainer = new ContrastiveTrainer({ epochs: 10, margin: 0.5 });
trainer.addTriplet(anchor, anchorEmb, positive, positiveEmb, negative, negativeEmb, true);
const result = trainer.train();
trainer.exportTrainingData('./output');
```
#### Fine-Tune with LoRA
```bash
pip install transformers peft datasets accelerate
python -m peft.lora_train \
--model_name Qwen/Qwen2.5-0.5B-Instruct \
--dataset ./data/training/routing-examples.jsonl \
--output_dir ./ruvltra-routing-lora \
--lora_r 8 --lora_alpha 16 \
--num_train_epochs 3 \
--learning_rate 2e-4
```
#### Convert to GGUF
```bash
# Merge LoRA weights
python -c "
from peft import PeftModel
from transformers import AutoModelForCausalLM
base = AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-0.5B-Instruct')
model = PeftModel.from_pretrained(base, './ruvltra-routing-lora')
model.merge_and_unload().save_pretrained('./ruvltra-routing-merged')
"
# Convert and quantize
python llama.cpp/convert_hf_to_gguf.py ./ruvltra-routing-merged --outfile ruvltra-routing-f16.gguf
./llama.cpp/llama-quantize ruvltra-routing-f16.gguf ruvltra-routing-q4_k_m.gguf Q4_K_M
```
#### Contrastive Embedding Training
**Using RuvLLM CLI (recommended):**
```bash
# Full contrastive training pipeline with triplet loss
npx @ruvector/ruvllm train contrastive --output ./training-output
# Exports: triplets.jsonl, embeddings.json, lora_config.json, train.sh
```
**Using Python (for GPU training):**
```python
from sentence_transformers import SentenceTransformer, losses, InputExample
from torch.utils.data import DataLoader
train_examples = [
InputExample(texts=["implement login", "build auth component"], label=1.0),
InputExample(texts=["implement login", "write unit tests"], label=0.0),
]
model = SentenceTransformer("Qwen/Qwen2.5-0.5B-Instruct")
train_loss = losses.CosineSimilarityLoss(model)
model.fit([(DataLoader(train_examples, batch_size=16), train_loss)], epochs=5)
```
**Resources:** [Issue #122](https://github.com/ruvnet/ruvector/issues/122) | [LoRA Paper](https://arxiv.org/abs/2106.09685) | [Sentence Transformers](https://www.sbert.net/docs/training/overview.html)
#### Rust Training Module
For production-scale dataset generation, use the Rust training module ([full docs](./crates/ruvllm/src/training/README.md)):
```rust
use ruvllm::training::{DatasetGenerator, DatasetConfig};
let config = DatasetConfig {
examples_per_category: 100,
enable_augmentation: true,
seed: 42,
..Default::default()
};
let dataset = DatasetGenerator::new(config).generate();
let (train, val, test) = dataset.split(0.7, 0.15, 0.15, 42);
dataset.export_jsonl("training.jsonl")?;
```
**Features:**
- **5 agent categories**: Coder, Researcher, Security, Architecture, Reviewer (20% each)
- **Model routing**: Haiku (simple) β Sonnet (moderate) β Opus (complex/security)
- **Data augmentation**: Paraphrasing, complexity variations, domain transfer
- **8 technical domains**: Web, Systems, DataScience, Mobile, DevOps, Security, Database, API
- **Quality scores**: 0.80-0.96 based on template quality and category
- **Performance**: ~10,000 examples/second, ~50 MB/s JSONL export
```bash
cargo run --example generate_claude_dataset --release
# Outputs: train.jsonl, val.jsonl, test.jsonl, stats.json
```
π WASM Packages (Browser & Edge)
Specialized WebAssembly modules for browser and edge deployment. These packages bring advanced AI and distributed computing primitives to JavaScript/TypeScript with near-native performance.
### Quick Install (All Browser WASM)
```bash
# Core vector search
npm install ruvector-wasm @ruvector/rvlite
# AI & Neural
npm install @ruvector/gnn-wasm @ruvector/attention-wasm @ruvector/sona-wasm
# Graph & Algorithms
npm install @ruvector/graph-wasm @ruvector/mincut-wasm @ruvector/hyperbolic-hnsw-wasm
# Exotic AI
npm install @ruvector/economy-wasm @ruvector/exotic-wasm @ruvector/nervous-system-wasm
# LLM (browser inference)
npm install @ruvector/ruvllm-wasm
```
| Category | Packages | Total Size |
|----------|----------|------------|
| **Core** | ruvector-wasm, rvlite | ~200KB |
| **AI/Neural** | gnn, attention, sona | ~300KB |
| **Graph** | graph, mincut, hyperbolic-hnsw | ~250KB |
| **Exotic** | economy, exotic, nervous-system | ~350KB |
| **LLM** | ruvllm-wasm | ~500KB |
### Installation
```bash
# Install individual packages
npm install @ruvector/learning-wasm
npm install @ruvector/economy-wasm
npm install @ruvector/exotic-wasm
npm install @ruvector/nervous-system-wasm
npm install @ruvector/attention-unified-wasm
# Or build from source
cd crates/ruvector-learning-wasm
wasm-pack build --target web
```
### ruvector-learning-wasm
**MicroLoRA, BTSP, and HDC for self-learning AI systems.**
Ultra-fast Low-Rank Adaptation (LoRA) optimized for WASM execution with <100us adaptation latency. Designed for real-time per-operator learning in query optimization and AI agent systems.
| Feature | Performance | Description |
|---------|-------------|-------------|
| **MicroLoRA** | <100us latency | Rank-2 LoRA matrices for instant weight adaptation |
| **Per-Operator Scoping** | Zero-allocation hot paths | Separate adapters for different operator types |
| **Trajectory Tracking** | Lock-free buffers | Record learning trajectories for replay |
**Architecture:**
```
Input Embedding (256-dim)
|
v
+---------+
| A: d x 2 | Down projection
+---------+
|
v
+---------+
| B: 2 x d | Up projection
+---------+
|
v
Delta W = alpha * (A @ B)
|
v
Output = Input + Delta W
```
**JavaScript/TypeScript Example:**
```typescript
import init, { WasmMicroLoRA } from '@ruvector/learning-wasm';
await init();
// Create MicroLoRA engine (256-dim, alpha=0.1, lr=0.01)
const lora = new WasmMicroLoRA(256, 0.1, 0.01);
// Forward pass with adaptation
const input = new Float32Array(256).fill(0.5);
const output = lora.forward_array(input);
// Adapt based on gradient signal
const gradient = new Float32Array(256).fill(0.1);
lora.adapt_array(gradient);
// Adapt with reward signal for RL
lora.adapt_with_reward(0.8); // 80% improvement
console.log(`Adaptations: ${lora.adapt_count()}`);
console.log(`Delta norm: ${lora.delta_norm()}`);
```
### ruvector-economy-wasm
**CRDT-based autonomous credit economy for distributed compute networks.**
P2P-safe concurrent transactions using Conflict-free Replicated Data Types (CRDTs). Features a 10x-to-1x early adopter contribution curve and stake/slash mechanisms for participation incentives.
| Feature | Description |
|---------|-------------|
| **CRDT Ledger** | G-Counter (earned) + PN-Counter (spent) for P2P consistency |
| **Contribution Curve** | 10x early adopter multiplier decaying to 1x baseline |
| **Stake/Slash** | Participation requirements with slashing for bad actors |
| **Reputation Scoring** | Multi-factor: accuracy * uptime * stake_weight |
| **Merkle Verification** | SHA-256 state root for quick ledger verification |
**Architecture:**
```
+------------------------+
| CreditLedger | <-- CRDT-based P2P-safe ledger
| +------------------+ |
| | G-Counter: Earned| | <-- Monotonically increasing
| | PN-Counter: Spent| | <-- Can handle disputes/refunds
| | Stake: Locked | | <-- Participation requirement
| | State Root | | <-- Merkle root for verification
| +------------------+ |
+------------------------+
|
v
+------------------------+
| ContributionCurve | <-- Exponential decay: 10x -> 1x
+------------------------+
|
v
+------------------------+
| ReputationScore | <-- accuracy * uptime * stake_weight
+------------------------+
```
**JavaScript/TypeScript Example:**
```typescript
import init, {
CreditLedger,
ReputationScore,
contribution_multiplier
} from '@ruvector/economy-wasm';
await init();
// Create a new ledger for a node
const ledger = new CreditLedger("node-123");
// Earn credits (with early adopter multiplier)
ledger.creditWithMultiplier(100, "task:abc");
console.log(`Balance: ${ledger.balance()}`);
console.log(`Multiplier: ${ledger.currentMultiplier()}x`);
// Stake for participation
ledger.stake(50);
console.log(`Staked: ${ledger.stakedAmount()}`);
// Check multiplier for network compute hours
const mult = contribution_multiplier(50000.0); // 50K hours
console.log(`Network multiplier: ${mult}x`); // ~8.5x
// Track reputation
const rep = new ReputationScore(0.95, 0.98, 1000);
console.log(`Composite score: ${rep.composite_score()}`);
// P2P merge with another ledger (CRDT operation)
const otherEarned = new Uint8Array([/* serialized earned counter */]);
const otherSpent = new Uint8Array([/* serialized spent counter */]);
const mergedCount = ledger.merge(otherEarned, otherSpent);
```
### ruvector-exotic-wasm
**Exotic AI mechanisms for emergent behavior in distributed systems.**
Novel coordination primitives inspired by decentralized governance, developmental biology, and quantum physics.
| Mechanism | Inspiration | Use Case |
|-----------|-------------|----------|
| **Neural Autonomous Organization (NAO)** | DAOs + oscillatory sync | Decentralized AI agent governance |
| **Morphogenetic Network** | Developmental biology | Emergent network topology |
| **Time Crystal Coordinator** | Quantum time crystals | Robust distributed coordination |
**NAO Features:**
- Stake-weighted quadratic voting
- Oscillatory synchronization for coherence
- Quorum-based consensus (configurable threshold)
**Morphogenetic Network Features:**
- Cellular differentiation through morphogen gradients
- Emergent network topology via growth/pruning
- Synaptic pruning for optimization
**Time Crystal Features:**
- Period-doubled oscillations for stable coordination
- Floquet engineering for noise resilience
- Phase-locked agent synchronization
**JavaScript/TypeScript Example:**
```typescript
import init, {
WasmNAO,
WasmMorphogeneticNetwork,
WasmTimeCrystal,
ExoticEcosystem
} from '@ruvector/exotic-wasm';
await init();
// Neural Autonomous Organization
const nao = new WasmNAO(0.7); // 70% quorum
nao.addMember("agent_1", 100); // 100 stake
nao.addMember("agent_2", 50);
const propId = nao.propose("Upgrade memory backend");
nao.vote(propId, "agent_1", 0.9); // 90% approval weight
nao.vote(propId, "agent_2", 0.6);
if (nao.execute(propId)) {
console.log("Proposal executed!");
}
// Morphogenetic Network
const net = new WasmMorphogeneticNetwork(100, 100); // 100x100 grid
net.seedSignaling(50, 50); // Seed signaling cell at center
for (let i = 0; i < 1000; i++) {
net.grow(0.1); // 10% growth rate
}
net.differentiate();
net.prune(0.1); // 10% pruning threshold
// Time Crystal Coordinator
const crystal = new WasmTimeCrystal(10, 100); // 10 oscillators, 100ms period
crystal.crystallize();
for (let i = 0; i < 200; i++) {
const pattern = crystal.tick();
// Use pattern for coordination decisions
}
console.log(`Synchronization: ${crystal.orderParameter()}`);
// Combined Ecosystem (all three working together)
const eco = new ExoticEcosystem(5, 50, 8); // 5 agents, 50x50 grid, 8 oscillators
eco.crystallize();
for (let i = 0; i < 100; i++) {
eco.step();
}
console.log(eco.summaryJson());
```
### ruvector-nervous-system-wasm
**Bio-inspired neural system components for browser execution.**
| Component | Performance | Description |
|-----------|-------------|-------------|
| **BTSP** | Immediate | Behavioral Timescale Synaptic Plasticity for one-shot learning |
| **HDC** | <50ns bind, <100ns similarity | Hyperdimensional Computing with 10,000-bit vectors |
| **WTA** | <1us | Winner-Take-All for instant decisions |
| **K-WTA** | <10us | K-Winner-Take-All for sparse distributed coding |
| **Global Workspace** | <10us | 4-7 item attention bottleneck (Miller's Law) |
**Hyperdimensional Computing:**
- 10,000-bit binary hypervectors
- 10^40 representational capacity
- XOR binding (associative, commutative, self-inverse)
- Hamming distance similarity with SIMD optimization
**Biological References:**
- BTSP: Bittner et al. 2017 - Hippocampal place fields
- HDC: Kanerva 1988, Plate 2003 - Hyperdimensional computing
- WTA: Cortical microcircuits - Lateral inhibition
- Global Workspace: Baars 1988, Dehaene 2014 - Consciousness
**JavaScript/TypeScript Example:**
```typescript
import init, {
BTSPLayer,
Hypervector,
HdcMemory,
WTALayer,
KWTALayer,
GlobalWorkspace,
WorkspaceItem,
} from '@ruvector/nervous-system-wasm';
await init();
// One-shot learning with BTSP
const btsp = new BTSPLayer(100, 2000.0); // 100 dim, 2000ms tau
const pattern = new Float32Array(100).fill(0.1);
btsp.one_shot_associate(pattern, 1.0); // Immediate association
const output = btsp.forward(pattern);
// Hyperdimensional Computing
const apple = Hypervector.random();
const orange = Hypervector.random();
const fruit = apple.bind(orange); // XOR binding
const similarity = apple.similarity(orange); // ~0.0 (orthogonal)
console.log(`Similarity: ${similarity}`); // Random vectors are orthogonal
// HDC Memory
const memory = new HdcMemory();
memory.store("apple", apple);
memory.store("orange", orange);
const results = memory.retrieve(apple, 0.9); // threshold 0.9
const topK = memory.top_k(fruit, 3); // top-3 similar
// Instant decisions with WTA
const wta = new WTALayer(1000, 0.5, 0.8); // 1000 neurons, threshold, inhibition
const activations = new Float32Array(1000);
// ... fill activations ...
const winner = wta.compete(activations);
// Sparse coding with K-WTA
const kwta = new KWTALayer(1000, 50); // 1000 neurons, k=50 winners
const winners = kwta.select(activations);
// Attention bottleneck with Global Workspace
const workspace = new GlobalWorkspace(7); // Miller's Law: 7 +/- 2
const item = new WorkspaceItem(
new Float32Array([1, 2, 3]), // content
0.9, // salience
1, // source
Date.now() // timestamp
);
workspace.broadcast(item);
```
### ruvector-attention-unified-wasm
**Unified API for 18+ attention mechanisms across Neural, DAG, Graph, and SSM domains.**
A single WASM interface that routes to the appropriate attention implementation based on your data structure and requirements.
| Category | Mechanisms | Best For |
|----------|------------|----------|
| **Neural** | Scaled Dot-Product, Multi-Head, Hyperbolic, Linear, Flash, Local-Global, MoE | Transformers, sequences |
| **DAG** | Topological, Causal Cone, Critical Path, MinCut-Gated, Hierarchical Lorentz, Parallel Branch, Temporal BTSP | Query DAGs, workflows |
| **Graph** | GAT, GCN, GraphSAGE | GNNs, knowledge graphs |
| **SSM** | Mamba | Long sequences, streaming |
**Mechanism Selection:**
```
+------------------+ +-------------------+
| Your Data | --> | UnifiedAttention | --> Optimal Mechanism
+------------------+ +-------------------+
|
+----------------------+----------------------+
| | |
+----v----+ +-----v-----+ +-----v----+
| Neural | | DAG | | Graph |
+---------+ +-----------+ +----------+
| dot_prod| | topological| | gat |
| multi_hd| | causal_cone| | gcn |
| flash | | mincut_gtd | | graphsage|
+---------+ +-----------+ +----------+
```
**JavaScript/TypeScript Example:**
```typescript
import init, {
UnifiedAttention,
availableMechanisms,
getStats,
softmax,
temperatureSoftmax,
cosineSimilarity,
// Neural attention
ScaledDotProductAttention,
MultiHeadAttention,
// DAG attention
TopologicalAttention,
MinCutGatedAttention,
// Graph attention
GraphAttention,
// SSM
MambaSSM,
} from '@ruvector/attention-unified-wasm';
await init();
// List all available mechanisms
console.log(availableMechanisms());
// { neural: [...], dag: [...], graph: [...], ssm: [...] }
console.log(getStats());
// { total_mechanisms: 18, neural_count: 7, dag_count: 7, ... }
// Unified selector - routes to appropriate implementation
const attention = new UnifiedAttention("multi_head");
console.log(`Category: ${attention.category}`); // "neural"
console.log(`Supports sequences: ${attention.supportsSequences()}`); // true
console.log(`Supports graphs: ${attention.supportsGraphs()}`); // false
// For DAG structures
const dagAttention = new UnifiedAttention("topological");
console.log(`Category: ${dagAttention.category}`); // "dag"
console.log(`Supports graphs: ${dagAttention.supportsGraphs()}`); // true
// Hyperbolic attention for hierarchical data
const hypAttention = new UnifiedAttention("hierarchical_lorentz");
console.log(`Supports hyperbolic: ${hypAttention.supportsHyperbolic()}`); // true
// Utility functions
const logits = [1.0, 2.0, 3.0, 4.0];
const probs = softmax(logits);
console.log(`Probabilities sum to: ${probs.reduce((a, b) => a + b)}`); // 1.0
// Temperature-scaled softmax (lower = more peaked)
const sharperProbs = temperatureSoftmax(logits, 0.5);
// Cosine similarity
const vecA = [1.0, 0.0, 0.0];
const vecB = [1.0, 0.0, 0.0];
console.log(`Similarity: ${cosineSimilarity(vecA, vecB)}`); // 1.0
```
### WASM Package Summary
| Package | Size Target | Key Features |
|---------|-------------|--------------|
| `@ruvector/learning-wasm` | <50KB | MicroLoRA (<100us), trajectory tracking |
| `@ruvector/economy-wasm` | <100KB | CRDT ledger, 10x->1x curve, stake/slash |
| `@ruvector/exotic-wasm` | <150KB | NAO, Morphogenetic, Time Crystal |
| `@ruvector/nervous-system-wasm` | <100KB | BTSP, HDC (10K-bit), WTA, Global Workspace |
| `@ruvector/attention-unified-wasm` | <200KB | 18+ attention mechanisms, unified API |
**Common Patterns:**
```typescript
// All packages follow the same initialization pattern
import init, { /* exports */ } from '@ruvector/π§ Self-Learning Intelligence Hooks
**Make your AI assistant smarter over time.**
When you use Claude Code (or any AI coding assistant), it starts fresh every session. It doesn't remember which approaches worked, which files you typically edit together, or what errors you've seen before.
**RuVector Hooks fixes this.** It's a lightweight intelligence layer that:
1. **Remembers what works** β Tracks which agent types succeed for different tasks
2. **Learns from mistakes** β Records error patterns and suggests fixes you've used before
3. **Predicts your workflow** β Knows that after editing `api.rs`, you usually edit `api_test.rs`
4. **Coordinates teams** β Manages multi-agent swarms for complex tasks
Think of it as giving your AI assistant a memory and intuition about your codebase.
#### How It Works
```
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Claude Code ββββββΆβ RuVector Hooks ββββββΆβ Intelligence β
β (PreToolUse) β β (pre-edit) β β Layer β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββ
βΌ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Q-Learning β β Vector Memory β β Swarm Graph β
β Ξ±=0.1 Ξ³=0.95 β β 64-dim embed β β Coordination β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
```
The hooks integrate with Claude Code's event system:
- **PreToolUse** β Provides guidance before edits (agent routing, related files)
- **PostToolUse** β Records outcomes for learning (success/failure, patterns)
- **SessionStart/Stop** β Manages session state and metrics export
#### Technical Specifications
| Component | Implementation | Details |
|-----------|----------------|---------|
| **Q-Learning** | Temporal Difference | Ξ±=0.1, Ξ³=0.95, Ξ΅=0.1 (Ξ΅-greedy exploration) |
| **Embeddings** | Hash-based vectors | 64 dimensions, normalized, cosine similarity |
| **LRU Cache** | `lru` crate | 1000 entries, ~10x faster Q-value lookups |
| **Compression** | `flate2` gzip | 70-83% storage reduction, fast compression |
| **Storage** | JSON / PostgreSQL | Auto-fallback, 5000 memory entry limit |
| **Cross-platform** | Rust + TypeScript | Windows (USERPROFILE), Unix (HOME) |
#### Performance
| Metric | Value |
|--------|-------|
| Q-value lookup (cached) | <1Β΅s |
| Q-value lookup (uncached) | ~50Β΅s |
| Memory search (1000 entries) | <5ms |
| Storage compression ratio | 70-83% |
| Session start overhead | <10ms |
| Crate/Package | Description | Status |
|---------------|-------------|--------|
| [ruvector-cli hooks](./crates/ruvector-cli) | Rust CLI with 34 hooks commands | [](https://crates.io/crates/ruvector-cli) |
| [@ruvector/cli hooks](./npm/packages/cli) | npm CLI with 29 hooks commands | [](https://www.npmjs.com/package/@ruvector/cli) |
#### Quick Start
```bash
# Rust CLI
cargo install ruvector-cli
ruvector hooks init
ruvector hooks install
# npm CLI
npx @ruvector/cli hooks init
npx @ruvector/cli hooks install
```
#### Core Capabilities
| Feature | Description | Technical Details |
|---------|-------------|-------------------|
| **Q-Learning Routing** | Routes tasks to best agent with learned confidence scores | TD learning with Ξ±=0.1, Ξ³=0.95, Ξ΅-greedy exploration |
| **Semantic Memory** | Vector-based memory with embeddings for context retrieval | 64-dim hash embeddings, cosine similarity, top-k search |
| **Error Learning** | Records error patterns and suggests fixes | Pattern matching for E0308, E0433, TS2322, etc. |
| **File Sequences** | Predicts next files to edit based on historical patterns | Markov chain transitions, frequency-weighted suggestions |
| **Swarm Coordination** | Registers agents, tracks coordination edges, optimizes | Graph-based topology, weighted edges, task assignment |
| **LRU Cache** | 1000-entry cache for faster Q-value lookups | ~10x speedup, automatic eviction, RefCell for interior mutability |
| **Gzip Compression** | Storage savings with automatic compression | flate2 fast mode, 70-83% reduction, transparent load/save |
| **Batch Saves** | Dirty flag tracking to reduce disk I/O | Only writes when data changes, force_save() override |
| **Shell Completions** | Tab completion for all commands | bash, zsh, fish, PowerShell support |
#### Supported Error Codes
The intelligence layer has built-in knowledge for common error patterns:
| Language | Error Codes | Auto-Suggested Fixes |
|----------|-------------|---------------------|
| **Rust** | E0308, E0433, E0425, E0277, E0382 | Type mismatches, missing imports, borrow checker |
| **TypeScript** | TS2322, TS2339, TS2345, TS7006 | Type assignments, property access, argument types |
| **Python** | ImportError, AttributeError, TypeError | Module imports, attribute access, type errors |
| **Go** | undefined, cannot use, not enough arguments | Variable scope, type conversion, function calls |
#### Commands Reference
```bash
# Setup
ruvector hooks init [--force] [--postgres] # Initialize hooks (--postgres for DB schema)
ruvector hooks install # Install into Claude settings
# Core
ruvector hooks stats # Show intelligence statistics
ruvector hooks session-start [--resume] # Start/resume a session
ruvector hooks session-end # End session with metrics
# Memory
ruvector hooks remember -t edit "content" # Store in semantic memory
ruvector hooks recall "query" -k 5 # Search memory semantically
# Learning
ruvector hooks learn π¬ Scientific OCR (SciPix)
| Crate | Description | crates.io |
|-------|-------------|-----------|
| [ruvector-scipix](./examples/scipix) | OCR engine for scientific documents, math equations β LaTeX/MathML | [](https://crates.io/crates/ruvector-scipix) |
**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.
```bash
# 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](./examples/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.
```rust
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](./crates/ruvector-node) | Main Node.js bindings (napi-rs) | [](https://crates.io/crates/ruvector-node) |
| [ruvector-wasm](./crates/ruvector-wasm) | Main WASM bindings for browsers | [](https://crates.io/crates/ruvector-wasm) |
| [ruvllm-wasm](./crates/ruvllm-wasm) | LLM integration WASM bindings | [](https://crates.io/crates/ruvllm-wasm) |
| [ruvector-cli](./crates/ruvector-cli) | Command-line interface | [](https://crates.io/crates/ruvector-cli) |
| [ruvector-server](./crates/ruvector-server) | HTTP/gRPC server | [](https://crates.io/crates/ruvector-server) |
π Production Examples
28 production-ready examples demonstrating RuVector integration patterns.
| Example | Description | Type |
|---------|-------------|------|
| [agentic-jujutsu](./examples/agentic-jujutsu) | Quantum-resistant version control for AI agents (23x faster than Git) | Rust |
| [mincut](./examples/mincut) | 6 self-organizing network demos: strange loops, time crystals, causal discovery | Rust |
| [subpolynomial-time](./examples/subpolynomial-time) | n^0.12 subpolynomial algorithm demos | Rust |
| [exo-ai-2025](./examples/exo-ai-2025) | Cognitive substrate with 9 neural-symbolic crates + 11 research experiments | Rust/TS |
| [neural-trader](./examples/neural-trader) | AI trading with DRL + sentiment analysis + SONA learning | Rust |
| [ultra-low-latency-sim](./examples/ultra-low-latency-sim) | 13+ quadrillion meta-simulations/sec with SIMD | Rust |
| [meta-cognition-spiking-neural-network](./examples/meta-cognition-spiking-neural-network) | Spiking neural network with meta-cognitive learning (10-50x speedup) | npm |
| [spiking-network](./examples/spiking-network) | Biologically-inspired spiking neural networks | Rust |
| [ruvLLM](./examples/ruvLLM) | LLM integration patterns for RAG and AI agents | Rust |
| [onnx-embeddings](./examples/onnx-embeddings) | Production ONNX embedding generation without Python | Rust |
| [onnx-embeddings-wasm](./examples/onnx-embeddings-wasm) | WASM ONNX embeddings for browsers | WASM |
| [refrag-pipeline](./examples/refrag-pipeline) | RAG pipeline with vector search and document processing | Rust |
| [scipix](./examples/scipix) | Scientific OCR: equations β LaTeX/MathML with ONNX inference | Rust |
| [graph](./examples/graph) | Graph database examples with Cypher queries | Rust |
| [edge](./examples/edge) | 364KB WASM edge deployment | Rust |
| [edge-full](./examples/edge-full) | Full-featured edge vector DB | Rust |
| [edge-net](./examples/edge-net) | Networked edge deployment with zero-cost swarms | Rust |
| [vibecast-7sense](./examples/vibecast-7sense) | 7-sense perception AI application | TypeScript |
| [apify](./examples/apify) | 13 Apify actors: trading, memory engine, synth data, market research | npm |
| [google-cloud](./examples/google-cloud) | GCP templates for Cloud Run, GKE, Vertex AI | Terraform |
| [wasm-react](./examples/wasm-react) | React integration with WASM vector operations | WASM |
| [wasm-vanilla](./examples/wasm-vanilla) | Vanilla JS WASM example for browser vector search | WASM |
| [wasm](./examples/wasm) | Core WASM examples and bindings | WASM |
| [nodejs](./examples/nodejs) | Node.js integration examples | Node.js |
| [rust](./examples/rust) | Core Rust usage examples | Rust |
π Tutorials
### Tutorial 1: Vector Search in 60 Seconds
```javascript
import { VectorDB } from 'ruvector';
// Create DB with 384-dimensional vectors
const db = new VectorDB(384);
// Add vectors
db.insert('doc1', [0.1, 0.2, ...]); // 384 floats
db.insert('doc2', [0.3, 0.1, ...]);
// Search (returns top 5 nearest neighbors)
const results = db.search(queryVector, 5);
// -> [{ id: 'doc1', score: 0.95 }, { id: 'doc2', score: 0.87 }]
```
### Tutorial 2: Graph Queries with Cypher
```javascript
import { GraphDB } from 'ruvector';
const graph = new GraphDB();
// Create nodes and relationships
graph.query(`
CREATE (a:Person {name: 'Alice', embedding: $emb1})
CREATE (b:Person {name: 'Bob', embedding: $emb2})
CREATE (a)-[:KNOWS {since: 2020}]->(b)
`, { emb1: aliceVector, emb2: bobVector });
// Hybrid query: graph traversal + vector similarity
const results = graph.query(`
MATCH (p:Person)-[:KNOWS*1..3]->(friend)
WHERE vector.similarity(friend.embedding, $query) > 0.8
RETURN friend.name, vector.similarity(friend.embedding, $query) as score
ORDER BY score DESC
`, { query: queryVector });
```
### Tutorial 3: Self-Learning with SONA
```rust
use ruvector_sona::{SonaEngine, SonaConfig};
// Initialize SONA with LoRA adapters
let sona = SonaEngine::with_config(SonaConfig {
hidden_dim: 256,
lora_rank: 8,
ewc_lambda: 0.4, // Elastic Weight Consolidation
..Default::default()
});
// Record successful action
let mut trajectory = sona.begin_trajectory(query_embedding);
trajectory.add_step(result_embedding, vec![], 1.0); // reward=1.0
sona.end_trajectory(trajectory, true); // success=true
// SONA learns and improves future predictions
sona.force_learn();
// Later: get improved predictions
let prediction = sona.predict(&new_query_embedding);
```
### Tutorial 4: Dynamic Min-Cut (n^0.12 Updates)
```rust
use ruvector_mincut::{DynamicMinCut, Graph};
// Build graph
let mut graph = Graph::new(100); // 100 nodes
graph.add_edge(0, 1, 10.0);
graph.add_edge(1, 2, 5.0);
graph.add_edge(0, 2, 15.0);
// Compute initial min-cut
let mut mincut = DynamicMinCut::new(&graph);
let (value, cut_edges) = mincut.compute();
println!("Min-cut value: {}", value); // -> 15.0
// Dynamic update - subpolynomial time O(n^0.12)!
graph.update_edge(1, 2, 20.0);
let (new_value, _) = mincut.recompute(); // Much faster than recomputing from scratch
```
### Tutorial 5: 39 Attention Mechanisms
```rust
use ruvector_attention::{
Attention, FlashAttention, LinearAttention,
HyperbolicAttention, GraphAttention, MinCutGatedAttention
};
// FlashAttention - O(n) memory, fastest for long sequences
let flash = FlashAttention::new(512, 8); // dim=512, heads=8
let output = flash.forward(&query, &key, &value);
// LinearAttention - O(n) time complexity
let linear = LinearAttention::new(512, 8);
// HyperbolicAttention - for hierarchical data (PoincarΓ© ball)
let hyper = HyperbolicAttention::new(512, 8, Curvature(-1.0));
// GraphAttention - respects graph structure
let gat = GraphAttention::new(512, 8, &adjacency_matrix);
// MinCutGatedAttention - 50% compute reduction via sparsity
let mincut_gated = MinCutGatedAttention::new(512, 8, sparsity: 0.5);
let sparse_output = mincut_gated.forward(&query, &key, &value);
```
### Tutorial 6: Spiking Neural Networks
```javascript
import { SpikingNetwork, HDCEncoder } from '@ruvector/spiking-neural';
// High-Dimensional Computing encoder (10K-bit vectors)
const encoder = new HDCEncoder(10000);
const encoded = encoder.encode("hello world");
// Spiking network with BTSP learning
const network = new SpikingNetwork({
layers: [784, 256, 10],
learning: 'btsp', // Behavioral Time-Scale Plasticity
threshold: 1.0
});
// Train with spike timing
network.train(spikes, labels, { epochs: 10 });
// Inference
const output = network.forward(inputSpikes);
```
### Tutorial 7: Claude Code Hooks Integration
```bash
# 1. Initialize hooks
npx @ruvector/cli hooks init
# 2. Install into Claude settings
npx @ruvector/cli hooks install
# 3. Hooks now capture:
# - File edits (pre/post)
# - Commands (pre/post)
# - Sessions (start/end)
# - Errors and fixes
# 4. Query learned patterns
npx @ruvector/cli hooks recall "authentication error"
# -> Returns similar past solutions
# 5. Get AI routing suggestions
npx @ruvector/cli hooks route "implement caching"
# -> Suggests: rust-developer (confidence: 0.89)
```
### Tutorial 8: Edge Deployment with rvLite
```javascript
import { RvLite } from '@ruvector/rvlite';
// Create persistent edge database (IndexedDB in browser)
const db = await RvLite.create({
path: 'my-vectors.db',
dimensions: 384
});
// Works offline - all computation local
await db.insert('doc1', embedding1, { title: 'Hello' });
await db.insert('doc2', embedding2, { title: 'World' });
// Semantic search with metadata filtering
const results = await db.search(queryEmbedding, {
limit: 10,
filter: { title: { $contains: 'Hello' } }
});
// Sync when online
await db.sync('https://api.example.com/vectors');
```
π¦ npm Packages (40+ Packages)
#### β
Published
| Package | Description | Version | Downloads |
|---------|-------------|---------|-----------|
| [ruvector](https://www.npmjs.com/package/ruvector) | All-in-one CLI & package | [](https://www.npmjs.com/package/ruvector) | [](https://www.npmjs.com/package/ruvector) |
| [@ruvector/core](https://www.npmjs.com/package/@ruvector/core) | Core vector database | [](https://www.npmjs.com/package/@ruvector/core) | [](https://www.npmjs.com/package/@ruvector/core) |
| [@ruvector/gnn](https://www.npmjs.com/package/@ruvector/gnn) | Graph Neural Network layers | [](https://www.npmjs.com/package/@ruvector/gnn) | [](https://www.npmjs.com/package/@ruvector/gnn) |
| [@ruvector/graph-node](https://www.npmjs.com/package/@ruvector/graph-node) | Hypergraph with Cypher | [](https://www.npmjs.com/package/@ruvector/graph-node) | [](https://www.npmjs.com/package/@ruvector/graph-node) |
| [@ruvector/tiny-dancer](https://www.npmjs.com/package/@ruvector/tiny-dancer) | FastGRNN AI routing | [](https://www.npmjs.com/package/@ruvector/tiny-dancer) | [](https://www.npmjs.com/package/@ruvector/tiny-dancer) |
| [@ruvector/router](https://www.npmjs.com/package/@ruvector/router) | Semantic router + HNSW | [](https://www.npmjs.com/package/@ruvector/router) | [](https://www.npmjs.com/package/@ruvector/router) |
| [@ruvector/attention](https://www.npmjs.com/package/@ruvector/attention) | 39 attention mechanisms | [](https://www.npmjs.com/package/@ruvector/attention) | [](https://www.npmjs.com/package/@ruvector/attention) |
| [@ruvector/sona](https://www.npmjs.com/package/@ruvector/sona) | Self-Optimizing Neural Architecture | [](https://www.npmjs.com/package/@ruvector/sona) | [](https://www.npmjs.com/package/@ruvector/sona) |
| [@ruvector/ruvllm](https://www.npmjs.com/package/@ruvector/ruvllm) | LLM orchestration + SONA | [](https://www.npmjs.com/package/@ruvector/ruvllm) | [](https://www.npmjs.com/package/@ruvector/ruvllm) |
| [@ruvector/cli](https://www.npmjs.com/package/@ruvector/cli) | CLI + self-learning hooks | [](https://www.npmjs.com/package/@ruvector/cli) | [](https://www.npmjs.com/package/@ruvector/cli) |
| [@ruvector/rvlite](https://www.npmjs.com/package/@ruvector/rvlite) | SQLite-style edge DB | [](https://www.npmjs.com/package/@ruvector/rvlite) | [](https://www.npmjs.com/package/@ruvector/rvlite) |
| [@ruvector/cluster](https://www.npmjs.com/package/@ruvector/cluster) | Distributed clustering | [](https://www.npmjs.com/package/@ruvector/cluster) | [](https://www.npmjs.com/package/@ruvector/cluster) |
| [@ruvector/server](https://www.npmjs.com/package/@ruvector/server) | HTTP/gRPC server | [](https://www.npmjs.com/package/@ruvector/server) | [](https://www.npmjs.com/package/@ruvector/server) |
| [@ruvector/rudag](https://www.npmjs.com/package/@ruvector/rudag) | Self-learning DAG | [](https://www.npmjs.com/package/@ruvector/rudag) | [](https://www.npmjs.com/package/@ruvector/rudag) |
| [@ruvector/burst-scaling](https://www.npmjs.com/package/@ruvector/burst-scaling) | 10-50x burst scaling | [](https://www.npmjs.com/package/@ruvector/burst-scaling) | [](https://www.npmjs.com/package/@ruvector/burst-scaling) |
| [@ruvector/spiking-neural](https://www.npmjs.com/package/@ruvector/spiking-neural) | Spiking neural networks | [](https://www.npmjs.com/package/@ruvector/spiking-neural) | [](https://www.npmjs.com/package/@ruvector/spiking-neural) |
WASM & Utility Packages
| Package | Description | Version | Downloads |
|---------|-------------|---------|-----------|
| [@ruvector/wasm](https://www.npmjs.com/package/@ruvector/wasm) | WASM core vector DB | [](https://www.npmjs.com/package/@ruvector/wasm) | [](https://www.npmjs.com/package/@ruvector/wasm) |
| [@ruvector/gnn-wasm](https://www.npmjs.com/package/@ruvector/gnn-wasm) | WASM GNN layers | [](https://www.npmjs.com/package/@ruvector/gnn-wasm) | [](https://www.npmjs.com/package/@ruvector/gnn-wasm) |
| [@ruvector/graph-wasm](https://www.npmjs.com/package/@ruvector/graph-wasm) | WASM graph DB | [](https://www.npmjs.com/package/@ruvector/graph-wasm) | [](https://www.npmjs.com/package/@ruvector/graph-wasm) |
| [@ruvector/attention-wasm](https://www.npmjs.com/package/@ruvector/attention-wasm) | WASM attention | [](https://www.npmjs.com/package/@ruvector/attention-wasm) | [](https://www.npmjs.com/package/@ruvector/attention-wasm) |
| [@ruvector/tiny-dancer-wasm](https://www.npmjs.com/package/@ruvector/tiny-dancer-wasm) | WASM AI routing | [](https://www.npmjs.com/package/@ruvector/tiny-dancer-wasm) | [](https://www.npmjs.com/package/@ruvector/tiny-dancer-wasm) |
| [@ruvector/router-wasm](https://www.npmjs.com/package/@ruvector/router-wasm) | WASM semantic router | [](https://www.npmjs.com/package/@ruvector/router-wasm) | [](https://www.npmjs.com/package/@ruvector/router-wasm) |
| [@ruvector/postgres-cli](https://www.npmjs.com/package/@ruvector/postgres-cli) | Postgres extension CLI | [](https://www.npmjs.com/package/@ruvector/postgres-cli) | [](https://www.npmjs.com/package/@ruvector/postgres-cli) |
| [@ruvector/agentic-synth](https://www.npmjs.com/package/@ruvector/agentic-synth) | Synthetic data generator | [](https://www.npmjs.com/package/@ruvector/agentic-synth) | [](https://www.npmjs.com/package/@ruvector/agentic-synth) |
| [@ruvector/graph-data-generator](https://www.npmjs.com/package/@ruvector/graph-data-generator) | Graph data generation | [](https://www.npmjs.com/package/@ruvector/graph-data-generator) | [](https://www.npmjs.com/package/@ruvector/graph-data-generator) |
| [@ruvector/agentic-integration](https://www.npmjs.com/package/@ruvector/agentic-integration) | Agentic workflows | [](https://www.npmjs.com/package/@ruvector/agentic-integration) | [](https://www.npmjs.com/package/@ruvector/agentic-integration) |
π¦ Rust Usage Examples
```bash
cargo add ruvector-graph ruvector-gnn
```
```rust
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);
```
```rust
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)
```