euklid

Crates.ioeuklid
lib.rseuklid
version0.0.4
sourcesrc
created_at2021-09-09 09:49:38.899918
updated_at2021-09-09 09:49:38.899918
descriptionLibrary for CRDT
homepagehttps://github.com/veminovici/euklid
repositoryhttps://github.com/veminovici/euklid
max_upload_size
id448790
size35,426
VLAD EMINOVICI (veminovici)

documentation

https://docs.rs/euklid

README

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.

Commit count: 105

cargo fmt