1 unstable release

0.0.4 Sep 9, 2021

#1494 in Asynchronous

Apache-2.0

26KB
552 lines

Simplee |> Euklid

Rust crate for the CRDTs.

rust build test clippy Coverage Status Tag Last commit Repo size

Github Actions


Dot

The Dot is implementing a marked version.

extern crate euklid;
use euklid::Dot;

// Create a dot for actor Alice.
let mut dot = Dot::new("Alice".to_string(), 0);
// Increment the dot.
dot.apply_inc();

More examples can be found in the example file.


Vector Clock

The VClock is implementing a vector clock.

extern crate euklid;
use euklid::{Dot, VClock};

// Create a vclock and increment the counter for user A.
let mut a = VClock::new();

// Increment the counter for actor A
a.apply(a.inc_op("A"));

// Increment the counter for actor B
a.apply(a.inc_op("B"));

More examples can be found in the example file.


G-Counter

The GCounter is implementing a grow-only counter.

xtern crate euklid;
use euklid::{Dot, GCounter};

// Create a vclock and increment the counter for user A.
let mut a = VGounter::new();

// Increment the counter for actor A
a.apply(a.inc_op("A"));

// Increment the counter for actor B
a.apply(a.inc_op("B"));

// Increase the counter for actor A by 5
a.apply(a.step_op("A", 5));

More examples can be found in the example file.


Resources

Thank you!!!

You can contact me at veminovici@hotmail.com. Code designed and written in Päädu, on the beautiful island of Saaremaa, Estonia.

No runtime deps