10个版本
0.4.4 | 2024年3月17日 |
---|---|
0.4.3 | 2023年2月6日 |
0.4.2 | 2023年1月21日 |
0.3.1 | 2023年1月3日 |
0.1.0 | 2020年1月5日 |
在网络编程类别中排名第360
每月下载量31次
在2个Crate中使用(通过confitul)
38KB
392 行
VClock
它提供了分布式系统中事件的偏序关系。实际上,它实现了在维护每个键修改整数计数的哈希映射上的Rust偏序特质。
状态
据我所知,这尚未在实际生产中使用,因此唯一的安全网是单元测试。项目有一个合理的测试框架,因此它应该“可以”使用。再次提醒,免责声明,自行承担风险。
用法
use vclock::VClock64;
let c1 = VClock64::new("a"); // c1 is now a:0
let mut c2 = VClock64::new("b"); // c2 is now b:0
c2.incr(&"a"); // c1 is now a:1, b:0
assert!(c1 < c2, "c1 should be a child of c2");
包有两个可选特性
基准测试
来自一个随机的CI作业
running 15 tests
test tests::bench_vclock64_int_cmp_10 ... bench: 383 ns/iter (+/- 12)
test tests::bench_vclock64_int_cmp_100 ... bench: 2,889 ns/iter (+/- 78)
test tests::bench_vclock64_int_cmp_1000 ... bench: 26,221 ns/iter (+/- 384)
test tests::bench_vclock64_int_cmp_10000 ... bench: 276,902 ns/iter (+/- 3,855)
test tests::bench_vclock64_int_incr ... bench: 35 ns/iter (+/- 2)
test tests::bench_vclock64_str_cmp_10 ... bench: 346 ns/iter (+/- 8)
test tests::bench_vclock64_str_cmp_100 ... bench: 3,104 ns/iter (+/- 87)
test tests::bench_vclock64_str_cmp_1000 ... bench: 36,570 ns/iter (+/- 2,054)
test tests::bench_vclock64_str_cmp_10000 ... bench: 663,951 ns/iter (+/- 52,968)
test tests::bench_vclock64_str_incr ... bench: 53 ns/iter (+/- 10)
test tests::bench_vclockbig_str_cmp_10 ... bench: 548 ns/iter (+/- 11)
test tests::bench_vclockbig_str_cmp_100 ... bench: 3,945 ns/iter (+/- 96)
test tests::bench_vclockbig_str_cmp_1000 ... bench: 37,310 ns/iter (+/- 3,270)
test tests::bench_vclockbig_str_cmp_10000 ... bench: 688,678 ns/iter (+/- 157,335)
test tests::bench_vclockbig_str_incr ... bench: 113 ns/iter (+/- 4)
test result: ok. 0 passed; 0 failed; 0 ignored; 15 measured; 0 filtered out; finished in 11.35s
这不是经过彻底、密集基准测试的结果,但我们可以至少推断出一个显著的差异,即向量时钟的长度。它们的长度随着大小增加而线性增长。
要运行基准测试
cd bench
rustup default nightly
cargo bench
链接
许可证
VClock遵循MIT许可证。
依赖关系
~0–275KB