How janvencl/graphbuff works
GraphBuff is a Rust property-graph database queried with Cypher. Users submit queries through the shell, HTTP/JSON, Bolt, or library API; parsing and planning feed streaming execution, which reads or mutates a selected graph store and returns results. The graph also preserves documented storage modes, administration, security, and GPU acceleration. Some subsystem links are documented only at product level; those are marked dashed rather than inferred from module names.
Main entry points: plan.rs Query planning · api.rs HTTP/JSON API · store.rs Store interface · storage.rs Storage selection
Components 22
User interfaces
- Interactive shell
crates/cli/src/main.rs - CSV import
crates/cli/src/import.rs - HTTP/JSON API
crates/server/src/api.rs - Bolt protocol
crates/server/src/bolt.rs
Cypher query engine
- Cypher parsing
crates/cypher/src/parser.rs - Query planning
crates/engine/src/plan.rs - Execution context
crates/engine/src/context.rs - Streaming execution
crates/engine/src/stream.rs - Query results
crates/engine/src/result.rs
Graph storage
- Store interface
crates/core/src/store.rs - Storage selection
crates/core/src/storage.rs - In-memory graph
crates/core/src/memory.rs - Hybrid storage
crates/core/src/hybrid.rs - Paged storage
crates/core/src/persistent.rs - Page cache and WAL
crates/core/src/persistent/pager.rs
Admin and security
- Accounts and roles
crates/server/src/users.rs - Password crypto
crates/server/src/crypto.rs - Backup and checks
crates/core/src/maintenance.rs - Persistent maintenance
crates/core/src/persistent/maintain.rs
Acceleration
- GPU kernels
crates/gpu/src/lib.rs - Query acceleration
crates/engine/src/accel.rs
Other components
- Client or user
Connections 25
- Client or user → Interactive shell: runs queries
- Client or user → HTTP/JSON API: sends requests
- Client or user → Bolt protocol: uses drivers
- Interactive shell → CSV import: invokes import
crates/cli/src/main.rs - Client or user → Cypher parsing: submits Cypher
- HTTP/JSON API → Cypher parsing: routes queries
- Bolt protocol → HTTP/JSON API: uses query API
crates/server/src/bolt.rs - Cypher parsing → Query planning: builds AST
- Query planning → Execution context: creates execution
crates/engine/src/context.rs - Query planning → Streaming execution: builds operators
crates/engine/src/plan.rs - Streaming execution → Query results: produces rows
- Execution context → Store interface: accesses store
crates/engine/src/context.rs - Storage selection → In-memory graph: opens mode
crates/core/src/storage.rs - Storage selection → Hybrid storage: opens mode
crates/core/src/storage.rs - Storage selection → Paged storage: opens mode
crates/core/src/storage.rs - In-memory graph → Store interface: implements
crates/core/src/memory.rs - Hybrid storage → Store interface: implements
crates/core/src/hybrid.rs - Paged storage → Store interface: implements
crates/core/src/persistent.rs - Paged storage → Page cache and WAL: uses pager
crates/core/src/persistent.rs - Persistent maintenance → Page cache and WAL: checks snapshots
crates/core/src/persistent/maintain.rs - Backup and checks → Persistent maintenance: supports checks
crates/core/src/persistent/maintain.rs - HTTP/JSON API → Accounts and roles: checks accounts
crates/server/src/api.rs - Accounts and roles → Password crypto: verifies passwords
crates/server/src/users.rs - Query planning → Query acceleration: selects kernels
crates/engine/src/plan.rs - Query acceleration → GPU kernels: dispatches kernels