NervusDB v2
Rust-embedded, crash-safe property graph database with Cypher subset – like SQLite for graphs.
A production-ready embedded graph database succeeding KùzuDB. Features: single-writer + snapshot readers, CSR storage, crash-safe WAL, and a curated Cypher subset for real-world workloads.
Quick Start
Rust
use Db;
CLI
# Create database and write data
# Query data (NDJSON output)
Supported Cypher Subset
| Category | Features |
|---|---|
| Read | MATCH, RETURN, WHERE, ORDER BY, SKIP, LIMIT, DISTINCT, EXPLAIN, Variable-length paths (*1..5) |
| Write | CREATE, MERGE, DELETE, DETACH DELETE, SET |
| Patterns | Single node, single-hop relationships, labels |
| Aggregations | COLLECT, MIN, MAX, COUNT, SUM |
| Other | OPTIONAL MATCH, MERGE |
See docs/reference/cypher_support.md for full details.
Architecture
- Storage: Two-file format (
.ndbpage store +.walredo log) - Transaction: Single Writer + Snapshot Readers
- Layout: MemTable (delta) + Immutable CSR segments + Compaction
- API:
nervusdb-v2crate withGraphStoretrait
Why NervusDB?
| Feature | NervusDB | KùzuDB | Neo4j |
|---|---|---|---|
| Embedded | Yes | Yes | No |
| Rust-native | Yes | Yes (Rust) | No |
| Crash-safe | Yes | Yes | Yes |
| Cypher subset | Yes | Yes | Full |
| Binary releases | Coming | No | No |
| Python bindings | Coming | Yes | Yes |
NervusDB is positioned as the spiritual successor to KùzuDB for the Rust ecosystem, with a focus on production-hardened storage and minimal dependencies.
Installation
From Source
From Crates.io
From GitHub Releases
Download prebuilt binaries from Releases.
Development
# Format check
# Lint
# Tests
# Benchmark