graft
High-performance graph database written in Rust
● Available Linux
A Graph Database Built for the Hardware
Most graph databases treat the operating system as a black box — generic memory allocation, thread pools with lock contention, buffered I/O through the kernel page cache. graft takes the opposite approach, co-designing with the hardware and OS to eliminate overhead at every layer.
Core Architecture
- Shard-per-core, shared-nothing concurrency — one OS thread per CPU core, each owning its own data partition. No locks in the hot path.
- Index-free adjacency — nodes carry direct pointers to their edges. Every traversal hop is O(1), regardless of total graph size.
- 64-byte cache-line-aligned records — node and edge records fit exactly in one CPU cache line. No partial loads, no false sharing.
- Custom memory allocators — slab allocators for topology (O(1) alloc, zero fragmentation), arena allocators for query execution.
- Kernel-bypass I/O — io_uring on Linux, with a path toward SPDK/DPDK for full OS bypass.
- GQL (ISO/IEC 39075:2024) — the first ISO-standard graph query language since SQL. Not Cypher, not Gremlin, not a proprietary language.
Performance
Single core, no network overhead (AMD Ryzen 5 3600, 64 GB RAM, NVMe):
| Operation | Result |
|---|---|
| Point lookup | 49 ns |
| Single traversal hop | 111 ns (9M hops/sec/core) |
| Fan-out traversal (1000 edges) | 65 ns/edge (15.4M edges/sec) |
| Node insert | 3.3M nodes/sec |
| Edge insert | 2.8M edges/sec |
Standards-First Query Language
graft implements a substantial subset of the GQL standard, including pattern matching, graph mutations, variable-length path traversals with cycle detection, and aggregations.
Open Source
Licensed under AGPL v3 — one codebase, one license, every feature. No crippled community edition.