| Crates.io | graph_mvcc |
| lib.rs | graph_mvcc |
| version | 0.2.0 |
| created_at | 2023-08-30 03:40:02.933406+00 |
| updated_at | 2025-09-11 09:00:37.933834+00 |
| description | Rust library for working with Multi-Version Concurrency Control in Graph Databases. |
| homepage | https://github.com/cryptopatrick/graph_mvcc |
| repository | https://github.com/cryptopatrick/graph_mvcc |
| max_upload_size | |
| id | 958686 |
| size | 122,458 |
Graph MVCC
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.
Below is an example of how to use the Graph struct to create nodes and edges within a transaction:
use graph_mvcc::{Graph, IGraph};
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();
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.