Module garage_util::crdt[][src]

Expand description

This package provides a simple implementation of conflict-free replicated data types (CRDTs)

CRDTs are a type of data structures that do not require coordination. In other words, we can edit them in parallel, we will always find a way to merge it.

A general example is a counter. Its initial value is 0. Alice and Bob get a copy of the counter. Alice does +1 on her copy, she reads 1. Bob does +3 on his copy, he reads 3. Now, it is easy to merge their counters, order does not count: we always get 4.

Learn more about CRDT on Wikipedia

Structs

Boolean, where true is an absorbing state

Last Write Win (LWW)

Last Write Win Map

Simple CRDT Map

Traits

All types that implement Ord (a total order) can also implement a trivial CRDT defined by the merge rule: a ⊔ b = max(a, b). Implement this trait for your type to enable this behavior.

Definition of a CRDT - all CRDT Rust types implement this.