#tinychain #transaction #executor

tc-transact

Traits and locking utilities for a TinyChain transaction

24 releases (breaking)

0.20.0 Jan 29, 2024
0.19.0 Dec 20, 2023
0.18.0 Nov 6, 2023
0.16.0 Jan 15, 2023
0.2.0 Mar 10, 2021

#143 in Concurrency

Download history 114/week @ 2023-11-01 64/week @ 2023-11-08 77/week @ 2023-11-15 75/week @ 2023-11-22 75/week @ 2023-11-29 56/week @ 2023-12-06 63/week @ 2023-12-13 170/week @ 2023-12-20 92/week @ 2023-12-27 32/week @ 2024-01-03 40/week @ 2024-01-10 69/week @ 2024-01-17 104/week @ 2024-01-24 57/week @ 2024-01-31 39/week @ 2024-02-07 241/week @ 2024-02-14

443 downloads per month
Used in 10 crates

Apache-2.0

335KB
9K 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

~20MB
~409K SLoC