20 releases (13 breaking)
0.16.0 | Jan 15, 2023 |
---|---|
0.14.0 | Sep 14, 2022 |
0.13.0 | May 30, 2022 |
0.11.0 | Feb 4, 2022 |
0.2.0 | Mar 10, 2021 |
#166 in Concurrency
226 downloads per month
Used in 5 crates
265KB
6.5K
SLoC
This crate is used internally by TinyChain. It provides traits and data structures to support transactional mutations of in-memory and persistent datatypes.
Example:
use tc_transact::{TxnId, TxnLock};
let version = TxnLock::new("version", 0);
let txn_one = TxnId::new(1);
let txn_two = TxnId::new(2);
let txn_three = TxnId::new(3);
assert_eq!(version.read(txn_one).await.unwrap(), 0);
*(version.write(txn_two).await.unwrap()) = 2;
version.commit(txn_two).await;
assert_eq!(version.read(txn_three).await.unwrap(), 2);
For more information on TinyChain, see http://github.com/haydnv/tinychain
lib.rs
:
Provides traits and data structures to define a distributed transaction context.
This library is part of TinyChain: http://github.com/haydnv/tinychain
Dependencies
~9–15MB
~274K SLoC