Agents/Concurrency & state
graph_mvcc
The Notary
A transactional graph with snapshot isolation (multiversion concurrency control).
Downloads per day
Last 90 days · 8 total · peak 7
Dossier
What graph_mvcc does.
Implements an MVCC graph database: nodes and edges in transactions with snapshot isolation and conflict detection.
From the crate: “Rust library for working with Multi-Version Concurrency Control in Graph Databases.”
- Codename
- The Notary
- Role
- Versioned graph store
- Character
- Keeps every version and lets no two writers trample each other. Speaks in timestamps.
- Domain
- Concurrency & state
- Enlisted
- 8 October 2026
- Last release
- v0.2.0, 8 October 2026
- Keywords
database,graph,mvcc
Use cases
Put it to work.
- Run concurrent transactions on a graph without readers seeing half-written state.
- Study how MVCC works in a small, readable implementation.
Getting started
Call it in.
Add it to a Rust project, then follow the example. The full API is on docs.rs.
Install
cargo add graph_mvcc
Example
use graph_mvcc::Graph;
fn main() {
let mut graph = Graph::new();
let mut tx = graph.start_transaction();
// Add nodes
let node1 = graph.add_node(&mut tx);
let node2 = graph.add_node(&mut tx);
// Add an edge between nodes
graph.add_edge(&mut tx, &node1, &node2, "CONNECTS".to_string()).unwrap();
// Commit the transaction
graph.commit_transaction(&tx).unwrap();
println!("Successfully created graph with 2 nodes and 1 edge");
}Build with a prompt
Add the Rust crate `graph_mvcc` (version 0.2.0) to this project with `cargo add graph_mvcc`. I want to use it for this: Implements an MVCC graph database: nodes and edges in transactions with snapshot isolation and conflict detection. Before writing code, read its README at https://crates.io/crates/graph_mvcc and the API docs at https://docs.rs/graph_mvcc. Use only the functions, types and signatures that appear there; do not invent API names. Write a minimal working example and one test that runs it.
Paste this into Claude Code or another coding agent.
Specs
- Version
- 0.2.0
- License
- MIT
- Edition
- Rust 2021
- Size
- 547 lines of code, 94 of comments
- Package
- 31.2 KB compressed
- Dependencies
- axum, sqlx, tokio, uuid
- Used by
- 0 crates on crates.io
- Docs
- docs.rs, built
- Repository
- cryptopatrick/graph_mvcc · 0★ · 0 forks · 0 open issues · pushed 15 Oct 2025
Release history
| Version | Date | Downloads |
|---|---|---|
| 0.2.0 | 8 Oct 2026 | 8 |
Documentation
The manual.
The crate's README as published on crates.io. The full API reference is on docs.rs.
Read the README
GRAPH_MVCC
Rust implementation of Multiversion Concurrency Control for graph databases.
What is Graph MVCC • Features • How To Use • Documentation • License
🛎 Important Notices
- This is version 0.2.0 and is still in active development
- The current version is not recommended for production use (Work in Progress)
📌 Table of Contents
Table of Contents
🤔 What is Graph MVCC
graph_mvcc is a Rust crate implementing a Multiversion Concurrency Control (MVCC) graph database. This crate provides a transactional graph data structure with support for nodes, edges, and snapshot isolation. It ensures atomic operations, consistent views of the graph state, and conflict detection for concurrent transactions.
Use Cases
- Transactional Graph Operations: Build graph databases with ACID guarantees
- Concurrent Access: Handle multiple simultaneous transactions safely
- Graph Analytics: Implement complex graph algorithms with consistent data views
- Research & Development: Experiment with MVCC concepts in graph structures
- Educational Tools: Learn about transaction isolation and concurrency control
📷 Features
Core Features
- Transactional Operations: Supports atomic transactions with commit and rollback capabilities
- Snapshot Isolation: Ensures each transaction sees a consistent view of the graph at the time it starts
- Node and Edge Management: Allows creation and manipulation of nodes and edges with type-based collision detection
- MVCC: Implements multiversion concurrency control to manage concurrent transactions without conflicts
Technical Features
- Deterministic Design: Single-threaded deterministic implementation
- UUID-based Identifiers: Proper Node/Edge Management with unique identifiers for all nodes and edges
- Graph Traversal: Support for path-based graph traversal using edge types
- Temporary Transactions: Automatic transaction creation for null transaction operations
- State Management: Proper tracking of active transactions and rollback actions
- Collision Detection: Type-based edge collision detection following MVCC principles
🚙 How to Use
Installation
Install with cargo.
cargo add graph_mvcc
Example
use graph_mvcc::Graph;
fn main() {
let mut graph = Graph::new();
let mut tx = graph.start_transaction();
// Add nodes
let node1 = graph.add_node(&mut tx);
let node2 = graph.add_node(&mut tx);
// Add an edge between nodes
graph.add_edge(&mut tx, &node1, &node2, "CONNECTS".to_string()).unwrap();
// Commit the transaction
graph.commit_transaction(&tx).unwrap();
println!("Successfully created graph with 2 nodes and 1 edge");
}
Work in Progress
I've bumped the version to 0.2.0, but there's still a lot of work to do. This project can be used to experiment with MVCC on a graph data structure, but please shelve any ideas of using the current version (0.2.0) in production. My main goal now is to try and offload all node- and edge-handling, to the excellent graph crate.
📚 Documentation
Comprehensive documentation is available at docs.rs/graph_mvcc, including:
- API reference for all public types and functions
- Examples of transaction management
- Performance considerations and best practices
- Implementation details of MVCC for graphs
🖊 Author
Keybase Verification:
https://keybase.io/cryptopatrick/sigs/8epNh5h2FtIX1UNNmf8YQ-k33M8J-Md4LnAN
🐣 Support
Leave a ⭐ if you think this project is cool.
🤝 Contributing
Found a bug? Missing a specific feature? Contributions are welcome! Please see our contributing guidelines for details on:
- Code style and testing requirements
- Submitting bug reports and feature requests
- Development setup and workflow
🗄 License
This project is licensed under MIT. See LICENSE for details.
Resources
Same unit
Other agents.
-
curfewA deadline-aware fork-join model where multiple tasks run in parallel, but only those that finish before a specified absolute clock time are joined and their results collected.
-
harelHarel Statecharts Parser.
-
squadleader-scenario
Scenario builder tools for the SquadLeader system.
-
hugin
A visual cpu profiler.