Crate crdts

Source
Expand description

A pure-Rust library of thoroughly-tested, serializable CRDT’s.

Conflict-free Replicated Data Types (CRDTs) are data structures which can be replicated across multiple networked nodes, and whose properties allow for deterministic, local resolution of possible inconsistencies which might result from concurrent operations.

Re-exports§

pub use gcounter::GCounter;
pub use glist::GList;
pub use identifier::Identifier;
pub use list::List;
pub use pncounter::PNCounter;
pub use crate::dot::Dot;
pub use crate::dot::DotRange;
pub use crate::dot::OrdDot;
pub use crate::gset::GSet;
pub use crate::lwwreg::LWWReg;
pub use crate::map::Map;
pub use crate::mvreg::MVReg;
pub use crate::orswot::Orswot;
pub use crate::vclock::VClock;
pub use quickcheck;

Modules§

ctx
This module contains context for editing a CRDT.
dot
This module contains the Dot (Actor + Sequence Number)
gcounter
This module contains a Grow-only Counter.
glist
This module contains a Grow-only List.
gset
This module contains a Grow-only Set.
identifier
This module contains a dense Identifier. Dense Identifiers.
list
This module contains a Sequence.
lwwreg
This module contains a Last-Write-Wins Register.
map
This module contains a Map with Reset-Remove and Observed-Remove semantics.
merkle_reg
This module contains a Merkle-Dag Register.
mvreg
This module contains a Multi-Value Register.
orswot
This module contains an Observed-Remove Set With Out Tombstones.
pncounter
This module contains a Positive-Negative Counter.
vclock
This module contains the Vector Clock This module contains a generic Vector Clock implementation.

Traits§

Actor
Common Actor type. Actors are unique identifier for every thing mutating a VClock. VClock based CRDT’s will need to expose this Actor type to the user.
CmRDT
Operation based CRDT’s replicate by transmitting each operation.
CvRDT
State based CRDT’s replicate by transmitting the entire CRDT state.
ResetRemove
CRDT’s are causal if they are built on top of vector clocks.