mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-24 22:15:18 +00:00
Major new package implementing a distributed hypergraph database with: ## Core Components (crates/ruvector-graph/) - Cypher-compatible query parser with lexer, AST, optimizer - Query execution engine with SIMD optimization and parallel execution - ACID transaction support with MVCC isolation levels - Distributed consensus and federation layer - Vector-graph hybrid queries for AI/RAG workloads - Performance optimizations (100x faster than Neo4j target) ## Bindings - WASM bindings (crates/ruvector-graph-wasm/) - NAPI-RS Node.js bindings (crates/ruvector-graph-node/) - NPM packages for both targets ## CLI Integration - 8 new graph commands: create, query, shell, import, export, info, benchmark, serve ## CI/CD - Updated build-native.yml for graph packages - New graph-ci.yml for testing and benchmarks - New graph-release.yml for automated publishing ## Data Generation - OpenRouter/Kimi K2 integration (packages/graph-data-generator/) - Agentic-synth benchmark suite integration ## Tests & Benchmarks - 11 test files covering all components - Criterion benchmarks for performance validation - Neo4j compatibility test suite ## Architecture Highlights - CSR graph layout for cache-friendly access - SIMD-vectorized query operators - Roaring bitmaps for label indexes - Bloom filters for fast negative lookups - Adaptive radix tree for property indexes Note: This is a comprehensive implementation created by 15 parallel agents. Some integration fixes may be needed to resolve cross-module dependencies. Co-authored-by: Claude AI Swarm <swarm@claude.ai> |
||
|---|---|---|
| .. | ||
| expected_results.json | ||
| movie_database.json | ||
| README.md | ||
| social_network.json | ||
Test Fixtures
This directory contains sample datasets and expected results for testing the RuVector graph database.
Datasets
movie_database.json
A small movie database inspired by Neo4j's example dataset:
- 3 actors (Keanu Reeves, Carrie-Anne Moss, Laurence Fishburne)
- 1 movie (The Matrix)
- 3 ACTED_IN relationships with role properties
social_network.json
A simple social network for testing graph algorithms:
- 5 people
- 6 KNOWS relationships forming a small network
Expected Results
expected_results.json
Contains test cases with:
- Query text (Cypher)
- Which dataset to use
- Expected query results
Use these to validate that query execution returns correct results.
Usage in Tests
use std::fs;
use serde_json::Value;
#[test]
fn test_with_fixture() {
let fixture = fs::read_to_string("tests/fixtures/movie_database.json").unwrap();
let data: Value = serde_json::from_str(&fixture).unwrap();
// Load data into graph
// Execute queries
// Validate against expected results
}
Adding New Fixtures
When adding new fixtures:
- Follow the JSON schema used in existing files
- Add corresponding expected results
- Document the dataset purpose
- Keep datasets small and focused on specific test scenarios