todc-utils 0.1.0

Utilities for building and testing distributed systems.
Documentation

todc-utils

Utilities for building and testing distributed algorithms.

Examples

Determine if a history of operations performed on some shared-object, like etcd, is actually linearizable. See todc-utils/tests/etcd.rs for more details.

use todc_utils::linearizability::WGLChecker;
use todc_utils::specifications::etcd::{history_from_log, EtcdSpecification};

// Define a linearizability checker for an etcd (compare-and-swap) object.
type EtcdChecker = WGLChecker<EtcdSpecification>;

// Create a history of operations based on log output.
let history = history_from_log("todc-utils/tests/linearizability/etcd/etcd_001.log")

// Assert that the history of operations is actually linearizable.
assert!(EtcdChecker::is_linearizable(history));