From d4c5c04e9569790e46f595b73a9944f98465beb0 Mon Sep 17 00:00:00 2001 From: lxl66566 Date: Fri, 18 Oct 2024 08:59:39 +0800 Subject: [PATCH 1/4] feat(simulation): add txn support Signed-off-by: lxl66566 --- crates/simulation/src/xline_group.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/crates/simulation/src/xline_group.rs b/crates/simulation/src/xline_group.rs index d3a0c41ae..2ab0cc3dd 100644 --- a/crates/simulation/src/xline_group.rs +++ b/crates/simulation/src/xline_group.rs @@ -12,14 +12,16 @@ use xline::server::XlineServer; use xline_client::{ error::XlineClientError, types::{ - kv::{CompactionResponse, PutOptions, PutResponse, RangeOptions, RangeResponse}, + kv::{ + CompactionResponse, PutOptions, PutResponse, RangeOptions, RangeResponse, TxnRequest, + }, watch::{WatchOptions, WatchStreaming, Watcher}, }, Client, ClientOptions, }; use xlineapi::{ command::Command, ClusterClient, KvClient, MemberAddResponse, MemberListResponse, RequestUnion, - WatchClient, + TxnResponse, WatchClient, }; pub struct XlineNode { @@ -211,6 +213,14 @@ impl SimClient { .await .unwrap() } + + pub async fn txn(&self, txn: TxnRequest) -> Result> { + let client = self.inner.clone(); + self.handle + .spawn(async move { client.kv_client().txn(txn).await }) + .await + .unwrap() + } } impl Drop for XlineGroup { From c1f48ec25a30c1627840219115df8c6308e00aa3 Mon Sep 17 00:00:00 2001 From: lxl66566 Date: Mon, 16 Sep 2024 11:09:10 +0800 Subject: [PATCH 2/4] feat: intergrate jepsen-rs Signed-off-by: lxl66566 --- .gitignore | 1 + .gitmodules | 4 + Cargo.lock | 2705 +++++++++----------- crates/jepsen-rs | 1 + crates/simulation/Cargo.toml | 17 +- crates/simulation/src/xline_group.rs | 23 + crates/simulation/tests/it/jepsen/basic.rs | 39 + crates/simulation/tests/it/jepsen/mod.rs | 1 + crates/simulation/tests/it/main.rs | 1 + 9 files changed, 1222 insertions(+), 1570 deletions(-) create mode 160000 crates/jepsen-rs create mode 100644 crates/simulation/tests/it/jepsen/basic.rs create mode 100644 crates/simulation/tests/it/jepsen/mod.rs diff --git a/.gitignore b/.gitignore index 546ca5e01..25fc88643 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # will have compiled files and executables debug/ target/ +dom_top/ # These are backup files generated by rustfmt diff --git a/.gitmodules b/.gitmodules index 75cdd085c..9efeaae70 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,7 @@ [submodule "curp/proto/common"] path = crates/curp/proto/common url = https://github.com/xline-kv/curp-proto.git +[submodule "crates/jepsen-rs"] + path = crates/jepsen-rs + url = https://github.com/lxl66566/jepsen-rs.git + branch = main diff --git a/Cargo.lock b/Cargo.lock index edbd09207..8baab5fc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,9 +7,7 @@ name = "addr2line" version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] +dependencies = ["gimli"] [[package]] name = "adler2" @@ -22,22 +20,14 @@ name = "ahash" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "getrandom", - "once_cell", - "version_check", - "zerocopy", -] +dependencies = ["cfg-if", "getrandom", "once_cell", "version_check", "zerocopy"] [[package]] name = "aho-corasick" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] +dependencies = ["memchr"] [[package]] name = "android-tzdata" @@ -50,9 +40,7 @@ name = "android_system_properties" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] +dependencies = ["libc"] [[package]] name = "anstream" @@ -60,13 +48,13 @@ version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", ] [[package]] @@ -80,28 +68,21 @@ name = "anstyle-parse" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = [ - "utf8parse", -] +dependencies = ["utf8parse"] [[package]] name = "anstyle-query" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = [ - "windows-sys 0.52.0", -] +dependencies = ["windows-sys 0.52.0"] [[package]] name = "anstyle-wincon" version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] +dependencies = ["anstyle", "windows-sys 0.52.0"] [[package]] name = "anyhow" @@ -115,14 +96,14 @@ version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ - "anstyle", - "bstr", - "doc-comment", - "libc", - "predicates", - "predicates-core", - "predicates-tree", - "wait-timeout", + "anstyle", + "bstr", + "doc-comment", + "libc", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", ] [[package]] @@ -131,10 +112,10 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", ] [[package]] @@ -143,11 +124,11 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d901072ae4dcdca2201b98beb02d31fb4b6b2472fbd0e870b12ec15b8b35b2d2" dependencies = [ - "async-dropper-derive", - "async-dropper-simple", - "async-trait", - "futures", - "tokio", + "async-dropper-derive", + "async-dropper-simple", + "async-trait", + "futures", + "tokio", ] [[package]] @@ -155,13 +136,7 @@ name = "async-dropper-derive" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a35cf17a37761f1c88b8e770b5956820fe84c12854165b6f930c604ea186e47e" -dependencies = [ - "async-trait", - "proc-macro2", - "quote", - "syn 2.0.79", - "tokio", -] +dependencies = ["async-trait", "proc-macro2", "quote", "syn 2.0.79", "tokio"] [[package]] name = "async-dropper-simple" @@ -169,45 +144,40 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7c4748dfe8cd3d625ec68fc424fa80c134319881185866f9e173af9e5d8add8" dependencies = [ - "async-scoped", - "async-trait", - "futures", - "rustc_version", - "tokio", + "async-scoped", + "async-trait", + "futures", + "rustc_version", + "tokio", ] +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = ["proc-macro2", "quote", "syn 2.0.65"] + [[package]] name = "async-scoped" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" -dependencies = [ - "futures", - "pin-project", - "tokio", -] +dependencies = ["futures", "pin-project", "tokio"] [[package]] name = "async-stream" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] +dependencies = ["async-stream-impl", "futures-core", "pin-project-lite"] [[package]] name = "async-stream-impl" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "async-task" @@ -217,14 +187,10 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "atomic-waker" @@ -244,32 +210,32 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio", - "tower 0.5.1", - "tower-layer", - "tower-service", - "tracing", + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower 0.5.1", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -278,19 +244,19 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.1", - "tower-layer", - "tower-service", - "tracing", + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -299,13 +265,13 @@ version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets", + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets", ] [[package]] @@ -331,31 +297,28 @@ name = "bcder" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627747a6774aab38beb35990d88309481378558875a41da1a4b2e373c906ef0" -dependencies = [ - "bytes", - "smallvec", -] +dependencies = ["bytes", "smallvec"] [[package]] name = "benchmark" version = "0.1.0" dependencies = [ - "anyhow", - "clap", - "clippy-utilities", - "etcd-client", - "futures", - "indicatif", - "rand", - "thiserror", - "tokio", - "tracing", - "tracing-subscriber", - "utils", - "workspace-hack", - "xline-client", - "xline-test-utils", - "xlineapi", + "anyhow", + "clap", + "clippy-utilities", + "etcd-client", + "futures", + "indicatif", + "rand", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", + "utils", + "workspace-hack", + "xline-client", + "xline-test-utils", + "xlineapi", ] [[package]] @@ -363,9 +326,7 @@ name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] +dependencies = ["serde"] [[package]] name = "bindgen" @@ -373,18 +334,18 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.79", + "bitflags", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.79", ] [[package]] @@ -398,20 +359,14 @@ name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] +dependencies = ["generic-array"] [[package]] name = "bstr" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" -dependencies = [ - "memchr", - "regex-automata 0.4.8", - "serde", -] +dependencies = ["memchr", "regex-automata 0.4.8", "serde"] [[package]] name = "bumpalo" @@ -436,31 +391,27 @@ name = "bzip2-sys" version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] +dependencies = ["cc", "libc", "pkg-config"] [[package]] name = "cc" version = "1.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" -dependencies = [ - "jobserver", - "libc", - "shlex", -] +dependencies = ["jobserver", "libc", "shlex"] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cexpr" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] +dependencies = ["nom"] [[package]] name = "cfg-if" @@ -480,10 +431,10 @@ version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "windows-targets", + "android-tzdata", + "iana-time-zone", + "num-traits", + "windows-targets", ] [[package]] @@ -491,45 +442,28 @@ name = "clang-sys" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] +dependencies = ["glob", "libc", "libloading"] [[package]] name = "clap" version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" -dependencies = [ - "clap_builder", - "clap_derive", -] +dependencies = ["clap_builder", "clap_derive"] [[package]] name = "clap_builder" version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim 0.11.1", -] +dependencies = ["anstream", "anstyle", "clap_lex", "strsim 0.11.1"] [[package]] name = "clap_derive" version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["heck", "proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "clap_lex" @@ -542,9 +476,7 @@ name = "clippy-utilities" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63940bc99b494c2431ab307e373daf0181a2ad84d738a24beca52f9e724f8760" -dependencies = [ - "numeric_cast", -] +dependencies = ["numeric_cast"] [[package]] name = "colorchoice" @@ -557,9 +489,7 @@ name = "concurrent-queue" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] +dependencies = ["crossbeam-utils"] [[package]] name = "console" @@ -567,11 +497,11 @@ version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", ] [[package]] @@ -591,46 +521,35 @@ name = "cpufeatures" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" -dependencies = [ - "libc", -] +dependencies = ["libc"] [[package]] name = "crc32fast" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] +dependencies = ["cfg-if"] [[package]] name = "crossbeam-channel" version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" -dependencies = [ - "crossbeam-utils", -] +dependencies = ["crossbeam-utils"] [[package]] name = "crossbeam-epoch" version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] +dependencies = ["crossbeam-utils"] [[package]] name = "crossbeam-skiplist" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] +dependencies = ["crossbeam-epoch", "crossbeam-utils"] [[package]] name = "crossbeam-utils" @@ -643,89 +562,86 @@ name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] +dependencies = ["generic-array", "typenum"] [[package]] name = "curp" version = "0.1.0" dependencies = [ - "anyhow", - "async-stream", - "async-trait", - "bincode", - "bytes", - "clippy-utilities", - "curp-external-api", - "curp-test-utils", - "dashmap", - "derive_builder", - "engine", - "event-listener", - "flume", - "fs2", - "futures", - "indexmap 2.6.0", - "itertools 0.13.0", - "madsim", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "mockall", - "once_cell", - "opentelemetry", - "parking_lot", - "priority-queue", - "prost", - "prost-build", - "rand", - "serde", - "sha2", - "tempfile", - "test-macros", - "thiserror", - "tokio-stream 0.1.12", - "tokio-util", - "tower 0.4.13", - "tracing", - "tracing-subscriber", - "tracing-test", - "utils", - "workspace-hack", + "anyhow", + "async-stream", + "async-trait", + "bincode", + "bytes", + "clippy-utilities", + "curp-external-api", + "curp-test-utils", + "dashmap", + "derive_builder", + "engine", + "event-listener", + "flume", + "fs2", + "futures", + "indexmap 2.6.0", + "itertools 0.13.0", + "madsim", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "mockall", + "once_cell", + "opentelemetry", + "parking_lot", + "priority-queue", + "prost", + "prost-build", + "rand", + "serde", + "sha2", + "tempfile", + "test-macros", + "thiserror", + "tokio-stream 0.1.12", + "tokio-util", + "tower 0.4.13", + "tracing", + "tracing-subscriber", + "tracing-test", + "utils", + "workspace-hack", ] [[package]] name = "curp-external-api" version = "0.1.0" dependencies = [ - "async-trait", - "engine", - "mockall", - "prost", - "serde", - "thiserror", - "workspace-hack", + "async-trait", + "engine", + "mockall", + "prost", + "serde", + "thiserror", + "workspace-hack", ] [[package]] name = "curp-test-utils" version = "0.1.0" dependencies = [ - "async-trait", - "bincode", - "curp-external-api", - "engine", - "itertools 0.13.0", - "madsim-tokio", - "prost", - "serde", - "thiserror", - "tracing", - "tracing-subscriber", - "utils", - "workspace-hack", + "async-trait", + "bincode", + "curp-external-api", + "engine", + "itertools 0.13.0", + "madsim-tokio", + "prost", + "serde", + "thiserror", + "tracing", + "tracing-subscriber", + "utils", + "workspace-hack", ] [[package]] @@ -733,20 +649,14 @@ name = "darling" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", -] +dependencies = ["darling_core 0.14.4", "darling_macro 0.14.4"] [[package]] name = "darling" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] +dependencies = ["darling_core 0.20.10", "darling_macro 0.20.10"] [[package]] name = "darling_core" @@ -754,12 +664,12 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] @@ -768,12 +678,12 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.79", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.79", ] [[package]] @@ -781,22 +691,14 @@ name = "darling_macro" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core 0.14.4", - "quote", - "syn 1.0.109", -] +dependencies = ["darling_core 0.14.4", "quote", "syn 1.0.109"] [[package]] name = "darling_macro" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.79", -] +dependencies = ["darling_core 0.20.10", "quote", "syn 2.0.79"] [[package]] name = "dashmap" @@ -804,63 +706,55 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] +[[package]] +name = "default-struct-builder" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fa90da96b8fd491f5754d1f7a731f73921e3b7aa0ce333c821a0e43666ac14" +dependencies = ["darling 0.20.8", "proc-macro2", "quote", "syn 2.0.65"] + [[package]] name = "der" version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] +dependencies = ["const-oid", "zeroize"] [[package]] name = "deranged" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] +dependencies = ["powerfmt"] [[package]] name = "derive_builder" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] +dependencies = ["derive_builder_macro"] [[package]] name = "derive_builder_core" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["darling 0.20.10", "proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "derive_builder_macro" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.79", -] +dependencies = ["derive_builder_core", "syn 2.0.79"] [[package]] name = "difflib" @@ -873,11 +767,7 @@ name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +dependencies = ["block-buffer", "crypto-common", "subtle"] [[package]] name = "doc-comment" @@ -897,6 +787,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "either" version = "1.13.0" @@ -913,24 +809,31 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" name = "engine" version = "0.1.0" dependencies = [ - "async-trait", - "bincode", - "bytes", - "clippy-utilities", - "madsim-tokio", - "opentelemetry", - "parking_lot", - "rocksdb", - "serde", - "test-macros", - "thiserror", - "tokio-util", - "tracing", - "utils", - "uuid", - "workspace-hack", + "async-trait", + "bincode", + "bytes", + "clippy-utilities", + "madsim-tokio", + "opentelemetry", + "parking_lot", + "rocksdb", + "serde", + "test-macros", + "thiserror", + "tokio-util", + "tracing", + "utils", + "uuid", + "workspace-hack", ] +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = ["humantime", "is-terminal", "log", "regex", "termcolor"] + [[package]] name = "equivalent" version = "1.0.1" @@ -942,10 +845,7 @@ name = "errno" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] +dependencies = ["libc", "windows-sys 0.52.0"] [[package]] name = "etcd-client" @@ -953,14 +853,14 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39bde3ce50a626efeb1caa9ab1083972d178bebb55ca627639c8ded507dfcbde" dependencies = [ - "http", - "prost", - "tokio", - "tokio-stream 0.1.16", - "tonic", - "tonic-build", - "tower 0.4.13", - "tower-service", + "http", + "prost", + "tokio", + "tokio-stream 0.1.16", + "tonic", + "tonic-build", + "tower 0.4.13", + "tower-service", ] [[package]] @@ -968,21 +868,14 @@ name = "event-listener" version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] +dependencies = ["concurrent-queue", "parking", "pin-project-lite"] [[package]] name = "event-listener-strategy" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" -dependencies = [ - "event-listener", - "pin-project-lite", -] +dependencies = ["event-listener", "pin-project-lite"] [[package]] name = "fastrand" @@ -1001,12 +894,7 @@ name = "flume" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "spin", -] +dependencies = ["futures-core", "futures-sink", "nanorand", "spin"] [[package]] name = "fnv" @@ -1019,9 +907,7 @@ name = "form_urlencoded" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] +dependencies = ["percent-encoding"] [[package]] name = "fragile" @@ -1034,10 +920,13 @@ name = "fs2" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] +dependencies = ["libc", "winapi"] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "futures" @@ -1045,13 +934,13 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] @@ -1059,10 +948,7 @@ name = "futures-channel" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] +dependencies = ["futures-core", "futures-sink"] [[package]] name = "futures-core" @@ -1075,11 +961,7 @@ name = "futures-executor" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] +dependencies = ["futures-core", "futures-task", "futures-util"] [[package]] name = "futures-io" @@ -1092,11 +974,7 @@ name = "futures-macro" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "futures-sink" @@ -1116,16 +994,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", ] [[package]] @@ -1133,35 +1011,21 @@ name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] +dependencies = ["typenum", "version_check"] [[package]] name = "getrandom" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] +dependencies = ["cfg-if", "js-sys", "libc", "wasi", "wasm-bindgen"] [[package]] name = "getset" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f636605b743120a8d32ed92fc27b6cde1a769f8f936c065151eb66f88ded513c" -dependencies = [ - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro-error2", "proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "gimli" @@ -1181,17 +1045,17 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] @@ -1224,6 +1088,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -1235,30 +1105,21 @@ name = "hmac" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] +dependencies = ["digest"] [[package]] name = "http" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] +dependencies = ["bytes", "fnv", "itoa"] [[package]] name = "http-body" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] +dependencies = ["bytes", "http"] [[package]] name = "http-body-util" @@ -1266,11 +1127,11 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", ] [[package]] @@ -1285,25 +1146,31 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", ] [[package]] @@ -1312,11 +1179,11 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", ] [[package]] @@ -1325,17 +1192,17 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -1344,12 +1211,12 @@ version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", ] [[package]] @@ -1357,9 +1224,7 @@ name = "iana-time-zone-haiku" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] +dependencies = ["cc"] [[package]] name = "ident_case" @@ -1372,30 +1237,21 @@ name = "idna" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] +dependencies = ["unicode-bidi", "unicode-normalization"] [[package]] name = "indexmap" version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] +dependencies = ["autocfg", "hashbrown 0.12.3"] [[package]] name = "indexmap" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" -dependencies = [ - "equivalent", - "hashbrown 0.15.0", -] +dependencies = ["equivalent", "hashbrown 0.15.0"] [[package]] name = "indicatif" @@ -1403,11 +1259,11 @@ version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", ] [[package]] @@ -1415,15 +1271,13 @@ name = "instant" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] +dependencies = ["cfg-if"] [[package]] name = "ipnet" version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is_terminal_polyfill" @@ -1436,18 +1290,14 @@ name = "itertools" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] +dependencies = ["either"] [[package]] name = "itertools" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] +dependencies = ["either"] [[package]] name = "itoa" @@ -1455,23 +1305,80 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "j4rs" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "689ae4f2bd4eba82601592f3d22b7e7147b1df52d3b525223f5218990501b4eb" +dependencies = [ + "cesu8", + "dunce", + "fs_extra", + "futures", + "glob", + "java-locator", + "jni-sys", + "lazy_static", + "libc", + "libloading", + "log", + "serde", + "serde_json", +] + +[[package]] +name = "java-locator" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2abecabd9961c5e01405a6426687fcf1bd94a269927137e4c3cc1a7419b93fd" +dependencies = ["glob", "lazy_static"] + +[[package]] +name = "jepsen-rs" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-recursion", + "async-trait", + "default-struct-builder", + "futures-util", + "j4rs", + "log", + "madsim", + "madsim-tokio", + "pretty_env_logger", + "serde", + "serde_json", + "tokio-stream 0.1.16", +] + +[[package]] +name = "jni-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c30a312d782b8d56a1e0897d45c1af33f31f9b4a4d13d31207a8675e0223b818" +dependencies = ["jni-sys-macros"] + +[[package]] +name = "jni-sys-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c199962dfd5610ced8eca382606e349f7940a4ac7d867b58a046123411cbb4" +dependencies = ["quote", "syn 1.0.109"] + [[package]] name = "jobserver" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] +dependencies = ["libc"] [[package]] name = "js-sys" version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" -dependencies = [ - "wasm-bindgen", -] +dependencies = ["wasm-bindgen"] [[package]] name = "jsonwebtoken" @@ -1479,13 +1386,13 @@ version = "9.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" dependencies = [ - "base64 0.21.7", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", + "base64 0.21.7", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", ] [[package]] @@ -1511,10 +1418,7 @@ name = "libloading" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" -dependencies = [ - "cfg-if", - "windows-targets", -] +dependencies = ["cfg-if", "windows-targets"] [[package]] name = "librocksdb-sys" @@ -1522,14 +1426,14 @@ version = "0.16.0+8.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c" dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "lz4-sys", - "zstd-sys", + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", ] [[package]] @@ -1537,11 +1441,7 @@ name = "libz-sys" version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] +dependencies = ["cc", "pkg-config", "vcpkg"] [[package]] name = "linux-raw-sys" @@ -1554,10 +1454,7 @@ name = "lock_api" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] +dependencies = ["autocfg", "scopeguard"] [[package]] name = "log" @@ -1570,75 +1467,63 @@ name = "lz4-sys" version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" -dependencies = [ - "cc", - "libc", -] +dependencies = ["cc", "libc"] [[package]] name = "madsim" version = "0.2.30" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" dependencies = [ - "ahash", - "async-channel", - "async-stream", - "async-task", - "bincode", - "bytes", - "downcast-rs", - "futures-util", - "lazy_static", - "libc", - "madsim-macros", - "naive-timer", - "panic-message", - "rand", - "rand_xoshiro", - "rustversion", - "serde", - "spin", - "tokio", - "tokio-util", - "toml", - "tracing", - "tracing-subscriber", + "ahash", + "async-channel", + "async-stream", + "async-task", + "bincode", + "bytes", + "downcast-rs", + "futures-util", + "lazy_static", + "libc", + "madsim-macros", + "naive-timer", + "panic-message", + "rand", + "rand_xoshiro", + "rustversion", + "serde", + "spin", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-subscriber", ] [[package]] name = "madsim-macros" version = "0.2.12" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" -dependencies = [ - "darling 0.14.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] +dependencies = ["darling 0.14.4", "proc-macro2", "quote", "syn 1.0.109"] [[package]] name = "madsim-tokio" version = "0.2.28" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" -dependencies = [ - "madsim", - "spin", - "tokio", -] +dependencies = ["madsim", "spin", "tokio"] [[package]] name = "madsim-tonic" version = "0.5.0+0.12.0" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" dependencies = [ - "async-stream", - "chrono", - "futures-util", - "madsim", - "tokio", - "tonic", - "tower 0.4.13", - "tracing", + "async-stream", + "chrono", + "futures-util", + "madsim", + "tokio", + "tonic", + "tower 0.4.13", + "tracing", ] [[package]] @@ -1646,12 +1531,12 @@ name = "madsim-tonic-build" version = "0.5.0+0.12.0" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "quote", - "syn 2.0.79", - "tonic-build", + "prettyplease", + "proc-macro2", + "prost-build", + "quote", + "syn 2.0.79", + "tonic-build", ] [[package]] @@ -1659,9 +1544,7 @@ name = "matchers" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] +dependencies = ["regex-automata 0.1.10"] [[package]] name = "matchit" @@ -1680,9 +1563,7 @@ name = "merged_range" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c013377d78bca1015c5c9d56a4f65f0ab3257cbd8b3af0b98e44af889010dbb" -dependencies = [ - "clippy-utilities", -] +dependencies = ["clippy-utilities"] [[package]] name = "mime" @@ -1701,21 +1582,14 @@ name = "miniz_oxide" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" -dependencies = [ - "adler2", -] +dependencies = ["adler2"] [[package]] name = "mio" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi", - "libc", - "wasi", - "windows-sys 0.52.0", -] +dependencies = ["hermit-abi", "libc", "wasi", "windows-sys 0.52.0"] [[package]] name = "mockall" @@ -1723,13 +1597,13 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" dependencies = [ - "cfg-if", - "downcast", - "fragile", - "lazy_static", - "mockall_derive", - "predicates", - "predicates-tree", + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", ] [[package]] @@ -1737,12 +1611,7 @@ name = "mockall_derive" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" -dependencies = [ - "cfg-if", - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["cfg-if", "proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "multimap" @@ -1761,51 +1630,35 @@ name = "nanorand" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = [ - "getrandom", -] +dependencies = ["getrandom"] [[package]] name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags", - "cfg-if", - "cfg_aliases", - "libc", -] +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = ["bitflags", "cfg-if", "cfg_aliases", "libc"] [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] +dependencies = ["memchr", "minimal-lexical"] [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] +dependencies = ["overload", "winapi"] [[package]] name = "num-bigint" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] +dependencies = ["num-integer", "num-traits"] [[package]] name = "num-conv" @@ -1818,18 +1671,21 @@ name = "num-integer" version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] +dependencies = ["num-traits"] [[package]] name = "num-traits" version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] +dependencies = ["autocfg"] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = ["hermit-abi", "libc"] [[package]] name = "number_prefix" @@ -1848,9 +1704,7 @@ name = "object" version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" -dependencies = [ - "memchr", -] +dependencies = ["memchr"] [[package]] name = "once_cell" @@ -1864,12 +1718,12 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96" dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "once_cell", - "pin-project-lite", - "thiserror", + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", ] [[package]] @@ -1878,15 +1732,15 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60741e61c3c2ae6000c7cbb0d8184d4c60571c65bf0af32b418152570c8cb110" dependencies = [ - "async-trait", - "futures-core", - "futures-util", - "once_cell", - "opentelemetry", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "serde_json", - "tokio", + "async-trait", + "futures-core", + "futures-util", + "once_cell", + "opentelemetry", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "serde_json", + "tokio", ] [[package]] @@ -1894,22 +1748,14 @@ name = "opentelemetry-http" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad31e9de44ee3538fb9d64fe3376c1362f406162434609e79aea2a41a0af78ab" -dependencies = [ - "async-trait", - "bytes", - "http", - "opentelemetry", - "reqwest", -] +dependencies = ["async-trait", "bytes", "http", "opentelemetry", "reqwest"] [[package]] name = "opentelemetry-jaeger-propagator" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a68a13b92fc708d875ad659b08b35d08b8ef2403e01944b39ca21e5b08b17" -dependencies = [ - "opentelemetry", -] +dependencies = ["opentelemetry"] [[package]] name = "opentelemetry-otlp" @@ -1917,18 +1763,18 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727" dependencies = [ - "async-trait", - "futures-core", - "http", - "opentelemetry", - "opentelemetry-http", - "opentelemetry-proto", - "opentelemetry_sdk", - "prost", - "reqwest", - "thiserror", - "tokio", - "tonic", + "async-trait", + "futures-core", + "http", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", + "prost", + "reqwest", + "thiserror", + "tokio", + "tonic", ] [[package]] @@ -1937,11 +1783,11 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4191ce34aa274621861a7a9d68dbcf618d5b6c66b10081631b61fd81fbc015" dependencies = [ - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "prometheus", - "protobuf", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "prometheus", + "protobuf", ] [[package]] @@ -1949,12 +1795,7 @@ name = "opentelemetry-proto" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9" -dependencies = [ - "opentelemetry", - "opentelemetry_sdk", - "prost", - "tonic", -] +dependencies = ["opentelemetry", "opentelemetry_sdk", "prost", "tonic"] [[package]] name = "opentelemetry-semantic-conventions" @@ -1968,19 +1809,19 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df" dependencies = [ - "async-trait", - "futures-channel", - "futures-executor", - "futures-util", - "glob", - "once_cell", - "opentelemetry", - "percent-encoding", - "rand", - "serde_json", - "thiserror", - "tokio", - "tokio-stream 0.1.16", + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry", + "percent-encoding", + "rand", + "serde_json", + "thiserror", + "tokio", + "tokio-stream 0.1.16", ] [[package]] @@ -2006,10 +1847,7 @@ name = "parking_lot" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] +dependencies = ["lock_api", "parking_lot_core"] [[package]] name = "parking_lot_core" @@ -2017,11 +1855,11 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", ] [[package]] @@ -2029,33 +1867,21 @@ name = "password-hash" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] +dependencies = ["base64ct", "rand_core", "subtle"] [[package]] name = "pbkdf2" version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest", - "hmac", - "password-hash", - "sha2", -] +dependencies = ["digest", "hmac", "password-hash", "sha2"] [[package]] name = "pem" version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] +dependencies = ["base64 0.22.1", "serde"] [[package]] name = "percent-encoding" @@ -2068,30 +1894,21 @@ name = "petgraph" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.6.0", -] +dependencies = ["fixedbitset", "indexmap 2.6.0"] [[package]] name = "pin-project" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" -dependencies = [ - "pin-project-internal", -] +dependencies = ["pin-project-internal"] [[package]] name = "pin-project-internal" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "pin-project-lite" @@ -2128,20 +1945,14 @@ name = "ppv-lite86" version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] +dependencies = ["zerocopy"] [[package]] name = "predicates" version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" -dependencies = [ - "anstyle", - "difflib", - "predicates-core", -] +dependencies = ["anstyle", "difflib", "predicates-core"] [[package]] name = "predicates-core" @@ -2154,62 +1965,49 @@ name = "predicates-tree" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" -dependencies = [ - "predicates-core", - "termtree", -] +dependencies = ["predicates-core", "termtree"] + +[[package]] +name = "pretty_env_logger" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" +dependencies = ["env_logger", "log"] [[package]] name = "prettyplease" version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" -dependencies = [ - "proc-macro2", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "syn 2.0.79"] [[package]] name = "priority-queue" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d" -dependencies = [ - "autocfg", - "equivalent", - "indexmap 2.6.0", -] +dependencies = ["autocfg", "equivalent", "indexmap 2.6.0"] [[package]] name = "proc-macro-error-attr2" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] +dependencies = ["proc-macro2", "quote"] [[package]] name = "proc-macro-error2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro-error-attr2", "proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "proc-macro2" version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" -dependencies = [ - "unicode-ident", -] +dependencies = ["unicode-ident"] [[package]] name = "prometheus" @@ -2217,13 +2015,13 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot", - "protobuf", - "thiserror", + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "protobuf", + "thiserror", ] [[package]] @@ -2231,10 +2029,7 @@ name = "prost" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" -dependencies = [ - "bytes", - "prost-derive", -] +dependencies = ["bytes", "prost-derive"] [[package]] name = "prost-build" @@ -2242,19 +2037,19 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ - "bytes", - "heck", - "itertools 0.13.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.79", - "tempfile", + "bytes", + "heck", + "itertools 0.13.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.79", + "tempfile", ] [[package]] @@ -2263,11 +2058,11 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ - "anyhow", - "itertools 0.13.0", - "proc-macro2", - "quote", - "syn 2.0.79", + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.79", ] [[package]] @@ -2275,9 +2070,7 @@ name = "prost-types" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" -dependencies = [ - "prost", -] +dependencies = ["prost"] [[package]] name = "protobuf" @@ -2290,48 +2083,35 @@ name = "quote" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] +dependencies = ["proc-macro2"] [[package]] name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] +dependencies = ["libc", "rand_chacha", "rand_core"] [[package]] name = "rand_chacha" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] +dependencies = ["ppv-lite86", "rand_core"] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] +dependencies = ["getrandom"] [[package]] name = "rand_xoshiro" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core", -] +dependencies = ["rand_core"] [[package]] name = "rb-interval-map" @@ -2344,9 +2124,7 @@ name = "redox_syscall" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" -dependencies = [ - "bitflags", -] +dependencies = ["bitflags"] [[package]] name = "regex" @@ -2354,10 +2132,10 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.8", - "regex-syntax 0.8.5", + "aho-corasick", + "memchr", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -2365,20 +2143,14 @@ name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] +dependencies = ["regex-syntax 0.6.29"] [[package]] name = "regex-automata" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.5", -] +dependencies = ["aho-corasick", "memchr", "regex-syntax 0.8.5"] [[package]] name = "regex-syntax" @@ -2398,34 +2170,34 @@ version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows-registry", + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-registry", ] [[package]] @@ -2434,13 +2206,13 @@ version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] @@ -2448,10 +2220,7 @@ name = "rocksdb" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bd13e55d6d7b8cd0ea569161127567cd587676c99f4472f779a0279aa60a7a7" -dependencies = [ - "libc", - "librocksdb-sys", -] +dependencies = ["libc", "librocksdb-sys"] [[package]] name = "rustc-demangle" @@ -2470,9 +2239,7 @@ name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] +dependencies = ["semver"] [[package]] name = "rustix" @@ -2480,11 +2247,11 @@ version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", ] [[package]] @@ -2493,13 +2260,13 @@ version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8" dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] @@ -2507,9 +2274,7 @@ name = "rustls-pemfile" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] +dependencies = ["rustls-pki-types"] [[package]] name = "rustls-pki-types" @@ -2522,11 +2287,7 @@ name = "rustls-webpki" version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] +dependencies = ["ring", "rustls-pki-types", "untrusted"] [[package]] name = "rustversion" @@ -2557,83 +2318,56 @@ name = "serde" version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" -dependencies = [ - "serde_derive", -] +dependencies = ["serde_derive"] [[package]] name = "serde_derive" version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "serde_json" version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] +dependencies = ["itoa", "memchr", "ryu", "serde"] [[package]] name = "serde_path_to_error" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" -dependencies = [ - "itoa", - "serde", -] +dependencies = ["itoa", "serde"] [[package]] name = "serde_spanned" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] +dependencies = ["serde"] [[package]] name = "serde_urlencoded" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] +dependencies = ["form_urlencoded", "itoa", "ryu", "serde"] [[package]] name = "sha2" version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] +dependencies = ["cfg-if", "cpufeatures", "digest"] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] +dependencies = ["lazy_static"] [[package]] name = "shlex" @@ -2646,55 +2380,49 @@ name = "signal-hook-registry" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] +dependencies = ["libc"] [[package]] name = "signature" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "rand_core", -] +dependencies = ["rand_core"] [[package]] name = "simple_asn1" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] +dependencies = ["num-bigint", "num-traits", "thiserror", "time"] [[package]] name = "simulation" version = "0.1.0" dependencies = [ - "async-trait", - "bincode", - "curp", - "curp-test-utils", - "engine", - "futures", - "itertools 0.13.0", - "madsim", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "parking_lot", - "prost", - "tempfile", - "tracing", - "utils", - "workspace-hack", - "xline", - "xline-client", - "xlineapi", + "async-trait", + "bincode", + "curp", + "curp-test-utils", + "engine", + "futures", + "itertools 0.13.0", + "j4rs", + "jepsen-rs", + "madsim", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "parking_lot", + "prost", + "tempfile", + "tracing", + "tracing-subscriber", + "utils", + "workspace-hack", + "xline", + "xline-client", + "xlineapi", ] [[package]] @@ -2702,9 +2430,7 @@ name = "slab" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +dependencies = ["autocfg"] [[package]] name = "smallvec" @@ -2717,29 +2443,21 @@ name = "socket2" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] +dependencies = ["libc", "windows-sys 0.52.0"] [[package]] name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] +dependencies = ["lock_api"] [[package]] name = "spki" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] +dependencies = ["base64ct", "der"] [[package]] name = "strsim" @@ -2764,13 +2482,7 @@ name = "strum_macros" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.79", -] +dependencies = ["heck", "proc-macro2", "quote", "rustversion", "syn 2.0.79"] [[package]] name = "subtle" @@ -2783,22 +2495,14 @@ name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +dependencies = ["proc-macro2", "quote", "unicode-ident"] [[package]] name = "syn" version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +dependencies = ["proc-macro2", "quote", "unicode-ident"] [[package]] name = "sync_wrapper" @@ -2811,9 +2515,7 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -dependencies = [ - "futures-core", -] +dependencies = ["futures-core"] [[package]] name = "tempfile" @@ -2821,13 +2523,20 @@ version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = ["winapi-util"] + [[package]] name = "termtree" version = "0.4.1" @@ -2837,43 +2546,28 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-macros" version = "0.1.0" -dependencies = [ - "assert_cmd", - "quote", - "syn 2.0.79", - "tokio", - "workspace-hack", -] +dependencies = ["assert_cmd", "quote", "syn 2.0.79", "tokio", "workspace-hack"] [[package]] name = "thiserror" version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" -dependencies = [ - "thiserror-impl", -] +dependencies = ["thiserror-impl"] [[package]] name = "thiserror-impl" version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "thread_local" version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] +dependencies = ["cfg-if", "once_cell"] [[package]] name = "time" @@ -2881,13 +2575,13 @@ version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", ] [[package]] @@ -2901,19 +2595,14 @@ name = "time-macros" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] +dependencies = ["num-conv", "time-core"] [[package]] name = "tinyvec" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = [ - "tinyvec_macros", -] +dependencies = ["tinyvec_macros"] [[package]] name = "tinyvec_macros" @@ -2927,15 +2616,15 @@ version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", ] [[package]] @@ -2943,43 +2632,27 @@ name = "tokio-macros" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] +dependencies = ["rustls", "rustls-pki-types", "tokio"] [[package]] name = "tokio-stream" version = "0.1.12" source = "git+https://github.com/madsim-rs/tokio.git?rev=ab251ad#ab251ad1fae8e16d9a1df74e301dbf3ed9d4d3af" -dependencies = [ - "futures-core", - "madsim-tokio", - "pin-project-lite", -] +dependencies = ["futures-core", "madsim-tokio", "pin-project-lite"] [[package]] name = "tokio-stream" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] +dependencies = ["futures-core", "pin-project-lite", "tokio"] [[package]] name = "tokio-util" @@ -2987,11 +2660,11 @@ version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", ] [[package]] @@ -2999,21 +2672,14 @@ name = "toml" version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] +dependencies = ["serde", "serde_spanned", "toml_datetime", "toml_edit"] [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] +dependencies = ["serde"] [[package]] name = "toml_edit" @@ -3021,11 +2687,11 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -3034,30 +2700,30 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.22.1", - "bytes", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost", - "rustls-pemfile", - "socket2", - "tokio", - "tokio-rustls", - "tokio-stream 0.1.16", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "rustls-pemfile", + "socket2", + "tokio", + "tokio-rustls", + "tokio-stream 0.1.15", + "tower", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -3066,12 +2732,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "prost-types", - "quote", - "syn 2.0.79", + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.79", ] [[package]] @@ -3080,11 +2746,11 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1eaf34ddb812120f5c601162d5429933c9b527d901ab0e7f930d3147e33a09b2" dependencies = [ - "async-stream", - "prost", - "tokio", - "tokio-stream 0.1.16", - "tonic", + "async-stream", + "prost", + "tokio", + "tokio-stream 0.1.16", + "tonic", ] [[package]] @@ -3093,18 +2759,18 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -3113,14 +2779,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper 0.1.2", - "tokio", - "tower-layer", - "tower-service", - "tracing", + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tokio", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -3140,56 +2806,35 @@ name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] +dependencies = ["log", "pin-project-lite", "tracing-attributes", "tracing-core"] [[package]] name = "tracing-appender" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror", - "time", - "tracing-subscriber", -] +dependencies = ["crossbeam-channel", "thiserror", "time", "tracing-subscriber"] [[package]] name = "tracing-attributes" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "tracing-core" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] +dependencies = ["once_cell", "valuable"] [[package]] name = "tracing-log" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] +dependencies = ["log", "once_cell", "tracing-core"] [[package]] name = "tracing-opentelemetry" @@ -3197,16 +2842,16 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b" dependencies = [ - "js-sys", - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "smallvec", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber", - "web-time", + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", + "web-time", ] [[package]] @@ -3215,17 +2860,17 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "time", - "tracing", - "tracing-core", - "tracing-log", + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -3233,21 +2878,14 @@ name = "tracing-test" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" -dependencies = [ - "tracing-core", - "tracing-subscriber", - "tracing-test-macro", -] +dependencies = ["tracing-core", "tracing-subscriber", "tracing-test-macro"] [[package]] name = "tracing-test-macro" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" -dependencies = [ - "quote", - "syn 2.0.79", -] +dependencies = ["quote", "syn 2.0.79"] [[package]] name = "try-lock" @@ -3278,9 +2916,7 @@ name = "unicode-normalization" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] +dependencies = ["tinyvec"] [[package]] name = "unicode-width" @@ -3299,11 +2935,7 @@ name = "url" version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] +dependencies = ["form_urlencoded", "idna", "percent-encoding"] [[package]] name = "utf8parse" @@ -3315,32 +2947,32 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" name = "utils" version = "0.1.0" dependencies = [ - "async-trait", - "clippy-utilities", - "dashmap", - "derive_builder", - "event-listener", - "futures", - "getset", - "madsim-tokio", - "madsim-tonic", - "opentelemetry", - "opentelemetry-jaeger-propagator", - "opentelemetry-otlp", - "opentelemetry_sdk", - "parking_lot", - "pbkdf2", - "rb-interval-map", - "regex", - "serde", - "test-macros", - "thiserror", - "toml", - "tracing", - "tracing-appender", - "tracing-opentelemetry", - "tracing-subscriber", - "workspace-hack", + "async-trait", + "clippy-utilities", + "dashmap", + "derive_builder", + "event-listener", + "futures", + "getset", + "madsim-tokio", + "madsim-tonic", + "opentelemetry", + "opentelemetry-jaeger-propagator", + "opentelemetry-otlp", + "opentelemetry_sdk", + "parking_lot", + "pbkdf2", + "rb-interval-map", + "regex", + "serde", + "test-macros", + "thiserror", + "toml", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", + "workspace-hack", ] [[package]] @@ -3348,9 +2980,7 @@ name = "uuid" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" -dependencies = [ - "getrandom", -] +dependencies = ["getrandom"] [[package]] name = "valuable" @@ -3375,18 +3005,14 @@ name = "wait-timeout" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] +dependencies = ["libc"] [[package]] name = "want" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] +dependencies = ["try-lock"] [[package]] name = "wasi" @@ -3399,11 +3025,7 @@ name = "wasm-bindgen" version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] +dependencies = ["cfg-if", "once_cell", "wasm-bindgen-macro"] [[package]] name = "wasm-bindgen-backend" @@ -3411,13 +3033,13 @@ version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.79", - "wasm-bindgen-shared", + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.79", + "wasm-bindgen-shared", ] [[package]] @@ -3425,22 +3047,14 @@ name = "wasm-bindgen-futures" version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] +dependencies = ["cfg-if", "js-sys", "wasm-bindgen", "web-sys"] [[package]] name = "wasm-bindgen-macro" version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] +dependencies = ["quote", "wasm-bindgen-macro-support"] [[package]] name = "wasm-bindgen-macro-support" @@ -3448,11 +3062,11 @@ version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", - "wasm-bindgen-backend", - "wasm-bindgen-shared", + "proc-macro2", + "quote", + "syn 2.0.79", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] @@ -3466,30 +3080,21 @@ name = "web-sys" version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" -dependencies = [ - "js-sys", - "wasm-bindgen", -] +dependencies = ["js-sys", "wasm-bindgen"] [[package]] name = "web-time" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] +dependencies = ["js-sys", "wasm-bindgen"] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] +dependencies = ["winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu"] [[package]] name = "winapi-i686-pc-windows-gnu" @@ -3497,6 +3102,13 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = ["windows-sys 0.52.0"] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -3508,57 +3120,42 @@ name = "windows-core" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets", -] +dependencies = ["windows-targets"] [[package]] name = "windows-registry" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets", -] +dependencies = ["windows-result", "windows-strings", "windows-targets"] [[package]] name = "windows-result" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets", -] +dependencies = ["windows-targets"] [[package]] name = "windows-strings" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets", -] +dependencies = ["windows-result", "windows-targets"] [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] +dependencies = ["windows-targets"] [[package]] name = "windows-sys" version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] +dependencies = ["windows-targets"] [[package]] name = "windows-targets" @@ -3566,14 +3163,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -3629,51 +3226,49 @@ name = "winnow" version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" -dependencies = [ - "memchr", -] +dependencies = ["memchr"] [[package]] name = "workspace-hack" version = "0.1.0" dependencies = [ - "axum", - "axum-core", - "bytes", - "cc", - "clap", - "crypto-common", - "digest", - "either", - "futures-channel", - "futures-util", - "getrandom", - "itertools 0.13.0", - "libc", - "log", - "madsim-tokio", - "madsim-tonic", - "memchr", - "opentelemetry_sdk", - "predicates", - "rand", - "serde", - "serde_json", - "sha2", - "smallvec", - "syn 2.0.79", - "sync_wrapper 1.0.1", - "time", - "tokio", - "tokio-stream 0.1.16", - "tokio-util", - "tonic", - "tower 0.4.13", - "tower 0.5.1", - "tracing", - "tracing-log", - "tracing-subscriber", - "zeroize", + "axum", + "axum-core", + "bytes", + "cc", + "clap", + "crypto-common", + "digest", + "either", + "futures-channel", + "futures-util", + "getrandom", + "itertools 0.13.0", + "libc", + "log", + "madsim-tokio", + "madsim-tonic", + "memchr", + "opentelemetry_sdk", + "predicates", + "rand", + "serde", + "serde_json", + "sha2", + "smallvec", + "syn 2.0.79", + "sync_wrapper 1.0.1", + "time", + "tokio", + "tokio-stream 0.1.16", + "tokio-util", + "tonic", + "tower 0.4.13", + "tower 0.5.1", + "tracing", + "tracing-log", + "tracing-subscriber", + "zeroize", ] [[package]] @@ -3682,176 +3277,176 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66534846dec7a11d7c50a74b7cdb208b9a581cad890b7866430d438455847c85" dependencies = [ - "bcder", - "bytes", - "chrono", - "der", - "hex", - "pem", - "ring", - "signature", - "spki", - "thiserror", - "zeroize", + "bcder", + "bytes", + "chrono", + "der", + "hex", + "pem", + "ring", + "signature", + "spki", + "thiserror", + "zeroize", ] [[package]] name = "xline" version = "0.6.1" dependencies = [ - "anyhow", - "async-stream", - "async-trait", - "axum", - "bytes", - "clap", - "clippy-utilities", - "crc32fast", - "crossbeam-skiplist", - "curp", - "curp-external-api", - "dashmap", - "engine", - "etcd-client", - "event-listener", - "flume", - "futures", - "hyper", - "itertools 0.13.0", - "jsonwebtoken", - "log", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "merged_range", - "mockall", - "nix", - "opentelemetry", - "opentelemetry-contrib", - "opentelemetry-otlp", - "opentelemetry-prometheus", - "opentelemetry_sdk", - "parking_lot", - "pbkdf2", - "priority-queue", - "prometheus", - "prost", - "rand", - "serde", - "sha2", - "strum", - "strum_macros", - "test-macros", - "tokio", - "tokio-stream 0.1.12", - "tokio-util", - "toml", - "tonic-health", - "tracing", - "tracing-appender", - "tracing-opentelemetry", - "tracing-subscriber", - "utils", - "uuid", - "workspace-hack", - "x509-certificate", - "xline-client", - "xline-test-utils", - "xlineapi", + "anyhow", + "async-stream", + "async-trait", + "axum", + "bytes", + "clap", + "clippy-utilities", + "crc32fast", + "crossbeam-skiplist", + "curp", + "curp-external-api", + "dashmap", + "engine", + "etcd-client", + "event-listener", + "flume", + "futures", + "hyper", + "itertools 0.13.0", + "jsonwebtoken", + "log", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "merged_range", + "mockall", + "nix", + "opentelemetry", + "opentelemetry-contrib", + "opentelemetry-otlp", + "opentelemetry-prometheus", + "opentelemetry_sdk", + "parking_lot", + "pbkdf2", + "priority-queue", + "prometheus", + "prost", + "rand", + "serde", + "sha2", + "strum", + "strum_macros", + "test-macros", + "tokio", + "tokio-stream 0.1.12", + "tokio-util", + "toml", + "tonic-health", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", + "utils", + "uuid", + "workspace-hack", + "x509-certificate", + "xline-client", + "xline-test-utils", + "xlineapi", ] [[package]] name = "xline-client" version = "0.1.0" dependencies = [ - "anyhow", - "async-dropper", - "async-trait", - "clippy-utilities", - "curp", - "futures", - "getrandom", - "http", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "prost", - "rand", - "test-macros", - "thiserror", - "tower 0.4.13", - "utils", - "workspace-hack", - "xline-test-utils", - "xlineapi", + "anyhow", + "async-dropper", + "async-trait", + "clippy-utilities", + "curp", + "futures", + "getrandom", + "http", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "prost", + "rand", + "test-macros", + "thiserror", + "tower 0.4.13", + "utils", + "workspace-hack", + "xline-test-utils", + "xlineapi", ] [[package]] name = "xline-test-utils" version = "0.1.0" dependencies = [ - "futures", - "madsim-tokio", - "madsim-tonic", - "rand", - "utils", - "workspace-hack", - "xline", - "xline-client", + "futures", + "madsim-tokio", + "madsim-tonic", + "rand", + "utils", + "workspace-hack", + "xline", + "xline-client", ] [[package]] name = "xlineapi" version = "0.1.0" dependencies = [ - "async-trait", - "curp", - "curp-external-api", - "itertools 0.13.0", - "madsim-tonic", - "madsim-tonic-build", - "prost", - "serde", - "strum", - "strum_macros", - "thiserror", - "utils", - "workspace-hack", + "async-trait", + "curp", + "curp-external-api", + "itertools 0.13.0", + "madsim-tonic", + "madsim-tonic-build", + "prost", + "serde", + "strum", + "strum_macros", + "thiserror", + "utils", + "workspace-hack", ] [[package]] name = "xlinectl" version = "0.1.0" dependencies = [ - "anyhow", - "clap", - "madsim-tonic", - "regex", - "serde", - "serde_json", - "shlex", - "tokio", - "utils", - "workspace-hack", - "xline-client", - "xlineapi", + "anyhow", + "clap", + "madsim-tonic", + "regex", + "serde", + "serde_json", + "shlex", + "tokio", + "utils", + "workspace-hack", + "xline-client", + "xlineapi", ] [[package]] name = "xlineutl" version = "0.1.0" dependencies = [ - "anyhow", - "clap", - "crc32fast", - "engine", - "serde", - "serde_json", - "tempfile", - "tokio", - "utils", - "workspace-hack", - "xline", + "anyhow", + "clap", + "crc32fast", + "engine", + "serde", + "serde_json", + "tempfile", + "tokio", + "utils", + "workspace-hack", + "xline", ] [[package]] @@ -3859,48 +3454,32 @@ name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] +dependencies = ["byteorder", "zerocopy-derive"] [[package]] name = "zerocopy-derive" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] +dependencies = ["zeroize_derive"] [[package]] name = "zeroize_derive" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", -] +dependencies = ["proc-macro2", "quote", "syn 2.0.79"] [[package]] name = "zstd-sys" version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -] +dependencies = ["cc", "pkg-config"] diff --git a/crates/jepsen-rs b/crates/jepsen-rs new file mode 160000 index 000000000..ce07e5769 --- /dev/null +++ b/crates/jepsen-rs @@ -0,0 +1 @@ +Subproject commit ce07e5769cee731a87b89781882e8ae977c88893 diff --git a/crates/simulation/Cargo.toml b/crates/simulation/Cargo.toml index bbc988f05..5176698fb 100644 --- a/crates/simulation/Cargo.toml +++ b/crates/simulation/Cargo.toml @@ -18,26 +18,29 @@ curp-test-utils = { path = "../curp-test-utils" } engine = { path = "../engine" } futures = "0.3.29" itertools = "0.13" +j4rs = "0.20.0" madsim = "0.2.27" parking_lot = "0.12.3" prost = "0.13" tempfile = "3" tokio = { version = "0.2.25", package = "madsim-tokio", features = [ - "rt", - "rt-multi-thread", - "fs", - "sync", - "macros", - "time", - "signal", + "rt", + "rt-multi-thread", + "fs", + "sync", + "macros", + "time", + "signal", ] } tonic = { version = "0.5.0", package = "madsim-tonic" } tracing = { version = "0.1.34", features = ["std", "log", "attributes"] } +tracing-subscriber = "0.3.1" utils = { path = "../utils", version = "0.1.0", features = ["parking_lot"] } workspace-hack = { version = "0.1", path = "../../workspace-hack" } xline = { path = "../xline" } xline-client = { path = "../xline-client" } xlineapi = { path = "../xlineapi" } +jepsen-rs = { path = "../jepsen-rs" } [build-dependencies] tonic-build = { version = "0.5.0", package = "madsim-tonic-build" } diff --git a/crates/simulation/src/xline_group.rs b/crates/simulation/src/xline_group.rs index 2ab0cc3dd..31bc2032f 100644 --- a/crates/simulation/src/xline_group.rs +++ b/crates/simulation/src/xline_group.rs @@ -1,6 +1,7 @@ use std::{collections::HashMap, sync::Arc, time::Duration}; use itertools::Itertools; +use jepsen_rs::client::ElleRwClusterClient; use madsim::runtime::NodeHandle; use tonic::transport::Channel; use tracing::debug; @@ -223,6 +224,28 @@ impl SimClient { } } +#[async_trait::async_trait] +impl ElleRwClusterClient for SimClient { + async fn get(&self, key: u64) -> Result, String> { + Ok(self + .range(key.to_be_bytes(), None) + .await + .map_err(|err| err.to_string())? + .kvs + .into_iter() + .next() + .map(|kv: xlineapi::KeyValue| { + u64::from_be_bytes(kv.value.try_into().expect("key should be 8 bytes")) + })) + } + async fn put(&self, key: u64, value: u64) -> Result<(), String> { + self.put(key.to_be_bytes(), value.to_be_bytes(), None) + .await + .map_err(|err| err.to_string())?; + Ok(()) + } +} + impl Drop for XlineGroup { fn drop(&mut self) { let handle = madsim::runtime::Handle::current(); diff --git a/crates/simulation/tests/it/jepsen/basic.rs b/crates/simulation/tests/it/jepsen/basic.rs new file mode 100644 index 000000000..de05f23ba --- /dev/null +++ b/crates/simulation/tests/it/jepsen/basic.rs @@ -0,0 +1,39 @@ +use jepsen_rs::{ + client::{Client, JepsenClient}, + generator::{controller::GeneratorGroupStrategy, elle_rw::ElleRwGenerator, GeneratorGroup}, + op::Op, +}; +use tracing::info; + +use simulation::xline_group::XlineGroup; + +#[test] +fn basic_test() { + let mut rt = madsim::runtime::Runtime::new(); + rt.set_allow_system_thread(true); + + rt.block_on(async move { + let group = XlineGroup::new(5).await; + let sim_client = group.client().await; + let jepsen_client = JepsenClient::new(sim_client, ElleRwGenerator::new().unwrap()); + let jepsen_client = Box::leak(jepsen_client.into()); + info!("basic_test: client created"); + + // get generators, transform and merge them + let g1 = jepsen_client + .new_generator(100) + .filter(|o| matches!(o, Op::Txn(txn) if txn.len() == 1)) + .await; + let g2 = jepsen_client.new_generator(50); + let g3 = jepsen_client.new_generator(50); + info!("intergration_test: generators created"); + let gen_g = GeneratorGroup::new([g1, g2, g3]) + .with_strategy(GeneratorGroupStrategy::RoundRobin(usize::MAX)); + info!("generator group created"); + let res = jepsen_client + .run(gen_g) + .await + .unwrap_or_else(|e| panic!("{}", e)); + println!("history checked result: {:?}", res); + }) +} diff --git a/crates/simulation/tests/it/jepsen/mod.rs b/crates/simulation/tests/it/jepsen/mod.rs new file mode 100644 index 000000000..1bca5f8cb --- /dev/null +++ b/crates/simulation/tests/it/jepsen/mod.rs @@ -0,0 +1 @@ +mod basic; diff --git a/crates/simulation/tests/it/main.rs b/crates/simulation/tests/it/main.rs index 4003739ef..fda7990e0 100644 --- a/crates/simulation/tests/it/main.rs +++ b/crates/simulation/tests/it/main.rs @@ -1,4 +1,5 @@ #![cfg(madsim)] mod curp; +mod jepsen; mod xline; From 0c490b4143e925a3d98af06b3bb16eaf8b133027 Mon Sep 17 00:00:00 2001 From: lxl66566 Date: Fri, 25 Oct 2024 09:46:30 +0800 Subject: [PATCH 3/4] fix too many changes in Cargo.lock Signed-off-by: lxl66566 --- Cargo.lock | 2733 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 1687 insertions(+), 1046 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8baab5fc2..70d6dfd98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,7 +7,9 @@ name = "addr2line" version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = ["gimli"] +dependencies = [ + "gimli", +] [[package]] name = "adler2" @@ -20,14 +22,22 @@ name = "ahash" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = ["cfg-if", "getrandom", "once_cell", "version_check", "zerocopy"] +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] [[package]] name = "aho-corasick" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = ["memchr"] +dependencies = [ + "memchr", +] [[package]] name = "android-tzdata" @@ -40,7 +50,9 @@ name = "android_system_properties" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = ["libc"] +dependencies = [ + "libc", +] [[package]] name = "anstream" @@ -48,13 +60,13 @@ version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", ] [[package]] @@ -68,21 +80,28 @@ name = "anstyle-parse" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = ["utf8parse"] +dependencies = [ + "utf8parse", +] [[package]] name = "anstyle-query" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = ["windows-sys 0.52.0"] +dependencies = [ + "windows-sys 0.52.0", +] [[package]] name = "anstyle-wincon" version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = ["anstyle", "windows-sys 0.52.0"] +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] [[package]] name = "anyhow" @@ -96,14 +115,14 @@ version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ - "anstyle", - "bstr", - "doc-comment", - "libc", - "predicates", - "predicates-core", - "predicates-tree", - "wait-timeout", + "anstyle", + "bstr", + "doc-comment", + "libc", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", ] [[package]] @@ -112,10 +131,10 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", ] [[package]] @@ -124,11 +143,11 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d901072ae4dcdca2201b98beb02d31fb4b6b2472fbd0e870b12ec15b8b35b2d2" dependencies = [ - "async-dropper-derive", - "async-dropper-simple", - "async-trait", - "futures", - "tokio", + "async-dropper-derive", + "async-dropper-simple", + "async-trait", + "futures", + "tokio", ] [[package]] @@ -136,7 +155,13 @@ name = "async-dropper-derive" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a35cf17a37761f1c88b8e770b5956820fe84c12854165b6f930c604ea186e47e" -dependencies = ["async-trait", "proc-macro2", "quote", "syn 2.0.79", "tokio"] +dependencies = [ + "async-trait", + "proc-macro2", + "quote", + "syn 2.0.79", + "tokio", +] [[package]] name = "async-dropper-simple" @@ -144,11 +169,11 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7c4748dfe8cd3d625ec68fc424fa80c134319881185866f9e173af9e5d8add8" dependencies = [ - "async-scoped", - "async-trait", - "futures", - "rustc_version", - "tokio", + "async-scoped", + "async-trait", + "futures", + "rustc_version", + "tokio", ] [[package]] @@ -156,28 +181,44 @@ name = "async-recursion" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = ["proc-macro2", "quote", "syn 2.0.65"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "async-scoped" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" -dependencies = ["futures", "pin-project", "tokio"] +dependencies = [ + "futures", + "pin-project", + "tokio", +] [[package]] name = "async-stream" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = ["async-stream-impl", "futures-core", "pin-project-lite"] +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] [[package]] name = "async-stream-impl" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "async-task" @@ -187,10 +228,14 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "atomic-waker" @@ -210,32 +255,32 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio", - "tower 0.5.1", - "tower-layer", - "tower-service", - "tracing", + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower 0.5.1", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -244,19 +289,19 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.1", - "tower-layer", - "tower-service", - "tracing", + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -265,13 +310,13 @@ version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets", + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets", ] [[package]] @@ -297,28 +342,31 @@ name = "bcder" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627747a6774aab38beb35990d88309481378558875a41da1a4b2e373c906ef0" -dependencies = ["bytes", "smallvec"] +dependencies = [ + "bytes", + "smallvec", +] [[package]] name = "benchmark" version = "0.1.0" dependencies = [ - "anyhow", - "clap", - "clippy-utilities", - "etcd-client", - "futures", - "indicatif", - "rand", - "thiserror", - "tokio", - "tracing", - "tracing-subscriber", - "utils", - "workspace-hack", - "xline-client", - "xline-test-utils", - "xlineapi", + "anyhow", + "clap", + "clippy-utilities", + "etcd-client", + "futures", + "indicatif", + "rand", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", + "utils", + "workspace-hack", + "xline-client", + "xline-test-utils", + "xlineapi", ] [[package]] @@ -326,7 +374,9 @@ name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = ["serde"] +dependencies = [ + "serde", +] [[package]] name = "bindgen" @@ -334,18 +384,18 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.79", + "bitflags", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.79", ] [[package]] @@ -359,14 +409,20 @@ name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = ["generic-array"] +dependencies = [ + "generic-array", +] [[package]] name = "bstr" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" -dependencies = ["memchr", "regex-automata 0.4.8", "serde"] +dependencies = [ + "memchr", + "regex-automata 0.4.8", + "serde", +] [[package]] name = "bumpalo" @@ -391,14 +447,22 @@ name = "bzip2-sys" version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = ["cc", "libc", "pkg-config"] +dependencies = [ + "cc", + "libc", + "pkg-config", +] [[package]] name = "cc" version = "1.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" -dependencies = ["jobserver", "libc", "shlex"] +dependencies = [ + "jobserver", + "libc", + "shlex", +] [[package]] name = "cesu8" @@ -411,7 +475,9 @@ name = "cexpr" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = ["nom"] +dependencies = [ + "nom", +] [[package]] name = "cfg-if" @@ -431,10 +497,11 @@ version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "windows-targets", + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets", ] [[package]] @@ -442,28 +509,45 @@ name = "clang-sys" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = ["glob", "libc", "libloading"] +dependencies = [ + "glob", + "libc", + "libloading", +] [[package]] name = "clap" version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" -dependencies = ["clap_builder", "clap_derive"] +dependencies = [ + "clap_builder", + "clap_derive", +] [[package]] name = "clap_builder" version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" -dependencies = ["anstream", "anstyle", "clap_lex", "strsim 0.11.1"] +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] [[package]] name = "clap_derive" version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" -dependencies = ["heck", "proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "clap_lex" @@ -476,7 +560,9 @@ name = "clippy-utilities" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63940bc99b494c2431ab307e373daf0181a2ad84d738a24beca52f9e724f8760" -dependencies = ["numeric_cast"] +dependencies = [ + "numeric_cast", +] [[package]] name = "colorchoice" @@ -489,7 +575,9 @@ name = "concurrent-queue" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = ["crossbeam-utils"] +dependencies = [ + "crossbeam-utils", +] [[package]] name = "console" @@ -497,11 +585,11 @@ version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", ] [[package]] @@ -521,35 +609,46 @@ name = "cpufeatures" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" -dependencies = ["libc"] +dependencies = [ + "libc", +] [[package]] name = "crc32fast" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = ["cfg-if"] +dependencies = [ + "cfg-if", +] [[package]] name = "crossbeam-channel" version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" -dependencies = ["crossbeam-utils"] +dependencies = [ + "crossbeam-utils", +] [[package]] name = "crossbeam-epoch" version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = ["crossbeam-utils"] +dependencies = [ + "crossbeam-utils", +] [[package]] name = "crossbeam-skiplist" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b" -dependencies = ["crossbeam-epoch", "crossbeam-utils"] +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] [[package]] name = "crossbeam-utils" @@ -562,86 +661,89 @@ name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = ["generic-array", "typenum"] +dependencies = [ + "generic-array", + "typenum", +] [[package]] name = "curp" version = "0.1.0" dependencies = [ - "anyhow", - "async-stream", - "async-trait", - "bincode", - "bytes", - "clippy-utilities", - "curp-external-api", - "curp-test-utils", - "dashmap", - "derive_builder", - "engine", - "event-listener", - "flume", - "fs2", - "futures", - "indexmap 2.6.0", - "itertools 0.13.0", - "madsim", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "mockall", - "once_cell", - "opentelemetry", - "parking_lot", - "priority-queue", - "prost", - "prost-build", - "rand", - "serde", - "sha2", - "tempfile", - "test-macros", - "thiserror", - "tokio-stream 0.1.12", - "tokio-util", - "tower 0.4.13", - "tracing", - "tracing-subscriber", - "tracing-test", - "utils", - "workspace-hack", + "anyhow", + "async-stream", + "async-trait", + "bincode", + "bytes", + "clippy-utilities", + "curp-external-api", + "curp-test-utils", + "dashmap", + "derive_builder", + "engine", + "event-listener", + "flume", + "fs2", + "futures", + "indexmap 2.6.0", + "itertools 0.13.0", + "madsim", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "mockall", + "once_cell", + "opentelemetry", + "parking_lot", + "priority-queue", + "prost", + "prost-build", + "rand", + "serde", + "sha2", + "tempfile", + "test-macros", + "thiserror", + "tokio-stream 0.1.12", + "tokio-util", + "tower 0.4.13", + "tracing", + "tracing-subscriber", + "tracing-test", + "utils", + "workspace-hack", ] [[package]] name = "curp-external-api" version = "0.1.0" dependencies = [ - "async-trait", - "engine", - "mockall", - "prost", - "serde", - "thiserror", - "workspace-hack", + "async-trait", + "engine", + "mockall", + "prost", + "serde", + "thiserror", + "workspace-hack", ] [[package]] name = "curp-test-utils" version = "0.1.0" dependencies = [ - "async-trait", - "bincode", - "curp-external-api", - "engine", - "itertools 0.13.0", - "madsim-tokio", - "prost", - "serde", - "thiserror", - "tracing", - "tracing-subscriber", - "utils", - "workspace-hack", + "async-trait", + "bincode", + "curp-external-api", + "engine", + "itertools 0.13.0", + "madsim-tokio", + "prost", + "serde", + "thiserror", + "tracing", + "tracing-subscriber", + "utils", + "workspace-hack", ] [[package]] @@ -649,14 +751,20 @@ name = "darling" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = ["darling_core 0.14.4", "darling_macro 0.14.4"] +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] [[package]] name = "darling" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = ["darling_core 0.20.10", "darling_macro 0.20.10"] +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] [[package]] name = "darling_core" @@ -664,12 +772,12 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] @@ -678,12 +786,12 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.79", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.79", ] [[package]] @@ -691,14 +799,22 @@ name = "darling_macro" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = ["darling_core 0.14.4", "quote", "syn 1.0.109"] +dependencies = [ + "darling_core 0.14.4", + "quote", + "syn 1.0.109", +] [[package]] name = "darling_macro" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = ["darling_core 0.20.10", "quote", "syn 2.0.79"] +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.79", +] [[package]] name = "dashmap" @@ -706,55 +822,76 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] name = "default-struct-builder" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fa90da96b8fd491f5754d1f7a731f73921e3b7aa0ce333c821a0e43666ac14" -dependencies = ["darling 0.20.8", "proc-macro2", "quote", "syn 2.0.65"] +checksum = "e0df63c21a4383f94bd5388564829423f35c316aed85dc4f8427aded372c7c0d" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "der" version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = ["const-oid", "zeroize"] +dependencies = [ + "const-oid", + "zeroize", +] [[package]] name = "deranged" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = ["powerfmt"] +dependencies = [ + "powerfmt", + "serde", +] [[package]] name = "derive_builder" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = ["derive_builder_macro"] +dependencies = [ + "derive_builder_macro", +] [[package]] name = "derive_builder_core" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = ["darling 0.20.10", "proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "derive_builder_macro" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = ["derive_builder_core", "syn 2.0.79"] +dependencies = [ + "derive_builder_core", + "syn 2.0.79", +] [[package]] name = "difflib" @@ -767,7 +904,11 @@ name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = ["block-buffer", "crypto-common", "subtle"] +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] [[package]] name = "doc-comment" @@ -809,22 +950,22 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" name = "engine" version = "0.1.0" dependencies = [ - "async-trait", - "bincode", - "bytes", - "clippy-utilities", - "madsim-tokio", - "opentelemetry", - "parking_lot", - "rocksdb", - "serde", - "test-macros", - "thiserror", - "tokio-util", - "tracing", - "utils", - "uuid", - "workspace-hack", + "async-trait", + "bincode", + "bytes", + "clippy-utilities", + "madsim-tokio", + "opentelemetry", + "parking_lot", + "rocksdb", + "serde", + "test-macros", + "thiserror", + "tokio-util", + "tracing", + "utils", + "uuid", + "workspace-hack", ] [[package]] @@ -832,7 +973,13 @@ name = "env_logger" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = ["humantime", "is-terminal", "log", "regex", "termcolor"] +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] [[package]] name = "equivalent" @@ -845,7 +992,10 @@ name = "errno" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = ["libc", "windows-sys 0.52.0"] +dependencies = [ + "libc", + "windows-sys 0.52.0", +] [[package]] name = "etcd-client" @@ -853,14 +1003,14 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39bde3ce50a626efeb1caa9ab1083972d178bebb55ca627639c8ded507dfcbde" dependencies = [ - "http", - "prost", - "tokio", - "tokio-stream 0.1.16", - "tonic", - "tonic-build", - "tower 0.4.13", - "tower-service", + "http", + "prost", + "tokio", + "tokio-stream 0.1.16", + "tonic", + "tonic-build", + "tower 0.4.13", + "tower-service", ] [[package]] @@ -868,14 +1018,21 @@ name = "event-listener" version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" -dependencies = ["concurrent-queue", "parking", "pin-project-lite"] +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] [[package]] name = "event-listener-strategy" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" -dependencies = ["event-listener", "pin-project-lite"] +dependencies = [ + "event-listener", + "pin-project-lite", +] [[package]] name = "fastrand" @@ -894,7 +1051,12 @@ name = "flume" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = ["futures-core", "futures-sink", "nanorand", "spin"] +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "spin", +] [[package]] name = "fnv" @@ -907,7 +1069,9 @@ name = "form_urlencoded" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = ["percent-encoding"] +dependencies = [ + "percent-encoding", +] [[package]] name = "fragile" @@ -920,7 +1084,10 @@ name = "fs2" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = ["libc", "winapi"] +dependencies = [ + "libc", + "winapi", +] [[package]] name = "fs_extra" @@ -934,13 +1101,13 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] @@ -948,7 +1115,10 @@ name = "futures-channel" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = ["futures-core", "futures-sink"] +dependencies = [ + "futures-core", + "futures-sink", +] [[package]] name = "futures-core" @@ -961,7 +1131,11 @@ name = "futures-executor" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = ["futures-core", "futures-task", "futures-util"] +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] [[package]] name = "futures-io" @@ -974,7 +1148,11 @@ name = "futures-macro" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "futures-sink" @@ -994,16 +1172,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", ] [[package]] @@ -1011,21 +1189,35 @@ name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = ["typenum", "version_check"] +dependencies = [ + "typenum", + "version_check", +] [[package]] name = "getrandom" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = ["cfg-if", "js-sys", "libc", "wasi", "wasm-bindgen"] +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] [[package]] name = "getset" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f636605b743120a8d32ed92fc27b6cde1a769f8f936c065151eb66f88ded513c" -dependencies = ["proc-macro-error2", "proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "gimli" @@ -1045,17 +1237,17 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] @@ -1105,21 +1297,30 @@ name = "hmac" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = ["digest"] +dependencies = [ + "digest", +] [[package]] name = "http" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = ["bytes", "fnv", "itoa"] +dependencies = [ + "bytes", + "fnv", + "itoa", +] [[package]] name = "http-body" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = ["bytes", "http"] +dependencies = [ + "bytes", + "http", +] [[package]] name = "http-body-util" @@ -1127,11 +1328,11 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", ] [[package]] @@ -1158,19 +1359,19 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", ] [[package]] @@ -1179,11 +1380,11 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", ] [[package]] @@ -1192,17 +1393,17 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -1211,12 +1412,12 @@ version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", ] [[package]] @@ -1224,7 +1425,9 @@ name = "iana-time-zone-haiku" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = ["cc"] +dependencies = [ + "cc", +] [[package]] name = "ident_case" @@ -1237,21 +1440,32 @@ name = "idna" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = ["unicode-bidi", "unicode-normalization"] +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] [[package]] name = "indexmap" version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = ["autocfg", "hashbrown 0.12.3"] +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] [[package]] name = "indexmap" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" -dependencies = ["equivalent", "hashbrown 0.15.0"] +dependencies = [ + "equivalent", + "hashbrown 0.15.0", + "serde", +] [[package]] name = "indicatif" @@ -1259,11 +1473,11 @@ version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", ] [[package]] @@ -1271,13 +1485,26 @@ name = "instant" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = ["cfg-if"] +dependencies = [ + "cfg-if", +] [[package]] name = "ipnet" version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is-terminal" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +dependencies = [ + "hermit-abi 0.4.0", + "libc", + "windows-sys 0.52.0", +] [[package]] name = "is_terminal_polyfill" @@ -1290,14 +1517,18 @@ name = "itertools" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = ["either"] +dependencies = [ + "either", +] [[package]] name = "itertools" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = ["either"] +dependencies = [ + "either", +] [[package]] name = "itoa" @@ -1311,19 +1542,19 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "689ae4f2bd4eba82601592f3d22b7e7147b1df52d3b525223f5218990501b4eb" dependencies = [ - "cesu8", - "dunce", - "fs_extra", - "futures", - "glob", - "java-locator", - "jni-sys", - "lazy_static", - "libc", - "libloading", - "log", - "serde", - "serde_json", + "cesu8", + "dunce", + "fs_extra", + "futures", + "glob", + "java-locator", + "jni-sys", + "lazy_static", + "libc", + "libloading", + "log", + "serde", + "serde_json", ] [[package]] @@ -1331,25 +1562,31 @@ name = "java-locator" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2abecabd9961c5e01405a6426687fcf1bd94a269927137e4c3cc1a7419b93fd" -dependencies = ["glob", "lazy_static"] +dependencies = [ + "glob", + "lazy_static", +] [[package]] name = "jepsen-rs" version = "0.1.0" dependencies = [ - "anyhow", - "async-recursion", - "async-trait", - "default-struct-builder", - "futures-util", - "j4rs", - "log", - "madsim", - "madsim-tokio", - "pretty_env_logger", - "serde", - "serde_json", - "tokio-stream 0.1.16", + "anyhow", + "async-recursion", + "async-trait", + "default-struct-builder", + "futures-util", + "j4rs", + "log", + "madsim", + "madsim-tokio", + "once_cell", + "pretty_env_logger", + "serde", + "serde_json", + "serde_with", + "tap", + "tokio-stream 0.1.16", ] [[package]] @@ -1357,28 +1594,37 @@ name = "jni-sys" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c30a312d782b8d56a1e0897d45c1af33f31f9b4a4d13d31207a8675e0223b818" -dependencies = ["jni-sys-macros"] +dependencies = [ + "jni-sys-macros", +] [[package]] name = "jni-sys-macros" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c199962dfd5610ced8eca382606e349f7940a4ac7d867b58a046123411cbb4" -dependencies = ["quote", "syn 1.0.109"] +dependencies = [ + "quote", + "syn 1.0.109", +] [[package]] name = "jobserver" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = ["libc"] +dependencies = [ + "libc", +] [[package]] name = "js-sys" version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" -dependencies = ["wasm-bindgen"] +dependencies = [ + "wasm-bindgen", +] [[package]] name = "jsonwebtoken" @@ -1386,13 +1632,13 @@ version = "9.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" dependencies = [ - "base64 0.21.7", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", + "base64 0.21.7", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", ] [[package]] @@ -1418,7 +1664,10 @@ name = "libloading" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" -dependencies = ["cfg-if", "windows-targets"] +dependencies = [ + "cfg-if", + "windows-targets", +] [[package]] name = "librocksdb-sys" @@ -1426,14 +1675,14 @@ version = "0.16.0+8.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c" dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "lz4-sys", - "zstd-sys", + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", ] [[package]] @@ -1441,7 +1690,11 @@ name = "libz-sys" version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" -dependencies = ["cc", "pkg-config", "vcpkg"] +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] [[package]] name = "linux-raw-sys" @@ -1454,7 +1707,10 @@ name = "lock_api" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = ["autocfg", "scopeguard"] +dependencies = [ + "autocfg", + "scopeguard", +] [[package]] name = "log" @@ -1467,63 +1723,75 @@ name = "lz4-sys" version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" -dependencies = ["cc", "libc"] +dependencies = [ + "cc", + "libc", +] [[package]] name = "madsim" version = "0.2.30" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" dependencies = [ - "ahash", - "async-channel", - "async-stream", - "async-task", - "bincode", - "bytes", - "downcast-rs", - "futures-util", - "lazy_static", - "libc", - "madsim-macros", - "naive-timer", - "panic-message", - "rand", - "rand_xoshiro", - "rustversion", - "serde", - "spin", - "tokio", - "tokio-util", - "toml", - "tracing", - "tracing-subscriber", + "ahash", + "async-channel", + "async-stream", + "async-task", + "bincode", + "bytes", + "downcast-rs", + "futures-util", + "lazy_static", + "libc", + "madsim-macros", + "naive-timer", + "panic-message", + "rand", + "rand_xoshiro", + "rustversion", + "serde", + "spin", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-subscriber", ] [[package]] name = "madsim-macros" version = "0.2.12" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" -dependencies = ["darling 0.14.4", "proc-macro2", "quote", "syn 1.0.109"] +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "madsim-tokio" version = "0.2.28" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" -dependencies = ["madsim", "spin", "tokio"] +dependencies = [ + "madsim", + "spin", + "tokio", +] [[package]] name = "madsim-tonic" version = "0.5.0+0.12.0" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" dependencies = [ - "async-stream", - "chrono", - "futures-util", - "madsim", - "tokio", - "tonic", - "tower 0.4.13", - "tracing", + "async-stream", + "chrono", + "futures-util", + "madsim", + "tokio", + "tonic", + "tower 0.4.13", + "tracing", ] [[package]] @@ -1531,12 +1799,12 @@ name = "madsim-tonic-build" version = "0.5.0+0.12.0" source = "git+https://github.com/LucienY01/madsim.git?branch=bz/tonic-0-12#a7d205e8f044876105cb8980c1c5b5231dd9a170" dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "quote", - "syn 2.0.79", - "tonic-build", + "prettyplease", + "proc-macro2", + "prost-build", + "quote", + "syn 2.0.79", + "tonic-build", ] [[package]] @@ -1544,7 +1812,9 @@ name = "matchers" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = ["regex-automata 0.1.10"] +dependencies = [ + "regex-automata 0.1.10", +] [[package]] name = "matchit" @@ -1563,7 +1833,9 @@ name = "merged_range" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c013377d78bca1015c5c9d56a4f65f0ab3257cbd8b3af0b98e44af889010dbb" -dependencies = ["clippy-utilities"] +dependencies = [ + "clippy-utilities", +] [[package]] name = "mime" @@ -1582,14 +1854,21 @@ name = "miniz_oxide" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" -dependencies = ["adler2"] +dependencies = [ + "adler2", +] [[package]] name = "mio" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = ["hermit-abi", "libc", "wasi", "windows-sys 0.52.0"] +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "wasi", + "windows-sys 0.52.0", +] [[package]] name = "mockall" @@ -1597,13 +1876,13 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" dependencies = [ - "cfg-if", - "downcast", - "fragile", - "lazy_static", - "mockall_derive", - "predicates", - "predicates-tree", + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", ] [[package]] @@ -1611,7 +1890,12 @@ name = "mockall_derive" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" -dependencies = ["cfg-if", "proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "multimap" @@ -1630,35 +1914,51 @@ name = "nanorand" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = ["getrandom"] +dependencies = [ + "getrandom", +] [[package]] name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = ["bitflags", "cfg-if", "cfg_aliases", "libc"] +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", +] [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = ["memchr", "minimal-lexical"] +dependencies = [ + "memchr", + "minimal-lexical", +] [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = ["overload", "winapi"] +dependencies = [ + "overload", + "winapi", +] [[package]] name = "num-bigint" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = ["num-integer", "num-traits"] +dependencies = [ + "num-integer", + "num-traits", +] [[package]] name = "num-conv" @@ -1671,21 +1971,18 @@ name = "num-integer" version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = ["num-traits"] +dependencies = [ + "num-traits", +] [[package]] name = "num-traits" version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = ["autocfg"] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = ["hermit-abi", "libc"] +dependencies = [ + "autocfg", +] [[package]] name = "number_prefix" @@ -1704,7 +2001,9 @@ name = "object" version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" -dependencies = ["memchr"] +dependencies = [ + "memchr", +] [[package]] name = "once_cell" @@ -1718,12 +2017,12 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96" dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "once_cell", - "pin-project-lite", - "thiserror", + "futures-core", + "futures-sink", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", ] [[package]] @@ -1732,15 +2031,15 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60741e61c3c2ae6000c7cbb0d8184d4c60571c65bf0af32b418152570c8cb110" dependencies = [ - "async-trait", - "futures-core", - "futures-util", - "once_cell", - "opentelemetry", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "serde_json", - "tokio", + "async-trait", + "futures-core", + "futures-util", + "once_cell", + "opentelemetry", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "serde_json", + "tokio", ] [[package]] @@ -1748,14 +2047,22 @@ name = "opentelemetry-http" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad31e9de44ee3538fb9d64fe3376c1362f406162434609e79aea2a41a0af78ab" -dependencies = ["async-trait", "bytes", "http", "opentelemetry", "reqwest"] +dependencies = [ + "async-trait", + "bytes", + "http", + "opentelemetry", + "reqwest", +] [[package]] name = "opentelemetry-jaeger-propagator" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a68a13b92fc708d875ad659b08b35d08b8ef2403e01944b39ca21e5b08b17" -dependencies = ["opentelemetry"] +dependencies = [ + "opentelemetry", +] [[package]] name = "opentelemetry-otlp" @@ -1763,18 +2070,18 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727" dependencies = [ - "async-trait", - "futures-core", - "http", - "opentelemetry", - "opentelemetry-http", - "opentelemetry-proto", - "opentelemetry_sdk", - "prost", - "reqwest", - "thiserror", - "tokio", - "tonic", + "async-trait", + "futures-core", + "http", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", + "prost", + "reqwest", + "thiserror", + "tokio", + "tonic", ] [[package]] @@ -1783,11 +2090,11 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4191ce34aa274621861a7a9d68dbcf618d5b6c66b10081631b61fd81fbc015" dependencies = [ - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "prometheus", - "protobuf", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "prometheus", + "protobuf", ] [[package]] @@ -1795,7 +2102,12 @@ name = "opentelemetry-proto" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9" -dependencies = ["opentelemetry", "opentelemetry_sdk", "prost", "tonic"] +dependencies = [ + "opentelemetry", + "opentelemetry_sdk", + "prost", + "tonic", +] [[package]] name = "opentelemetry-semantic-conventions" @@ -1809,19 +2121,19 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df" dependencies = [ - "async-trait", - "futures-channel", - "futures-executor", - "futures-util", - "glob", - "once_cell", - "opentelemetry", - "percent-encoding", - "rand", - "serde_json", - "thiserror", - "tokio", - "tokio-stream 0.1.16", + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry", + "percent-encoding", + "rand", + "serde_json", + "thiserror", + "tokio", + "tokio-stream 0.1.16", ] [[package]] @@ -1847,7 +2159,10 @@ name = "parking_lot" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = ["lock_api", "parking_lot_core"] +dependencies = [ + "lock_api", + "parking_lot_core", +] [[package]] name = "parking_lot_core" @@ -1855,11 +2170,11 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", ] [[package]] @@ -1867,21 +2182,33 @@ name = "password-hash" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = ["base64ct", "rand_core", "subtle"] +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] [[package]] name = "pbkdf2" version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = ["digest", "hmac", "password-hash", "sha2"] +dependencies = [ + "digest", + "hmac", + "password-hash", + "sha2", +] [[package]] name = "pem" version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = ["base64 0.22.1", "serde"] +dependencies = [ + "base64 0.22.1", + "serde", +] [[package]] name = "percent-encoding" @@ -1894,21 +2221,30 @@ name = "petgraph" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = ["fixedbitset", "indexmap 2.6.0"] +dependencies = [ + "fixedbitset", + "indexmap 2.6.0", +] [[package]] name = "pin-project" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" -dependencies = ["pin-project-internal"] +dependencies = [ + "pin-project-internal", +] [[package]] name = "pin-project-internal" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "pin-project-lite" @@ -1945,14 +2281,20 @@ name = "ppv-lite86" version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = ["zerocopy"] +dependencies = [ + "zerocopy", +] [[package]] name = "predicates" version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" -dependencies = ["anstyle", "difflib", "predicates-core"] +dependencies = [ + "anstyle", + "difflib", + "predicates-core", +] [[package]] name = "predicates-core" @@ -1965,49 +2307,72 @@ name = "predicates-tree" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" -dependencies = ["predicates-core", "termtree"] +dependencies = [ + "predicates-core", + "termtree", +] [[package]] name = "pretty_env_logger" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" -dependencies = ["env_logger", "log"] +dependencies = [ + "env_logger", + "log", +] [[package]] name = "prettyplease" version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" -dependencies = ["proc-macro2", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "syn 2.0.79", +] [[package]] name = "priority-queue" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d" -dependencies = ["autocfg", "equivalent", "indexmap 2.6.0"] +dependencies = [ + "autocfg", + "equivalent", + "indexmap 2.6.0", +] [[package]] name = "proc-macro-error-attr2" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = ["proc-macro2", "quote"] +dependencies = [ + "proc-macro2", + "quote", +] [[package]] name = "proc-macro-error2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = ["proc-macro-error-attr2", "proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "proc-macro2" version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" -dependencies = ["unicode-ident"] +dependencies = [ + "unicode-ident", +] [[package]] name = "prometheus" @@ -2015,13 +2380,13 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot", - "protobuf", - "thiserror", + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "protobuf", + "thiserror", ] [[package]] @@ -2029,7 +2394,10 @@ name = "prost" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" -dependencies = ["bytes", "prost-derive"] +dependencies = [ + "bytes", + "prost-derive", +] [[package]] name = "prost-build" @@ -2037,19 +2405,19 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ - "bytes", - "heck", - "itertools 0.13.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.79", - "tempfile", + "bytes", + "heck", + "itertools 0.13.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.79", + "tempfile", ] [[package]] @@ -2058,11 +2426,11 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ - "anyhow", - "itertools 0.13.0", - "proc-macro2", - "quote", - "syn 2.0.79", + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.79", ] [[package]] @@ -2070,7 +2438,9 @@ name = "prost-types" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" -dependencies = ["prost"] +dependencies = [ + "prost", +] [[package]] name = "protobuf" @@ -2083,35 +2453,48 @@ name = "quote" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = ["proc-macro2"] +dependencies = [ + "proc-macro2", +] [[package]] name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = ["libc", "rand_chacha", "rand_core"] +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] [[package]] name = "rand_chacha" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = ["ppv-lite86", "rand_core"] +dependencies = [ + "ppv-lite86", + "rand_core", +] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = ["getrandom"] +dependencies = [ + "getrandom", +] [[package]] name = "rand_xoshiro" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = ["rand_core"] +dependencies = [ + "rand_core", +] [[package]] name = "rb-interval-map" @@ -2124,7 +2507,9 @@ name = "redox_syscall" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" -dependencies = ["bitflags"] +dependencies = [ + "bitflags", +] [[package]] name = "regex" @@ -2132,10 +2517,10 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.8", - "regex-syntax 0.8.5", + "aho-corasick", + "memchr", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -2143,14 +2528,20 @@ name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = ["regex-syntax 0.6.29"] +dependencies = [ + "regex-syntax 0.6.29", +] [[package]] name = "regex-automata" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" -dependencies = ["aho-corasick", "memchr", "regex-syntax 0.8.5"] +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] [[package]] name = "regex-syntax" @@ -2170,34 +2561,34 @@ version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows-registry", + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-registry", ] [[package]] @@ -2206,13 +2597,13 @@ version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] @@ -2220,7 +2611,10 @@ name = "rocksdb" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bd13e55d6d7b8cd0ea569161127567cd587676c99f4472f779a0279aa60a7a7" -dependencies = ["libc", "librocksdb-sys"] +dependencies = [ + "libc", + "librocksdb-sys", +] [[package]] name = "rustc-demangle" @@ -2239,7 +2633,9 @@ name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = ["semver"] +dependencies = [ + "semver", +] [[package]] name = "rustix" @@ -2247,11 +2643,11 @@ version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", ] [[package]] @@ -2260,13 +2656,13 @@ version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8" dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] @@ -2274,7 +2670,9 @@ name = "rustls-pemfile" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = ["rustls-pki-types"] +dependencies = [ + "rustls-pki-types", +] [[package]] name = "rustls-pki-types" @@ -2287,7 +2685,11 @@ name = "rustls-webpki" version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = ["ring", "rustls-pki-types", "untrusted"] +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] [[package]] name = "rustversion" @@ -2318,56 +2720,113 @@ name = "serde" version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" -dependencies = ["serde_derive"] +dependencies = [ + "serde_derive", +] [[package]] name = "serde_derive" version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "serde_json" version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" -dependencies = ["itoa", "memchr", "ryu", "serde"] +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] [[package]] name = "serde_path_to_error" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" -dependencies = ["itoa", "serde"] +dependencies = [ + "itoa", + "serde", +] [[package]] name = "serde_spanned" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = ["serde"] +dependencies = [ + "serde", +] [[package]] name = "serde_urlencoded" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = ["form_urlencoded", "itoa", "ryu", "serde"] +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.6.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "sha2" version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = ["cfg-if", "cpufeatures", "digest"] +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = ["lazy_static"] +dependencies = [ + "lazy_static", +] [[package]] name = "shlex" @@ -2380,49 +2839,58 @@ name = "signal-hook-registry" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = ["libc"] +dependencies = [ + "libc", +] [[package]] name = "signature" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = ["rand_core"] +dependencies = [ + "rand_core", +] [[package]] name = "simple_asn1" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = ["num-bigint", "num-traits", "thiserror", "time"] +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] [[package]] name = "simulation" version = "0.1.0" dependencies = [ - "async-trait", - "bincode", - "curp", - "curp-test-utils", - "engine", - "futures", - "itertools 0.13.0", - "j4rs", - "jepsen-rs", - "madsim", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "parking_lot", - "prost", - "tempfile", - "tracing", - "tracing-subscriber", - "utils", - "workspace-hack", - "xline", - "xline-client", - "xlineapi", + "async-trait", + "bincode", + "curp", + "curp-test-utils", + "engine", + "futures", + "itertools 0.13.0", + "j4rs", + "jepsen-rs", + "madsim", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "parking_lot", + "prost", + "tempfile", + "tracing", + "tracing-subscriber", + "utils", + "workspace-hack", + "xline", + "xline-client", + "xlineapi", ] [[package]] @@ -2430,7 +2898,9 @@ name = "slab" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = ["autocfg"] +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -2443,21 +2913,29 @@ name = "socket2" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = ["libc", "windows-sys 0.52.0"] +dependencies = [ + "libc", + "windows-sys 0.52.0", +] [[package]] name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = ["lock_api"] +dependencies = [ + "lock_api", +] [[package]] name = "spki" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = ["base64ct", "der"] +dependencies = [ + "base64ct", + "der", +] [[package]] name = "strsim" @@ -2482,7 +2960,13 @@ name = "strum_macros" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = ["heck", "proc-macro2", "quote", "rustversion", "syn 2.0.79"] +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.79", +] [[package]] name = "subtle" @@ -2495,14 +2979,22 @@ name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = ["proc-macro2", "quote", "unicode-ident"] +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] [[package]] name = "syn" version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" -dependencies = ["proc-macro2", "quote", "unicode-ident"] +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] [[package]] name = "sync_wrapper" @@ -2515,7 +3007,15 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -dependencies = ["futures-core"] +dependencies = [ + "futures-core", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" @@ -2523,11 +3023,11 @@ version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] [[package]] @@ -2535,7 +3035,9 @@ name = "termcolor" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = ["winapi-util"] +dependencies = [ + "winapi-util", +] [[package]] name = "termtree" @@ -2546,28 +3048,43 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-macros" version = "0.1.0" -dependencies = ["assert_cmd", "quote", "syn 2.0.79", "tokio", "workspace-hack"] +dependencies = [ + "assert_cmd", + "quote", + "syn 2.0.79", + "tokio", + "workspace-hack", +] [[package]] name = "thiserror" version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" -dependencies = ["thiserror-impl"] +dependencies = [ + "thiserror-impl", +] [[package]] name = "thiserror-impl" version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "thread_local" version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = ["cfg-if", "once_cell"] +dependencies = [ + "cfg-if", + "once_cell", +] [[package]] name = "time" @@ -2575,13 +3092,13 @@ version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", ] [[package]] @@ -2595,14 +3112,19 @@ name = "time-macros" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = ["num-conv", "time-core"] +dependencies = [ + "num-conv", + "time-core", +] [[package]] name = "tinyvec" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = ["tinyvec_macros"] +dependencies = [ + "tinyvec_macros", +] [[package]] name = "tinyvec_macros" @@ -2616,15 +3138,15 @@ version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", ] [[package]] @@ -2632,27 +3154,43 @@ name = "tokio-macros" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = ["rustls", "rustls-pki-types", "tokio"] +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] [[package]] name = "tokio-stream" version = "0.1.12" source = "git+https://github.com/madsim-rs/tokio.git?rev=ab251ad#ab251ad1fae8e16d9a1df74e301dbf3ed9d4d3af" -dependencies = ["futures-core", "madsim-tokio", "pin-project-lite"] +dependencies = [ + "futures-core", + "madsim-tokio", + "pin-project-lite", +] [[package]] name = "tokio-stream" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" -dependencies = ["futures-core", "pin-project-lite", "tokio"] +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] [[package]] name = "tokio-util" @@ -2660,11 +3198,11 @@ version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", ] [[package]] @@ -2672,14 +3210,21 @@ name = "toml" version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = ["serde", "serde_spanned", "toml_datetime", "toml_edit"] +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = ["serde"] +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -2687,11 +3232,11 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -2700,30 +3245,30 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.22.1", - "bytes", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost", - "rustls-pemfile", - "socket2", - "tokio", - "tokio-rustls", - "tokio-stream 0.1.15", - "tower", - "tower-layer", - "tower-service", - "tracing", + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "rustls-pemfile", + "socket2", + "tokio", + "tokio-rustls", + "tokio-stream 0.1.16", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -2732,12 +3277,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "prost-types", - "quote", - "syn 2.0.79", + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.79", ] [[package]] @@ -2746,11 +3291,11 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1eaf34ddb812120f5c601162d5429933c9b527d901ab0e7f930d3147e33a09b2" dependencies = [ - "async-stream", - "prost", - "tokio", - "tokio-stream 0.1.16", - "tonic", + "async-stream", + "prost", + "tokio", + "tokio-stream 0.1.16", + "tonic", ] [[package]] @@ -2759,18 +3304,18 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -2779,14 +3324,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper 0.1.2", - "tokio", - "tower-layer", - "tower-service", - "tracing", + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tokio", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -2806,35 +3351,56 @@ name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = ["log", "pin-project-lite", "tracing-attributes", "tracing-core"] +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] [[package]] name = "tracing-appender" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = ["crossbeam-channel", "thiserror", "time", "tracing-subscriber"] +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] [[package]] name = "tracing-attributes" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "tracing-core" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = ["once_cell", "valuable"] +dependencies = [ + "once_cell", + "valuable", +] [[package]] name = "tracing-log" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = ["log", "once_cell", "tracing-core"] +dependencies = [ + "log", + "once_cell", + "tracing-core", +] [[package]] name = "tracing-opentelemetry" @@ -2842,16 +3408,16 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b" dependencies = [ - "js-sys", - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "smallvec", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber", - "web-time", + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", + "web-time", ] [[package]] @@ -2860,17 +3426,17 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "time", - "tracing", - "tracing-core", - "tracing-log", + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -2878,14 +3444,21 @@ name = "tracing-test" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" -dependencies = ["tracing-core", "tracing-subscriber", "tracing-test-macro"] +dependencies = [ + "tracing-core", + "tracing-subscriber", + "tracing-test-macro", +] [[package]] name = "tracing-test-macro" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" -dependencies = ["quote", "syn 2.0.79"] +dependencies = [ + "quote", + "syn 2.0.79", +] [[package]] name = "try-lock" @@ -2916,7 +3489,9 @@ name = "unicode-normalization" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = ["tinyvec"] +dependencies = [ + "tinyvec", +] [[package]] name = "unicode-width" @@ -2935,7 +3510,11 @@ name = "url" version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -dependencies = ["form_urlencoded", "idna", "percent-encoding"] +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] [[package]] name = "utf8parse" @@ -2947,32 +3526,32 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" name = "utils" version = "0.1.0" dependencies = [ - "async-trait", - "clippy-utilities", - "dashmap", - "derive_builder", - "event-listener", - "futures", - "getset", - "madsim-tokio", - "madsim-tonic", - "opentelemetry", - "opentelemetry-jaeger-propagator", - "opentelemetry-otlp", - "opentelemetry_sdk", - "parking_lot", - "pbkdf2", - "rb-interval-map", - "regex", - "serde", - "test-macros", - "thiserror", - "toml", - "tracing", - "tracing-appender", - "tracing-opentelemetry", - "tracing-subscriber", - "workspace-hack", + "async-trait", + "clippy-utilities", + "dashmap", + "derive_builder", + "event-listener", + "futures", + "getset", + "madsim-tokio", + "madsim-tonic", + "opentelemetry", + "opentelemetry-jaeger-propagator", + "opentelemetry-otlp", + "opentelemetry_sdk", + "parking_lot", + "pbkdf2", + "rb-interval-map", + "regex", + "serde", + "test-macros", + "thiserror", + "toml", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", + "workspace-hack", ] [[package]] @@ -2980,7 +3559,9 @@ name = "uuid" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" -dependencies = ["getrandom"] +dependencies = [ + "getrandom", +] [[package]] name = "valuable" @@ -3005,14 +3586,18 @@ name = "wait-timeout" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = ["libc"] +dependencies = [ + "libc", +] [[package]] name = "want" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = ["try-lock"] +dependencies = [ + "try-lock", +] [[package]] name = "wasi" @@ -3025,7 +3610,11 @@ name = "wasm-bindgen" version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" -dependencies = ["cfg-if", "once_cell", "wasm-bindgen-macro"] +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] [[package]] name = "wasm-bindgen-backend" @@ -3033,13 +3622,13 @@ version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.79", - "wasm-bindgen-shared", + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.79", + "wasm-bindgen-shared", ] [[package]] @@ -3047,14 +3636,22 @@ name = "wasm-bindgen-futures" version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" -dependencies = ["cfg-if", "js-sys", "wasm-bindgen", "web-sys"] +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] [[package]] name = "wasm-bindgen-macro" version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" -dependencies = ["quote", "wasm-bindgen-macro-support"] +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] [[package]] name = "wasm-bindgen-macro-support" @@ -3062,11 +3659,11 @@ version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.79", - "wasm-bindgen-backend", - "wasm-bindgen-shared", + "proc-macro2", + "quote", + "syn 2.0.79", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] @@ -3080,21 +3677,30 @@ name = "web-sys" version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" -dependencies = ["js-sys", "wasm-bindgen"] +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "web-time" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = ["js-sys", "wasm-bindgen"] +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = ["winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu"] +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] [[package]] name = "winapi-i686-pc-windows-gnu" @@ -3107,7 +3713,9 @@ name = "winapi-util" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = ["windows-sys 0.52.0"] +dependencies = [ + "windows-sys 0.59.0", +] [[package]] name = "winapi-x86_64-pc-windows-gnu" @@ -3120,42 +3728,57 @@ name = "windows-core" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = ["windows-targets"] +dependencies = [ + "windows-targets", +] [[package]] name = "windows-registry" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = ["windows-result", "windows-strings", "windows-targets"] +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets", +] [[package]] name = "windows-result" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = ["windows-targets"] +dependencies = [ + "windows-targets", +] [[package]] name = "windows-strings" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = ["windows-result", "windows-targets"] +dependencies = [ + "windows-result", + "windows-targets", +] [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = ["windows-targets"] +dependencies = [ + "windows-targets", +] [[package]] name = "windows-sys" version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = ["windows-targets"] +dependencies = [ + "windows-targets", +] [[package]] name = "windows-targets" @@ -3163,14 +3786,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -3226,49 +3849,51 @@ name = "winnow" version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" -dependencies = ["memchr"] +dependencies = [ + "memchr", +] [[package]] name = "workspace-hack" version = "0.1.0" dependencies = [ - "axum", - "axum-core", - "bytes", - "cc", - "clap", - "crypto-common", - "digest", - "either", - "futures-channel", - "futures-util", - "getrandom", - "itertools 0.13.0", - "libc", - "log", - "madsim-tokio", - "madsim-tonic", - "memchr", - "opentelemetry_sdk", - "predicates", - "rand", - "serde", - "serde_json", - "sha2", - "smallvec", - "syn 2.0.79", - "sync_wrapper 1.0.1", - "time", - "tokio", - "tokio-stream 0.1.16", - "tokio-util", - "tonic", - "tower 0.4.13", - "tower 0.5.1", - "tracing", - "tracing-log", - "tracing-subscriber", - "zeroize", + "axum", + "axum-core", + "bytes", + "cc", + "clap", + "crypto-common", + "digest", + "either", + "futures-channel", + "futures-util", + "getrandom", + "itertools 0.13.0", + "libc", + "log", + "madsim-tokio", + "madsim-tonic", + "memchr", + "opentelemetry_sdk", + "predicates", + "rand", + "serde", + "serde_json", + "sha2", + "smallvec", + "syn 2.0.79", + "sync_wrapper 1.0.1", + "time", + "tokio", + "tokio-stream 0.1.16", + "tokio-util", + "tonic", + "tower 0.4.13", + "tower 0.5.1", + "tracing", + "tracing-log", + "tracing-subscriber", + "zeroize", ] [[package]] @@ -3277,176 +3902,176 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66534846dec7a11d7c50a74b7cdb208b9a581cad890b7866430d438455847c85" dependencies = [ - "bcder", - "bytes", - "chrono", - "der", - "hex", - "pem", - "ring", - "signature", - "spki", - "thiserror", - "zeroize", + "bcder", + "bytes", + "chrono", + "der", + "hex", + "pem", + "ring", + "signature", + "spki", + "thiserror", + "zeroize", ] [[package]] name = "xline" version = "0.6.1" dependencies = [ - "anyhow", - "async-stream", - "async-trait", - "axum", - "bytes", - "clap", - "clippy-utilities", - "crc32fast", - "crossbeam-skiplist", - "curp", - "curp-external-api", - "dashmap", - "engine", - "etcd-client", - "event-listener", - "flume", - "futures", - "hyper", - "itertools 0.13.0", - "jsonwebtoken", - "log", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "merged_range", - "mockall", - "nix", - "opentelemetry", - "opentelemetry-contrib", - "opentelemetry-otlp", - "opentelemetry-prometheus", - "opentelemetry_sdk", - "parking_lot", - "pbkdf2", - "priority-queue", - "prometheus", - "prost", - "rand", - "serde", - "sha2", - "strum", - "strum_macros", - "test-macros", - "tokio", - "tokio-stream 0.1.12", - "tokio-util", - "toml", - "tonic-health", - "tracing", - "tracing-appender", - "tracing-opentelemetry", - "tracing-subscriber", - "utils", - "uuid", - "workspace-hack", - "x509-certificate", - "xline-client", - "xline-test-utils", - "xlineapi", + "anyhow", + "async-stream", + "async-trait", + "axum", + "bytes", + "clap", + "clippy-utilities", + "crc32fast", + "crossbeam-skiplist", + "curp", + "curp-external-api", + "dashmap", + "engine", + "etcd-client", + "event-listener", + "flume", + "futures", + "hyper", + "itertools 0.13.0", + "jsonwebtoken", + "log", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "merged_range", + "mockall", + "nix", + "opentelemetry", + "opentelemetry-contrib", + "opentelemetry-otlp", + "opentelemetry-prometheus", + "opentelemetry_sdk", + "parking_lot", + "pbkdf2", + "priority-queue", + "prometheus", + "prost", + "rand", + "serde", + "sha2", + "strum", + "strum_macros", + "test-macros", + "tokio", + "tokio-stream 0.1.12", + "tokio-util", + "toml", + "tonic-health", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", + "utils", + "uuid", + "workspace-hack", + "x509-certificate", + "xline-client", + "xline-test-utils", + "xlineapi", ] [[package]] name = "xline-client" version = "0.1.0" dependencies = [ - "anyhow", - "async-dropper", - "async-trait", - "clippy-utilities", - "curp", - "futures", - "getrandom", - "http", - "madsim-tokio", - "madsim-tonic", - "madsim-tonic-build", - "prost", - "rand", - "test-macros", - "thiserror", - "tower 0.4.13", - "utils", - "workspace-hack", - "xline-test-utils", - "xlineapi", + "anyhow", + "async-dropper", + "async-trait", + "clippy-utilities", + "curp", + "futures", + "getrandom", + "http", + "madsim-tokio", + "madsim-tonic", + "madsim-tonic-build", + "prost", + "rand", + "test-macros", + "thiserror", + "tower 0.4.13", + "utils", + "workspace-hack", + "xline-test-utils", + "xlineapi", ] [[package]] name = "xline-test-utils" version = "0.1.0" dependencies = [ - "futures", - "madsim-tokio", - "madsim-tonic", - "rand", - "utils", - "workspace-hack", - "xline", - "xline-client", + "futures", + "madsim-tokio", + "madsim-tonic", + "rand", + "utils", + "workspace-hack", + "xline", + "xline-client", ] [[package]] name = "xlineapi" version = "0.1.0" dependencies = [ - "async-trait", - "curp", - "curp-external-api", - "itertools 0.13.0", - "madsim-tonic", - "madsim-tonic-build", - "prost", - "serde", - "strum", - "strum_macros", - "thiserror", - "utils", - "workspace-hack", + "async-trait", + "curp", + "curp-external-api", + "itertools 0.13.0", + "madsim-tonic", + "madsim-tonic-build", + "prost", + "serde", + "strum", + "strum_macros", + "thiserror", + "utils", + "workspace-hack", ] [[package]] name = "xlinectl" version = "0.1.0" dependencies = [ - "anyhow", - "clap", - "madsim-tonic", - "regex", - "serde", - "serde_json", - "shlex", - "tokio", - "utils", - "workspace-hack", - "xline-client", - "xlineapi", + "anyhow", + "clap", + "madsim-tonic", + "regex", + "serde", + "serde_json", + "shlex", + "tokio", + "utils", + "workspace-hack", + "xline-client", + "xlineapi", ] [[package]] name = "xlineutl" version = "0.1.0" dependencies = [ - "anyhow", - "clap", - "crc32fast", - "engine", - "serde", - "serde_json", - "tempfile", - "tokio", - "utils", - "workspace-hack", - "xline", + "anyhow", + "clap", + "crc32fast", + "engine", + "serde", + "serde_json", + "tempfile", + "tokio", + "utils", + "workspace-hack", + "xline", ] [[package]] @@ -3454,32 +4079,48 @@ name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = ["byteorder", "zerocopy-derive"] +dependencies = [ + "byteorder", + "zerocopy-derive", +] [[package]] name = "zerocopy-derive" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = ["zeroize_derive"] +dependencies = [ + "zeroize_derive", +] [[package]] name = "zeroize_derive" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = ["proc-macro2", "quote", "syn 2.0.79"] +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] [[package]] name = "zstd-sys" version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = ["cc", "pkg-config"] +dependencies = [ + "cc", + "pkg-config", +] From efe1cb34ada5f584b1f05c706a497296908c2e97 Mon Sep 17 00:00:00 2001 From: lxl66566 Date: Fri, 1 Nov 2024 01:13:19 +0800 Subject: [PATCH 4/4] feat(jepsen): update to newest jepsen-rs crate Signed-off-by: lxl66566 --- .gitmodules | 6 +- Cargo.lock | 68 +----- crates/jepsen-rs | 1 - crates/simulation/Cargo.toml | 2 +- crates/simulation/src/xline_group.rs | 260 +++++++++++++++++++-- crates/simulation/tests/it/jepsen/basic.rs | 19 +- crates/simulation/tests/it/xline.rs | 2 +- 7 files changed, 256 insertions(+), 102 deletions(-) delete mode 160000 crates/jepsen-rs diff --git a/.gitmodules b/.gitmodules index 9efeaae70..c7f0c33cd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,8 +3,4 @@ url = https://github.com/xline-kv/xline-proto.git [submodule "curp/proto/common"] path = crates/curp/proto/common - url = https://github.com/xline-kv/curp-proto.git -[submodule "crates/jepsen-rs"] - path = crates/jepsen-rs - url = https://github.com/lxl66566/jepsen-rs.git - branch = main + url = https://github.com/xline-kv/curp-proto.git \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 70d6dfd98..642a7447a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -968,19 +968,6 @@ dependencies = [ "workspace-hack", ] -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -1280,12 +1267,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - [[package]] name = "hex" version = "0.4.3" @@ -1347,12 +1328,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "hyper" version = "1.4.1" @@ -1495,17 +1470,6 @@ version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" -[[package]] -name = "is-terminal" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -dependencies = [ - "hermit-abi 0.4.0", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1570,6 +1534,7 @@ dependencies = [ [[package]] name = "jepsen-rs" version = "0.1.0" +source = "git+https://github.com/lxl66566/jepsen-rs.git?branch=nemesis#9134ff52a2ae5b1e8f92f302ea74f77553f6db76" dependencies = [ "anyhow", "async-recursion", @@ -1581,7 +1546,6 @@ dependencies = [ "madsim", "madsim-tokio", "once_cell", - "pretty_env_logger", "serde", "serde_json", "serde_with", @@ -1864,7 +1828,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi", "libc", "wasi", "windows-sys 0.52.0", @@ -2312,16 +2276,6 @@ dependencies = [ "termtree", ] -[[package]] -name = "pretty_env_logger" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" -dependencies = [ - "env_logger", - "log", -] - [[package]] name = "prettyplease" version = "0.2.22" @@ -3030,15 +2984,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "termtree" version = "0.4.1" @@ -3708,15 +3653,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" diff --git a/crates/jepsen-rs b/crates/jepsen-rs deleted file mode 160000 index ce07e5769..000000000 --- a/crates/jepsen-rs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ce07e5769cee731a87b89781882e8ae977c88893 diff --git a/crates/simulation/Cargo.toml b/crates/simulation/Cargo.toml index 5176698fb..61a34bd09 100644 --- a/crates/simulation/Cargo.toml +++ b/crates/simulation/Cargo.toml @@ -40,7 +40,7 @@ workspace-hack = { version = "0.1", path = "../../workspace-hack" } xline = { path = "../xline" } xline-client = { path = "../xline-client" } xlineapi = { path = "../xlineapi" } -jepsen-rs = { path = "../jepsen-rs" } +jepsen-rs = { git = "https://github.com/lxl66566/jepsen-rs.git", branch = "nemesis" } [build-dependencies] tonic-build = { version = "0.5.0", package = "madsim-tonic-build" } diff --git a/crates/simulation/src/xline_group.rs b/crates/simulation/src/xline_group.rs index 31bc2032f..a072287df 100644 --- a/crates/simulation/src/xline_group.rs +++ b/crates/simulation/src/xline_group.rs @@ -1,7 +1,8 @@ use std::{collections::HashMap, sync::Arc, time::Duration}; +use curp::rpc::{protocol_client::ProtocolClient, FetchClusterRequest, FetchClusterResponse}; use itertools::Itertools; -use jepsen_rs::client::ElleRwClusterClient; +use jepsen_rs::{client::ElleRwClusterClient, nemesis::implementation::NemesisCluster, op::Op}; use madsim::runtime::NodeHandle; use tonic::transport::Channel; use tracing::debug; @@ -14,7 +15,8 @@ use xline_client::{ error::XlineClientError, types::{ kv::{ - CompactionResponse, PutOptions, PutResponse, RangeOptions, RangeResponse, TxnRequest, + CompactionResponse, PutOptions, PutResponse, RangeOptions, RangeResponse, TxnOp, + TxnRequest, }, watch::{WatchOptions, WatchStreaming, Watcher}, }, @@ -25,6 +27,8 @@ use xlineapi::{ TxnResponse, WatchClient, }; +type ServerId = u64; + pub struct XlineNode { pub client_url: String, pub peer_url: String, @@ -34,6 +38,7 @@ pub struct XlineNode { pub struct XlineGroup { pub nodes: HashMap, + pub all_members: Vec, pub client_handle: NodeHandle, } @@ -42,6 +47,9 @@ impl XlineGroup { assert!(size >= 3, "the number of nodes must >= 3"); let handle = madsim::runtime::Handle::current(); + let all_members = (0..size) + .map(|x| format!("192.168.1.{}:2380", x + 1)) + .collect(); let all: HashMap<_, _> = (0..size) .map(|x| (format!("S{x}"), vec![format!("192.168.1.{}:2380", x + 1)])) .collect(); @@ -112,6 +120,7 @@ impl XlineGroup { madsim::time::sleep(Duration::from_secs(20)).await; Self { nodes, + all_members, client_handle, } } @@ -137,22 +146,174 @@ impl XlineGroup { } } + #[inline] pub fn get_node(&self, name: &str) -> &XlineNode { - self.nodes.get(name).unwrap() + self.nodes + .get(name) + .expect("no node with name {name} the simulator") + } + + /// Get the server node handle from ServerId + #[inline] + fn get_node_handle(&self, id: ServerId) -> NodeHandle { + self.get_node(id.to_string().as_str()).handle.clone() } - pub async fn crash(&mut self, name: &str) { + pub async fn try_get_leader(&self) -> Option<(ServerId, u64)> { + debug!("cluster trying to get leader"); + let mut leader = None; + let mut max_term = 0; + + let all_members = self.all_members.clone(); + self.client_handle + .spawn(async move { + for addr in all_members { + let addr = format!("http://{}", addr); + tracing::warn!("connecting to : {}", addr); + let mut client = if let Ok(client) = ProtocolClient::connect(addr.clone()).await + { + client + } else { + continue; + }; + + let FetchClusterResponse { + leader_id, term, .. + } = if let Ok(resp) = client.fetch_cluster(FetchClusterRequest::default()).await + { + resp.into_inner() + } else { + continue; + }; + if term > max_term { + max_term = term; + leader = leader_id; + } else if term == max_term && leader.is_none() { + leader = leader_id; + } + } + leader.map(|l| (l.into(), max_term)) + }) + .await + .unwrap() + } + + pub async fn get_leader(&self) -> (ServerId, u64) { + const RETRY_INTERVAL: u64 = 100; + loop { + if let Some(leader) = self.try_get_leader().await { + return leader; + } + debug!("failed to get leader"); + madsim::time::sleep(Duration::from_millis(RETRY_INTERVAL)).await; + } + } + + pub async fn crash(&self, name: impl AsRef + std::fmt::Display) { let handle = madsim::runtime::Handle::current(); - handle.kill(name); + handle.kill(name.as_ref()); madsim::time::sleep(Duration::from_secs(10)).await; - if !handle.is_exit(name) { + if !handle.is_exit(name.as_ref()) { panic!("failed to crash node: {name}"); } } - pub async fn restart(&mut self, name: &str) { + pub async fn restart(&self, name: impl AsRef) { + let handle = madsim::runtime::Handle::current(); + handle.restart(name.as_ref()); + } +} + +impl Drop for XlineGroup { + fn drop(&mut self) { + let handle = madsim::runtime::Handle::current(); + for node in self.nodes.values() { + handle.send_ctrl_c(node.handle.id()); + } + handle.send_ctrl_c(self.client_handle.id()); + for (name, node) in &self.nodes { + if !handle.is_exit(node.handle.id()) { + panic!("failed to graceful shutdown {name}"); + } + } + debug!("all nodes shutdowned"); + } +} + +#[async_trait::async_trait] +impl NemesisCluster for XlineGroup { + async fn kill(&self, servers: &[ServerId]) { + let handle = madsim::runtime::Handle::current(); + for id in servers { + handle.kill(id.to_string()); + } + madsim::time::sleep(Duration::from_secs(10)).await; + assert!( + servers.iter().all(|x| handle.is_exit(x.to_string())), + "failed to kill nodes: {servers:?}" + ); + } + async fn restart(&self, servers: &[ServerId]) { let handle = madsim::runtime::Handle::current(); - handle.restart(name); + for id in servers { + handle.restart(id.to_string()); + } + } + async fn pause(&self, servers: &[ServerId]) { + let handle = madsim::runtime::Handle::current(); + for id in servers { + handle.pause(id.to_string()); + } + } + async fn resume(&self, servers: &[ServerId]) { + let handle = madsim::runtime::Handle::current(); + for id in servers { + handle.resume(id.to_string()); + } + } + async fn get_leader_without_term(&self) -> ServerId { + self.get_leader().await.0 + } + /// clog link for both side. + fn clog_link_both(&self, fst: ServerId, snd: ServerId) { + let net = madsim::net::NetSim::current(); + let (fst, snd) = ( + self.get_node_handle(fst).id(), + self.get_node_handle(snd).id(), + ); + net.clog_link(fst, snd); + net.clog_link(snd, fst); + } + /// unclog link for both side. + fn unclog_link_both(&self, fst: ServerId, snd: ServerId) { + let net = madsim::net::NetSim::current(); + let (fst, snd) = ( + self.get_node_handle(fst).id(), + self.get_node_handle(snd).id(), + ); + net.unclog_link(fst, snd); + net.unclog_link(snd, fst); + } + /// clog link for one side. + fn clog_link_single(&self, fst: ServerId, snd: ServerId) { + let net = madsim::net::NetSim::current(); + let (fst, snd) = ( + self.get_node_handle(fst).id(), + self.get_node_handle(snd).id(), + ); + net.clog_link(fst, snd); + } + /// unclog link for one side. + fn unclog_link_single(&self, fst: ServerId, snd: ServerId) { + let net = madsim::net::NetSim::current(); + let (fst, snd) = ( + self.get_node_handle(fst).id(), + self.get_node_handle(snd).id(), + ); + net.unclog_link(fst, snd); + } + fn size(&self) -> usize { + return self.nodes.len(); } } @@ -244,21 +405,52 @@ impl ElleRwClusterClient for SimClient { .map_err(|err| err.to_string())?; Ok(()) } -} - -impl Drop for XlineGroup { - fn drop(&mut self) { - let handle = madsim::runtime::Handle::current(); - for node in self.nodes.values() { - handle.send_ctrl_c(node.handle.id()); - } - handle.send_ctrl_c(self.client_handle.id()); - for (name, node) in &self.nodes { - if !handle.is_exit(node.handle.id()) { - panic!("failed to graceful shutdown {name}"); - } - } - debug!("all nodes shutdowned"); + async fn txn(&self, ops: Vec) -> std::result::Result, String> { + let txn_op = ops + .clone() + .into_iter() + .map(|op| match op { + Op::Read(key, _value) => TxnOp::range(key.to_be_bytes(), None), + Op::Write(key, value) => TxnOp::put(key.to_be_bytes(), value.to_be_bytes(), None), + _ => unimplemented!("txn Ops should not contain Txn"), + }) + .collect::>(); + let txn = TxnRequest::new().when(&[]).and_then(txn_op).or_else(&[]); + let txn_response = self.txn(txn).await.map_err(|err| err.to_string())?; + assert!(txn_response.succeeded, "txn has no compare value"); + assert_eq!( + ops.len(), + txn_response.responses.len(), + "txn op and response mismatch" + ); + let res = txn_response + .responses + .into_iter() + .enumerate() + .filter_map(|(index, res)| { + res.response.map(|res| match res { + xlineapi::Response::ResponseRange(range) => { + let original_op = ops[index].clone(); + if range.kvs.len() == 0 { + // key not found, read nothing + return original_op; + } + let kv = range.kvs.into_iter().next().unwrap(); + Op::Read( + u64::from_be_bytes(kv.key.try_into().expect("key should be 8 bytes")), + Some(u64::from_be_bytes( + kv.value.try_into().expect("key should be 8 bytes"), + )), + ) + } + xlineapi::Response::ResponsePut(_) => { + ops[index].clone() // put operation + } + _ => unimplemented!("txn response should only contains range and put"), + }) + }) + .collect(); + Ok(res) } } @@ -414,3 +606,25 @@ impl SimEtcdClient { .unwrap() } } + +#[cfg(test)] +mod tests { + use super::*; + + #[madsim::test] + async fn test_sim_client_kv_op() -> Result<(), Box> { + let group = XlineGroup::new(5).await; + let client = group.client().await; + ElleRwClusterClient::put(&client, 1, 2).await?; + let res = ElleRwClusterClient::get(&client, 1).await?; + assert_eq!(res, Some(2)); + + let txn = vec![Op::Read(1, None), Op::Write(1, 3), Op::Read(1, None)]; + let res = ElleRwClusterClient::txn(&client, txn).await?; + assert_eq!( + res, + vec![Op::Read(1, Some(2)), Op::Write(1, 3), Op::Read(1, Some(3))] + ); + Ok(()) + } +} diff --git a/crates/simulation/tests/it/jepsen/basic.rs b/crates/simulation/tests/it/jepsen/basic.rs index de05f23ba..9f4927894 100644 --- a/crates/simulation/tests/it/jepsen/basic.rs +++ b/crates/simulation/tests/it/jepsen/basic.rs @@ -1,7 +1,12 @@ +use std::sync::Arc; + use jepsen_rs::{ client::{Client, JepsenClient}, - generator::{controller::GeneratorGroupStrategy, elle_rw::ElleRwGenerator, GeneratorGroup}, - op::Op, + generator::{ + controller::GeneratorGroupStrategy, elle_rw::ElleRwGenerator, GeneratorGroup, + NemesisRawGenWrapper, + }, + op::{nemesis::OpOrNemesis, Op}, }; use tracing::info; @@ -13,16 +18,20 @@ fn basic_test() { rt.set_allow_system_thread(true); rt.block_on(async move { - let group = XlineGroup::new(5).await; + let group = Arc::new(XlineGroup::new(5).await); let sim_client = group.client().await; - let jepsen_client = JepsenClient::new(sim_client, ElleRwGenerator::new().unwrap()); + let jepsen_client = JepsenClient::new( + group, + sim_client, + NemesisRawGenWrapper(Box::new(ElleRwGenerator::new().unwrap())), + ); let jepsen_client = Box::leak(jepsen_client.into()); info!("basic_test: client created"); // get generators, transform and merge them let g1 = jepsen_client .new_generator(100) - .filter(|o| matches!(o, Op::Txn(txn) if txn.len() == 1)) + .filter(|o| matches!(o, OpOrNemesis::Op(Op::Txn(txn)) if txn.len() == 1)) .await; let g2 = jepsen_client.new_generator(50); let g3 = jepsen_client.new_generator(50); diff --git a/crates/simulation/tests/it/xline.rs b/crates/simulation/tests/it/xline.rs index 2e9b48501..414bb4321 100644 --- a/crates/simulation/tests/it/xline.rs +++ b/crates/simulation/tests/it/xline.rs @@ -43,7 +43,7 @@ async fn watch_compacted_revision_should_receive_canceled_response() { #[madsim::test] async fn xline_members_restore() { init_logger(); - let mut group = XlineGroup::new(3).await; + let group = XlineGroup::new(3).await; let node = group.get_node("S1"); let addr = node.client_url.clone(); let mut client = SimEtcdClient::new(addr, group.client_handle.clone()).await;