Utilities for building and testing distributed algorithms.
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.
```rs use todcutils::linearizability::WGLChecker; use todcutils::specifications::etcd::{historyfromlog, EtcdSpecification};
// Define a linearizability checker for an etcd (compare-and-swap) object.
type EtcdChecker = WGLChecker
// Create a history of operations based on log output. let history = historyfromlog("todc-utils/tests/linearizability/etcd/etcd_001.log")
// Assert that the history of operations is actually linearizable. assert!(EtcdChecker::is_linearizable(history)); ```