mirror of
https://github.com/luxfi/consensus.git
synced 2026-09-24 00:26:58 +00:00
THE TOTAL. `Register` in `validator/registration.go` runs seven clauses, and this port had six. The seventh is `math.Add64` on the running weight: a set whose weights sum past what a `uint64` holds is refused entire, before any of it is admitted. Without it `total_stake` folded with `saturating_add` and `voted_stake` summed with `saturating_add`, so a set of four validators at 2^63 reported `u64::MAX` staked AND `u64::MAX` voted — and `u64::MAX > floor(2·u64::MAX/3)`. A certificate carrying HALF the stake cleared the two-thirds export floor, which is the rung a bridge reads. Clamping is what makes the two sides agree on a number neither can represent, so neither clamps any more. The set carries its total as a fact established at admission with `checked_add` — one source of truth, decided at the one place that still has a registration to refuse — and `voted_stake` is checked too: the voters are a subset of the members, so against a set this crate admitted the overflow is unreachable, and reaching it is evidence about the stake source rather than about the votes. `weighted_quasar` takes the same treatment: a vector with no representable total leaves by the same door as a zero total, since a plain sum WRAPS to a small total and sizes the count gate below the stake quorum it exists to anticipate. THE SET. `insert` admits one validator and reports on that one, which is a property no set can be built out of: a caller that inserts in a loop and logs what failed is left holding a set missing a member, with `n` short by one and the total short by that member's stake — the two numbers every threshold is read against, wrong, with nothing to say so. `ValidatorSet::register` is the port of Go's whole-set door: sorted by node id so which duplicate a set is refused on cannot depend on the order a caller built its input, and all-or-nothing because the set under construction is a local. `insert` stays for a membership change to a set already live, and now says so. THE BINDING. `pkg/typescript` path-depends on `pkg/rust` and could not compile: narrowing the node id from 32 bytes to 20 left two `NodeID::from([u8; 32])` calls with no impl. It is a 20-byte API now, and the 20 bytes come from 20-byte input — `arr[..20]` would reintroduce exactly the collision the narrowing exists to prevent, so a hex string of the wrong length is refused, never trimmed. The width is `size_of::<cert::NodeId>()`, taken from the core rather than restated, so it cannot drift again. `addValidator` also stopped discarding the core's answer, which reported a validator as added when the set had refused it. And the two crates are one workspace, because that is what they already were. Built separately they can disagree and did — nothing built both, so nothing noticed. `cargo test` at the root now builds both, which turns this class of break from a review finding into a compile error. It also surfaced two tests in the binding that had been failing unnoticed: they voted with unregistered ids, from before only members were counted. No signed byte moves. `canonical_vote_message` is untouched, the node id enters no signed message, and the Go corpus and the frozen `pop` vectors pass unchanged. Verified: 97 tests green (92 rust, 5 napi), clippy clean at the workspace root, the binding's 29 JS tests green against a linux build of it. Red's PoC — four validators of 2^63, two voting, read at QUASAR — returned `Ok(())` before and now dies at registration with `WeightOverflow`. Co-authored-by: Hanzo Dev <[email protected]>
955 lines
24 KiB
TOML
955 lines
24 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "aho-corasick"
|
|
version = "1.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
|
|
dependencies = [
|
|
"memchr",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anes"
|
|
version = "0.1.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
|
|
|
[[package]]
|
|
name = "anstyle"
|
|
version = "1.0.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
|
|
|
|
[[package]]
|
|
name = "arrayvec"
|
|
version = "0.7.8"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
|
|
|
|
[[package]]
|
|
name = "autocfg"
|
|
version = "1.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
|
|
[[package]]
|
|
name = "bindgen"
|
|
version = "0.70.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f"
|
|
dependencies = [
|
|
"bitflags",
|
|
"cexpr",
|
|
"clang-sys",
|
|
"itertools",
|
|
"log",
|
|
"prettyplease",
|
|
"proc-macro2",
|
|
"quote",
|
|
"regex",
|
|
"rustc-hash",
|
|
"shlex 1.3.0",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "bitflags"
|
|
version = "2.13.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
|
|
|
|
[[package]]
|
|
name = "blake3"
|
|
version = "1.8.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae"
|
|
dependencies = [
|
|
"arrayvec",
|
|
"cc",
|
|
"cfg-if",
|
|
"constant_time_eq",
|
|
"cpufeatures",
|
|
]
|
|
|
|
[[package]]
|
|
name = "blst"
|
|
version = "0.3.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe"
|
|
dependencies = [
|
|
"cc",
|
|
"glob",
|
|
"threadpool",
|
|
"zeroize",
|
|
]
|
|
|
|
[[package]]
|
|
name = "bumpalo"
|
|
version = "3.20.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
|
|
|
[[package]]
|
|
name = "cast"
|
|
version = "0.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
|
[[package]]
|
|
name = "cc"
|
|
version = "1.4.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
|
|
dependencies = [
|
|
"find-msvc-tools",
|
|
"shlex 2.0.1",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cexpr"
|
|
version = "0.6.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
|
dependencies = [
|
|
"nom",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
|
[[package]]
|
|
name = "ciborium"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
|
|
dependencies = [
|
|
"ciborium-io",
|
|
"ciborium-ll",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ciborium-io"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
|
|
|
|
[[package]]
|
|
name = "ciborium-ll"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
|
|
dependencies = [
|
|
"ciborium-io",
|
|
"half",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clang-sys"
|
|
version = "1.9.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a"
|
|
dependencies = [
|
|
"glob",
|
|
"libc",
|
|
"libloading",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap"
|
|
version = "4.6.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
|
|
dependencies = [
|
|
"clap_builder",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_builder"
|
|
version = "4.6.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
|
|
dependencies = [
|
|
"anstyle",
|
|
"clap_lex",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_lex"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
|
|
|
|
[[package]]
|
|
name = "cmake"
|
|
version = "0.1.58"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
|
|
dependencies = [
|
|
"cc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "constant_time_eq"
|
|
version = "0.4.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
|
|
|
|
[[package]]
|
|
name = "convert_case"
|
|
version = "0.6.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
|
|
dependencies = [
|
|
"unicode-segmentation",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cpufeatures"
|
|
version = "0.3.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "criterion"
|
|
version = "0.7.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928"
|
|
dependencies = [
|
|
"anes",
|
|
"cast",
|
|
"ciborium",
|
|
"clap",
|
|
"criterion-plot",
|
|
"itertools",
|
|
"num-traits",
|
|
"oorandom",
|
|
"plotters",
|
|
"rayon",
|
|
"regex",
|
|
"serde",
|
|
"serde_json",
|
|
"tinytemplate",
|
|
"walkdir",
|
|
]
|
|
|
|
[[package]]
|
|
name = "criterion-plot"
|
|
version = "0.6.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338"
|
|
dependencies = [
|
|
"cast",
|
|
"itertools",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-deque"
|
|
version = "0.8.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb"
|
|
dependencies = [
|
|
"crossbeam-epoch",
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-epoch"
|
|
version = "0.9.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f"
|
|
dependencies = [
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-utils"
|
|
version = "0.8.22"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
|
|
|
|
[[package]]
|
|
name = "crunchy"
|
|
version = "0.2.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
|
|
|
|
[[package]]
|
|
name = "ctor"
|
|
version = "0.2.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
|
|
dependencies = [
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "either"
|
|
version = "1.18.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
|
|
|
|
[[package]]
|
|
name = "find-msvc-tools"
|
|
version = "0.1.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
|
|
|
|
[[package]]
|
|
name = "futures-core"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
|
|
|
|
[[package]]
|
|
name = "futures-task"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
|
|
|
|
[[package]]
|
|
name = "futures-util"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
|
|
dependencies = [
|
|
"futures-core",
|
|
"futures-task",
|
|
"pin-project-lite",
|
|
"slab",
|
|
]
|
|
|
|
[[package]]
|
|
name = "glob"
|
|
version = "0.3.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b"
|
|
|
|
[[package]]
|
|
name = "half"
|
|
version = "2.7.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"crunchy",
|
|
"zerocopy",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hermit-abi"
|
|
version = "0.5.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284"
|
|
|
|
[[package]]
|
|
name = "hex"
|
|
version = "0.4.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
|
|
|
[[package]]
|
|
name = "itertools"
|
|
version = "0.13.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
|
|
dependencies = [
|
|
"either",
|
|
]
|
|
|
|
[[package]]
|
|
name = "itoa"
|
|
version = "1.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
|
[[package]]
|
|
name = "js-sys"
|
|
version = "0.3.104"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"futures-util",
|
|
"wasm-bindgen",
|
|
]
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.189"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
|
|
[[package]]
|
|
name = "libloading"
|
|
version = "0.8.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "log"
|
|
version = "0.4.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
|
|
|
|
[[package]]
|
|
name = "lux-consensus"
|
|
version = "1.22.4"
|
|
dependencies = [
|
|
"blake3",
|
|
"blst",
|
|
"criterion",
|
|
"hex",
|
|
"libc",
|
|
"mlx-sys",
|
|
"rayon",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "lux-consensus-napi"
|
|
version = "1.22.1"
|
|
dependencies = [
|
|
"hex",
|
|
"lux-consensus",
|
|
"napi",
|
|
"napi-build",
|
|
"napi-derive",
|
|
"serde",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "memchr"
|
|
version = "2.8.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
|
|
[[package]]
|
|
name = "minimal-lexical"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
|
|
|
[[package]]
|
|
name = "mlx-sys"
|
|
version = "0.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "af33a6b662998e5bb4099b1a191b4352fcb11d97706e82e4c8922fe200bb11f2"
|
|
dependencies = [
|
|
"bindgen",
|
|
"cc",
|
|
"cmake",
|
|
]
|
|
|
|
[[package]]
|
|
name = "napi"
|
|
version = "2.16.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3"
|
|
dependencies = [
|
|
"bitflags",
|
|
"ctor",
|
|
"napi-derive",
|
|
"napi-sys",
|
|
"once_cell",
|
|
"serde",
|
|
"serde_json",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "napi-build"
|
|
version = "2.4.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "60fdf9b392c50e7c4170fa633bd909490ed7835cea4c046776d1a4dd8d2ae0ab"
|
|
|
|
[[package]]
|
|
name = "napi-derive"
|
|
version = "2.16.13"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"convert_case",
|
|
"napi-derive-backend",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "napi-derive-backend"
|
|
version = "1.0.75"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf"
|
|
dependencies = [
|
|
"convert_case",
|
|
"once_cell",
|
|
"proc-macro2",
|
|
"quote",
|
|
"regex",
|
|
"semver",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "napi-sys"
|
|
version = "2.4.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3"
|
|
dependencies = [
|
|
"libloading",
|
|
]
|
|
|
|
[[package]]
|
|
name = "nom"
|
|
version = "7.1.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
|
dependencies = [
|
|
"memchr",
|
|
"minimal-lexical",
|
|
]
|
|
|
|
[[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.17.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
|
|
dependencies = [
|
|
"hermit-abi",
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "once_cell"
|
|
version = "1.21.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
|
|
[[package]]
|
|
name = "oorandom"
|
|
version = "11.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
|
|
|
|
[[package]]
|
|
name = "pin-project-lite"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
|
|
[[package]]
|
|
name = "plotters"
|
|
version = "0.3.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
|
|
dependencies = [
|
|
"num-traits",
|
|
"plotters-backend",
|
|
"plotters-svg",
|
|
"wasm-bindgen",
|
|
"web-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "plotters-backend"
|
|
version = "0.3.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
|
|
|
|
[[package]]
|
|
name = "plotters-svg"
|
|
version = "0.3.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670"
|
|
dependencies = [
|
|
"plotters-backend",
|
|
]
|
|
|
|
[[package]]
|
|
name = "prettyplease"
|
|
version = "0.2.37"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.107"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.47"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rayon"
|
|
version = "1.12.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
|
|
dependencies = [
|
|
"either",
|
|
"rayon-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rayon-core"
|
|
version = "1.13.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
|
|
dependencies = [
|
|
"crossbeam-deque",
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "regex"
|
|
version = "1.13.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
|
|
dependencies = [
|
|
"aho-corasick",
|
|
"memchr",
|
|
"regex-automata",
|
|
"regex-syntax",
|
|
]
|
|
|
|
[[package]]
|
|
name = "regex-automata"
|
|
version = "0.4.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
|
|
dependencies = [
|
|
"aho-corasick",
|
|
"memchr",
|
|
"regex-syntax",
|
|
]
|
|
|
|
[[package]]
|
|
name = "regex-syntax"
|
|
version = "0.8.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
|
|
|
[[package]]
|
|
name = "rustc-hash"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
|
|
[[package]]
|
|
name = "rustversion"
|
|
version = "1.0.23"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
|
|
[[package]]
|
|
name = "same-file"
|
|
version = "1.0.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
|
dependencies = [
|
|
"winapi-util",
|
|
]
|
|
|
|
[[package]]
|
|
name = "semver"
|
|
version = "1.0.28"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
|
|
|
[[package]]
|
|
name = "serde"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
dependencies = [
|
|
"serde_core",
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_core"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
dependencies = [
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_derive"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 3.0.4",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_json"
|
|
version = "1.0.151"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
dependencies = [
|
|
"itoa",
|
|
"memchr",
|
|
"serde",
|
|
"serde_core",
|
|
"zmij",
|
|
]
|
|
|
|
[[package]]
|
|
name = "shlex"
|
|
version = "1.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
|
|
[[package]]
|
|
name = "shlex"
|
|
version = "2.0.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
|
|
[[package]]
|
|
name = "slab"
|
|
version = "0.4.12"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "2.0.119"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "3.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "threadpool"
|
|
version = "1.8.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
|
|
dependencies = [
|
|
"num_cpus",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tinytemplate"
|
|
version = "1.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
|
|
dependencies = [
|
|
"serde",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tokio"
|
|
version = "1.53.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed"
|
|
dependencies = [
|
|
"pin-project-lite",
|
|
]
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "unicode-segmentation"
|
|
version = "1.13.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
|
|
|
|
[[package]]
|
|
name = "walkdir"
|
|
version = "2.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
|
dependencies = [
|
|
"same-file",
|
|
"winapi-util",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen"
|
|
version = "0.2.127"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"once_cell",
|
|
"rustversion",
|
|
"wasm-bindgen-macro",
|
|
"wasm-bindgen-shared",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen-macro"
|
|
version = "0.2.127"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1"
|
|
dependencies = [
|
|
"quote",
|
|
"wasm-bindgen-macro-support",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen-macro-support"
|
|
version = "0.2.127"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284"
|
|
dependencies = [
|
|
"bumpalo",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
"wasm-bindgen-shared",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen-shared"
|
|
version = "0.2.127"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "web-sys"
|
|
version = "0.3.104"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30"
|
|
dependencies = [
|
|
"js-sys",
|
|
"wasm-bindgen",
|
|
]
|
|
|
|
[[package]]
|
|
name = "winapi-util"
|
|
version = "0.1.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
dependencies = [
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "windows-link"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
|
|
[[package]]
|
|
name = "windows-sys"
|
|
version = "0.61.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
dependencies = [
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zerocopy"
|
|
version = "0.8.56"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
|
|
dependencies = [
|
|
"zerocopy-derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zerocopy-derive"
|
|
version = "0.8.56"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zeroize"
|
|
version = "1.9.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
|
|
dependencies = [
|
|
"zeroize_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zeroize_derive"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zmij"
|
|
version = "1.0.23"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|