Crates.io | euklid |
lib.rs | euklid |
version | 0.0.4 |
source | src |
created_at | 2021-09-09 09:49:38.899918 |
updated_at | 2021-09-09 09:49:38.899918 |
description | Library for CRDT |
homepage | https://github.com/veminovici/euklid |
repository | https://github.com/veminovici/euklid |
max_upload_size | |
id | 448790 |
size | 35,426 |
Rust crate for the CRDTs.
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.
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.
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.
You can contact me at veminovici@hotmail.com. Code designed and written in Päädu, on the beautiful island of Saaremaa, Estonia.