causal-length

Crates.iocausal-length
lib.rscausal-length
version0.2.0
sourcesrc
created_at2021-03-20 18:55:12.123298
updated_at2021-03-20 18:55:12.123298
descriptionCRDT's based on causal length sets
homepage
repositoryhttps://github.com/utsl42/causal-length
max_upload_size
id371450
size42,666
Nathan Hawkins (utsl42)

documentation

README

CRDT's based on "A Low-Cost Set CRDT Based on Causal Lengths" combined with an optional tag. The tag can be any type that satisfies [TagT]. A simple integer, wall clock, lamport timestamp, or even a hybrid logical clock from "Logical Physical Clocks and Consistent Snapshots in Globally Distributed Databases" may be used.

Distinctive features of this group of CRDTs

  • No need for a pre-shared, globally unique identifier
  • While it can use a clock, it is not last-write-wins, and does not require one
  • Updates can be merged out of order or redundantly, so it appears to be a Delta CRDT

Status

  • Set - Fairly solid, based directly on the paper
  • Map - Based on Set, but not in the paper. Could be described as most updated wins. New and not super well tested.
  • Register - Can be regarded as either a single set member (therefore tied to the paper), a delta for either Set or Map, or a CRDT equivalent to Option.
Commit count: 5

cargo fmt