From 6f30815b644a95d7891c9ae9660260f0629c422b Mon Sep 17 00:00:00 2001 From: dave Date: Wed, 29 Apr 2026 00:16:40 +0000 Subject: [PATCH] huskies: merge 826 --- Cargo.lock | 157 +++++------------- crates/bft-json-crdt/Cargo.toml | 9 +- .../bft-json-crdt/bft-crdt-derive/Cargo.toml | 4 +- crates/bft-json-crdt/tests/kleppmann_trace.rs | 15 +- 4 files changed, 58 insertions(+), 127 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 48969ff1..ef7ed7fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -83,6 +83,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + [[package]] name = "anyhow" version = "1.0.102" @@ -341,17 +347,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "auto_ops" version = "0.3.0" @@ -426,10 +421,10 @@ name = "bft-crdt-derive" version = "0.1.0" dependencies = [ "indexmap 2.14.0", - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -447,7 +442,6 @@ dependencies = [ "serde_json", "serde_with", "sha2 0.10.9", - "time 0.1.45", ] [[package]] @@ -754,24 +748,28 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.25" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ - "bitflags 1.3.2", + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +dependencies = [ + "anstyle", "clap_lex", - "indexmap 1.9.3", - "textwrap", ] [[package]] name = "clap_lex" -version = "0.2.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "cmake" @@ -964,19 +962,19 @@ dependencies = [ [[package]] name = "criterion" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ "anes", - "atty", "cast", "ciborium", "clap", "criterion-plot", + "is-terminal", "itertools 0.10.5", - "lazy_static", "num-traits", + "once_cell", "oorandom", "plotters", "rayon", @@ -2171,15 +2169,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.5.2" @@ -2714,6 +2703,17 @@ dependencies = [ "serde", ] +[[package]] +name = "is-terminal" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "itertools" version = "0.10.5" @@ -3058,7 +3058,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a962fc9981f823f6555416dcb2ae9ae67ca412d767ee21ecab5150113ee6285b" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate", "proc-macro-error2", "proc-macro2", "quote", @@ -3204,7 +3204,7 @@ dependencies = [ "sha2 0.10.9", "subtle", "thiserror 2.0.18", - "time 0.3.47", + "time", "tokio", "tokio-stream", "tracing", @@ -3587,7 +3587,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", ] @@ -3635,12 +3635,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" -[[package]] -name = "os_str_bytes" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" - [[package]] name = "p256" version = "0.13.2" @@ -3914,7 +3908,7 @@ version = "3.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "056e2fea6de1cb240ffe23cfc4fc370b629f8be83b5f27e16b7acd5231a72de4" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.117", @@ -3956,7 +3950,7 @@ dependencies = [ "http", "indexmap 2.14.0", "mime", - "proc-macro-crate 3.5.0", + "proc-macro-crate", "proc-macro2", "quote", "regex", @@ -4045,23 +4039,13 @@ dependencies = [ "elliptic-curve", ] -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", + "toml_edit", ] [[package]] @@ -4708,7 +4692,7 @@ dependencies = [ "serde_html_form", "serde_json", "thiserror 2.0.18", - "time 0.3.47", + "time", "tracing", "url", "uuid", @@ -4792,7 +4776,7 @@ checksum = "0a0753312ad577ac462de1742bf2e326b6ba9856ff6f13343aeb17d423fd5426" dependencies = [ "as_variant", "cfg-if", - "proc-macro-crate 3.5.0", + "proc-macro-crate", "proc-macro2", "quote", "ruma-identifiers-validation", @@ -5264,7 +5248,7 @@ dependencies = [ "serde_core", "serde_json", "serde_with_macros", - "time 0.3.47", + "time", ] [[package]] @@ -5847,12 +5831,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "textwrap" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" - [[package]] name = "thiserror" version = "1.0.69" @@ -5911,17 +5889,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "time" version = "0.3.47" @@ -6108,12 +6075,6 @@ dependencies = [ "winnow 1.0.1", ] -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" - [[package]] name = "toml_datetime" version = "0.7.5+spec-1.1.0" @@ -6132,17 +6093,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.14.0", - "toml_datetime 0.6.11", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.25.11+spec-1.1.0" @@ -6560,12 +6510,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -7223,15 +7167,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.7.15" diff --git a/crates/bft-json-crdt/Cargo.toml b/crates/bft-json-crdt/Cargo.toml index 1e3b0ac7..cc4ae26f 100644 --- a/crates/bft-json-crdt/Cargo.toml +++ b/crates/bft-json-crdt/Cargo.toml @@ -16,18 +16,17 @@ bft = [] [dependencies] bft-crdt-derive = { path = "bft-crdt-derive" } colored = "2.0.0" -fastcrypto = "0.1.8" +fastcrypto = "0.1.9" indexmap = { version = "2.2.6", features = ["serde"] } -rand = "0.8.5" +rand = "0.8" random_color = "0.6.1" serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0.85", features = ["preserve_order"] } -serde_with = "3.8.1" +serde_with = "3.18" sha2 = "0.10.6" [dev-dependencies] -criterion = { version = "0.4", features = ["html_reports"] } -time = "0.1" +criterion = { version = "0.5", features = ["html_reports"] } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0.85", features = ["preserve_order"] } diff --git a/crates/bft-json-crdt/bft-crdt-derive/Cargo.toml b/crates/bft-json-crdt/bft-crdt-derive/Cargo.toml index 152a39d0..742645a5 100644 --- a/crates/bft-json-crdt/bft-crdt-derive/Cargo.toml +++ b/crates/bft-json-crdt/bft-crdt-derive/Cargo.toml @@ -10,6 +10,6 @@ proc-macro = true [dependencies] indexmap = { version = "2.2.6", features = ["serde"] } proc-macro2 = "1.0.47" -proc-macro-crate = "1.2.1" +proc-macro-crate = "3" quote = "1.0.21" -syn = { version = "1.0.103", features = ["full"] } +syn = { version = "2", features = ["full"] } diff --git a/crates/bft-json-crdt/tests/kleppmann_trace.rs b/crates/bft-json-crdt/tests/kleppmann_trace.rs index e1b4caca..319ac3db 100644 --- a/crates/bft-json-crdt/tests/kleppmann_trace.rs +++ b/crates/bft-json-crdt/tests/kleppmann_trace.rs @@ -1,8 +1,9 @@ +//! Integration tests that replay the Kleppmann editing trace to validate list-CRDT correctness and performance. + use bft_json_crdt::keypair::make_author; use bft_json_crdt::list_crdt::ListCrdt; use bft_json_crdt::op::{OpId, ROOT_ID}; -use std::{fs::File, io::Read}; -use time::PreciseTime; +use std::{fs::File, io::Read, time::Instant}; use serde::Deserialize; @@ -47,7 +48,7 @@ fn test_editing_trace() { let mut list = ListCrdt::::new(make_author(1), vec![]); let mut ops: Vec = Vec::new(); ops.push(ROOT_ID); - let start = PreciseTime::now(); + let start = Instant::now(); let edits = t.edits; for (i, op) in edits.into_iter().enumerate() { let origin = ops[op.pos]; @@ -61,17 +62,13 @@ fn test_editing_trace() { match i { 10_000 | 100_000 => { - let end = PreciseTime::now(); - let runtime_sec = start.to(end); - println!("took {runtime_sec:?} to run {i} ops"); + println!("took {:?} to run {i} ops", start.elapsed()); } _ => {} }; } - let end = PreciseTime::now(); - let runtime_sec = start.to(end); - println!("took {runtime_sec:?} to finish"); + println!("took {:?} to finish", start.elapsed()); let result = list.iter().collect::(); let expected = t.final_text; assert_eq!(result.len(), expected.len());