From 5868f64ab9f591de61cd0ac39a22ff57e62b6871 Mon Sep 17 00:00:00 2001 From: Assaf Vayner Date: Mon, 20 Apr 2026 14:49:48 -0700 Subject: [PATCH] fixing some issues identified in cargo audit (#802) CI for hf-hub is running cargo audit and found many issues through hf-xet transitive deps. this PR attempts to solve some of them (not necessarily all of them). Main changes: - dropped derivative and reqwest-retry - replaced bincode with postcard, only used in testing - upgrade xet-core rand usage - added audit CI step and ignoring some issues that we can't easily fix. --- > [!NOTE] > **Medium Risk** > Medium risk because it removes `reqwest-retry`/`derivative` and replaces part of the retry classification logic with an in-house equivalent, which could subtly change HTTP retry behavior; the remaining changes are dependency/version bumps and test-only serialization swaps. > > **Overview** > Adds a new CI `cargo audit` job and introduces `.cargo/audit.toml` to ignore a small set of **dev-only** RustSec advisories with documented rationale. > > Reduces audit surface by dropping `derivative` (manual `Debug` impl for `AuthConfig`) and removing `reqwest-retry`, replacing its status-code classification with a local `Retryable` enum + `default_on_request_success` helper in `RetryWrapper`. > > Updates workspace deps (notably `rand` to `0.10` and `rand_distr` to `0.6`) and adjusts call sites to the newer `rand` APIs (`RngExt` imports, minor test/bench tweaks). Test-only binary serialization switches from `bincode` to `postcard` (and updates affected tests), with corresponding lockfile updates across crates. > > Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 26377f4a1cf52e95fe6b780823e26005dfa4f9ee. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot). --- .cargo/audit.toml | 22 ++ .github/workflows/ci.yml | 12 + Cargo.lock | 334 ++++++++++-------- Cargo.toml | 9 +- .../update_260330_token_refresh_url.md | 22 +- hf_xet/Cargo.lock | 254 ++++--------- simulation/chunk_cache_bench/Cargo.lock | 189 ++++------ .../upload_simulation_client.rs | 2 +- wasm/hf_xet_thin_wasm/Cargo.lock | 257 ++++---------- wasm/hf_xet_wasm/Cargo.lock | 263 ++++---------- xet_client/Cargo.toml | 2 - .../adaptive_concurrency/rtt_prediction.rs | 6 +- xet_client/src/cas_client/auth.rs | 14 +- xet_client/src/cas_client/retry_wrapper.rs | 26 +- .../src/cas_client/simulation/local_client.rs | 2 +- .../local_server/latency_simulation.rs | 2 +- .../cas_client/simulation/memory_client.rs | 2 +- .../bandwidth_limit_router.rs | 2 +- .../simulation/simulation_client.rs | 2 +- xet_client/src/chunk_cache/disk/test_utils.rs | 2 +- xet_core_structures/Cargo.toml | 4 +- .../benches/bg_split_regroup_bench.rs | 2 +- .../benches/compression_bench.rs | 2 +- .../src/merklehash/data_hash.rs | 2 +- .../src/merklehash/merkle_hash_subtree.rs | 14 +- .../src/merklehash/passthrough_hashmap.rs | 8 +- .../src/metadata_shard/shard_benchmark.rs | 8 +- .../src/metadata_shard/shard_format.rs | 2 +- .../src/metadata_shard/streaming_shard.rs | 2 +- .../src/xorb_object/byte_grouping/bg4.rs | 2 +- .../byte_grouping/bg4_prediction.rs | 2 +- .../collect_compression_stats.rs | 2 +- .../src/xorb_object/compression_scheme.rs | 2 +- .../xorb_chunk_format/deserialize_async.rs | 2 +- .../src/xorb_object/xorb_object_format.rs | 2 +- xet_data/Cargo.toml | 2 +- xet_data/src/deduplication/chunking.rs | 2 +- xet_data/src/processing/data_client.rs | 4 +- xet_data/src/processing/sha256.rs | 2 +- xet_pkg/Cargo.toml | 2 +- xet_pkg/src/xet_session/session.rs | 15 +- .../src/file_utils/safe_file_creator.rs | 2 +- 42 files changed, 614 insertions(+), 895 deletions(-) create mode 100644 .cargo/audit.toml diff --git a/.cargo/audit.toml b/.cargo/audit.toml new file mode 100644 index 00000000..3282b842 --- /dev/null +++ b/.cargo/audit.toml @@ -0,0 +1,22 @@ +# cargo audit configuration +# Docs: https://docs.rs/cargo-audit/latest/cargo_audit/config/index.html +# +# Add RUSTSEC IDs to `ignore` below when an advisory applies only to +# dev-dependencies (cargo audit can't distinguish dev vs normal deps on its +# own since Cargo.lock doesn't carry that info). +# +# To confirm a crate is reachable only via dev/build edges: +# cargo tree --invert --edges=normal +# If that prints nothing, the advisory is dev-only and safe to ignore here. +# Always include a comment explaining why each entry is ignored. + +[advisories] +ignore = [ + "RUSTSEC-2026-0074", # libcrux-sha3 0.0.4 — dev-only via russh (ssh for git_xet integration tests) + "RUSTSEC-2023-0071", # rsa 0.9.10 — dev-only via russh (ssh for git_xet integration tests) + "RUSTSEC-2025-0052", # async-std discontinued — dev-only via russh → libcrux + "RUSTSEC-2023-0089", # atomic-polyfill unmaintained — dev-only + "RUSTSEC-2024-0375", # atty unmaintained — dev-only + "RUSTSEC-2021-0145", # atty potential unaligned read — dev-only + "RUSTSEC-2026-0097", # rand unsound with custom `log` feature — `log` feature not enabled in our tree (rand 0.8.5 and rand 0.9.2 both dev-only via russh → libcrux) +] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6c519ed..a14c58a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -125,3 +125,15 @@ jobs: run: | # the build steps would update Cargo.lock if it is out of date test -z "$(git status --porcelain Cargo.lock)" || (echo "hf_xet_wasm Cargo.lock has uncommitted changes!" && exit 1) + cargo-audit: + name: Cargo Audit + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # master + with: + toolchain: 1.94.1 + - name: Install cargo-audit + run: cargo install --locked cargo-audit + - name: Run cargo audit + run: cargo audit -D warnings diff --git a/Cargo.lock b/Cargo.lock index 66a62d30..15e86753 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if 1.0.4", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -140,7 +140,7 @@ checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" dependencies = [ "base64ct", "blake2", - "cpufeatures", + "cpufeatures 0.2.17", "password-hash", ] @@ -355,7 +355,16 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", ] [[package]] @@ -501,15 +510,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -542,7 +542,7 @@ dependencies = [ "cc", "cfg-if 1.0.4", "constant_time_eq", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -683,7 +683,18 @@ checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if 1.0.4", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", +] + +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if 1.0.4", + "cpufeatures 0.3.0", + "rand_core 0.10.1", ] [[package]] @@ -779,7 +790,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -806,6 +817,15 @@ dependencies = [ "cc", ] +[[package]] +name = "cobs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror 2.0.18", +] + [[package]] name = "colorchoice" version = "1.0.5" @@ -962,6 +982,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -1009,6 +1038,12 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1124,7 +1159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest", "fiat-crypto", @@ -1141,7 +1176,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1176,7 +1211,7 @@ checksum = "780eb241654bf097afb00fc5f054a09b687dad862e485fdcf8399bb056565370" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1199,17 +1234,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.10.7" @@ -1251,7 +1275,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1347,6 +1371,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -1356,7 +1392,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1557,7 +1593,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1663,6 +1699,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", "wasm-bindgen", @@ -1706,7 +1743,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1805,6 +1842,15 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1847,7 +1893,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1906,6 +1952,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0049b265b7f201ca9ab25475b22b47fe444060126a51abe00f77d986fc5cc52e" +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -1962,7 +2022,7 @@ dependencies = [ "tokio-util", "tracing", "tracing-subscriber", - "ulid", + "uuid", "wiremock", "xet-client", "xet-core-structures", @@ -2481,7 +2541,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2809,7 +2869,7 @@ dependencies = [ "cfg-if 1.0.4", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3029,7 +3089,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3235,7 +3295,7 @@ checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3353,7 +3413,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3365,7 +3425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3376,6 +3436,19 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +[[package]] +name = "postcard" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "heapless", + "serde", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -3433,7 +3506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] @@ -3464,7 +3537,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3496,7 +3569,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3554,7 +3627,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3567,7 +3640,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3668,6 +3741,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +dependencies = [ + "chacha20 0.10.0", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -3707,13 +3791,19 @@ dependencies = [ ] [[package]] -name = "rand_distr" -version = "0.5.1" +name = "rand_core" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_distr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d431c2703ccf129de4d45253c03f49ebb22b97d6ad79ee3ecfc7e3f4862c1d8" dependencies = [ "num-traits", - "rand 0.9.2", + "rand 0.10.1", ] [[package]] @@ -3851,36 +3941,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "reqwest-retry" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2412db2af7d2268e7a5406be0431f37d9eb67ff390f35b395716f5f06c2eaa" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "getrandom 0.2.17", - "http", - "hyper", - "reqwest", - "reqwest-middleware", - "retry-policies", - "thiserror 2.0.18", - "tokio", - "tracing", - "wasmtimer", -] - -[[package]] -name = "retry-policies" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a4bd6027df676bcb752d3724db0ea3c0c5fc1dd0376fec51ac7dcaf9cc69be" -dependencies = [ - "rand 0.9.2", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -4116,9 +4176,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.10" +version = "0.103.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" +checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06" dependencies = [ "aws-lc-rs", "ring", @@ -4273,7 +4333,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4318,7 +4378,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4356,7 +4416,7 @@ checksum = "0a7d91949b85b0d2fb687445e448b40d322b6b3e4af6b44a29b21d9a5f33e6d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4366,7 +4426,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4377,7 +4437,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "digest", "sha2-asm", ] @@ -4465,7 +4525,7 @@ dependencies = [ "clap 4.6.0", "http", "humantime", - "rand 0.9.2", + "rand 0.10.1", "reqwest", "reqwest-middleware", "serde", @@ -4524,6 +4584,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -4544,7 +4607,7 @@ dependencies = [ "aes", "aes-gcm", "cbc", - "chacha20", + "chacha20 0.9.1", "cipher", "ctr", "poly1305", @@ -4616,7 +4679,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4625,17 +4688,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.117" @@ -4664,7 +4716,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4768,7 +4820,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4779,7 +4831,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4875,7 +4927,7 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4903,7 +4955,7 @@ checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4918,12 +4970,12 @@ dependencies = [ [[package]] name = "tokio-retry" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "40f644c762e9d396831ae2f8935c954b0d758c4532e924bead0f666d0c1c8640" dependencies = [ - "pin-project", - "rand 0.8.5", + "pin-project-lite", + "rand 0.10.1", "tokio", ] @@ -5082,7 +5134,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5155,7 +5207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad06847b7afb65c7866a36664b75c40b895e318cea4f71299f013fb22965329d" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5182,16 +5234,6 @@ version = "1.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" -[[package]] -name = "ulid" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" -dependencies = [ - "rand 0.9.2", - "web-time", -] - [[package]] name = "unicode-ident" version = "1.0.24" @@ -5410,7 +5452,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] @@ -5470,20 +5512,6 @@ dependencies = [ "semver", ] -[[package]] -name = "wasmtimer" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - [[package]] name = "web-sys" version = "0.3.91" @@ -5610,7 +5638,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5621,7 +5649,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5953,7 +5981,7 @@ dependencies = [ "heck", "indexmap 2.13.0", "prettyplease", - "syn 2.0.117", + "syn", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -5969,7 +5997,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -6030,7 +6058,6 @@ dependencies = [ "clap 4.6.0", "crc32fast", "ctor", - "derivative", "futures", "futures-util", "http", @@ -6041,12 +6068,11 @@ dependencies = [ "lazy_static", "mockall", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "rand_distr", "redb", "reqwest", "reqwest-middleware", - "reqwest-retry", "serde", "serde_json", "serde_repr", @@ -6073,7 +6099,6 @@ version = "1.5.1" dependencies = [ "async-trait", "base64 0.22.1", - "bincode", "blake3", "bytemuck", "bytes", @@ -6089,7 +6114,8 @@ dependencies = [ "lazy_static", "lz4_flex", "more-asserts", - "rand 0.9.2", + "postcard", + "rand 0.10.1", "regex", "safe-transmute", "serde", @@ -6124,7 +6150,7 @@ dependencies = [ "lazy_static", "more-asserts", "pyo3", - "rand 0.9.2", + "rand 0.10.1", "regex", "serde", "serde_json", @@ -6136,8 +6162,8 @@ dependencies = [ "tokio-util", "tracing", "tracing-test", - "ulid", "url", + "uuid", "walkdir", "xet-client", "xet-core-structures", @@ -6168,7 +6194,7 @@ dependencies = [ "oneshot", "pin-project", "pyo3", - "rand 0.9.2", + "rand 0.10.1", "reqwest", "serde", "serde_json", @@ -6206,7 +6232,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -6227,7 +6253,7 @@ checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -6247,7 +6273,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -6268,7 +6294,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -6301,7 +6327,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 4af6413c..4be097ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ async-std = "1" async-trait = "0.1" axum = "0.8" base64 = "0.22" -bincode = "1.3" +postcard = { version = "1.1", features = ["alloc"] } bitflags = { version = "2.10", features = ["serde"] } blake3 = "1.8" bytemuck = "1" @@ -53,7 +53,6 @@ countio = { version = "0.3", features = ["futures"] } crc32fast = "1.5" csv = "1" ctor = "0.6" -derivative = "2.2" dirs = "6.0" futures = "0.3" humantime = "2.1" @@ -79,7 +78,7 @@ more-asserts = "0.3" oneshot = "0.1" pin-project = "1" pyo3 = { version = "0.26", features = ["abi3-py37", "multiple-pymethods"] } -rand = "0.9" +rand = "0.10" rand_chacha = "0.9" regex = "1" reqwest = { version = "0.13.1", features = [ @@ -89,7 +88,6 @@ reqwest = { version = "0.13.1", features = [ "socks", ], default-features = false } reqwest-middleware = "0.5" -reqwest-retry = "0.9" rust-netrc = "0.1" safe-transmute = "0.11" serde = { version = "1", features = ["derive"] } @@ -111,7 +109,6 @@ tracing = "0.1" tracing-appender = "0.2" tracing-log = "0.2" tracing-subscriber = { version = "0.3", features = ["json", "env-filter"] } -ulid = "1.2" url = "2.5" urlencoding = "2.1" uuid = "1" @@ -132,7 +129,7 @@ winapi = { version = "0.3", features = [ approx = "0.5" httpmock = "0.8" rand_core = "0.6" -rand_distr = "0.5" +rand_distr = "0.6" russh = "0.55" serial_test = "3" tracing-test = { version = "0.2", features = ["no-env-filter"] } diff --git a/api_changes/update_260330_token_refresh_url.md b/api_changes/update_260330_token_refresh_url.md index 9b732994..00496b58 100644 --- a/api_changes/update_260330_token_refresh_url.md +++ b/api_changes/update_260330_token_refresh_url.md @@ -45,31 +45,33 @@ pub fn new_file_download_group(&self) -> Result ⚠️ **Regression-prone.** This was fixed in PR #738 and regressed once already during -> a subsequent merge. A dedicated test (`test_session_id_is_ulid`) guards against it. -> Do **not** change `id: Ulid` back to `UniqueId` or any other type. +> a subsequent merge. A dedicated test (`test_session_id_is_uuid_v7`) guards against it. +> Do **not** change `id: Uuid` back to `UniqueId` or any other process-local type. -`XetSessionInner::id` is `ulid::Ulid` (crate `ulid = "1"`, in workspace `Cargo.toml`). +`XetSessionInner::id` is `uuid::Uuid` generated via `Uuid::now_v7()` (crate `uuid = "1"` +with the `v7` feature, in workspace `Cargo.toml`). ```rust // xet_pkg/src/xet_session/session.rs — XetSessionInner -pub(super) id: Ulid, // ← must stay Ulid +pub(super) id: Uuid, // ← must stay Uuid (v7) // constructed as: -id: Ulid::new(), +id: Uuid::now_v7(), ``` -`Ulid` values are globally unique across processes and machines (128-bit, time-ordered). +UUIDv7 values are globally unique across processes and machines (128-bit, time-ordered). The old `UniqueId` (`xet_runtime::utils::UniqueId`) was a process-local atomic `u64` and must **not** be used here. The guard test in `session.rs` is: ```rust #[test] -fn test_session_id_is_ulid() { +fn test_session_id_is_uuid_v7() { let s = XetSessionBuilder::new().build().unwrap(); - assert!(s.inner.id.to_string().parse::().is_ok()); + let parsed: uuid::Uuid = s.inner.id.to_string().parse().expect("session id must parse as Uuid"); + assert_eq!(parsed.get_version(), Some(uuid::Version::SortRand)); } ``` @@ -316,7 +318,7 @@ the group immediately without needing an explicit finalization call (unlike - `xet_runtime::error::RuntimeError` — added `ReqwestError` and `PoisonError` variants - `xet_runtime::core::XetRuntime::get_or_create_reqwest_client` — return type changed to `xet_runtime::Result` - `xet_client::error::ClientError` — added `From` -- `xet_pkg::xet_session::{session, common, upload_commit, file_download_group, download_stream_group, download_stream_handle}` — auth moved from session to per-commit/group builders; session-level `download_stream*` methods removed and replaced by `XetDownloadStreamGroup`; `XetSessionInner::id` changed to `Ulid`; the now-deleted `download_streams` module split into `download_stream_group` (`XetDownloadStreamGroup`, `DownloadStreamGroupBuilder`) and new `download_stream_handle` (`XetDownloadStream`, `XetUnorderedDownloadStream`) +- `xet_pkg::xet_session::{session, common, upload_commit, file_download_group, download_stream_group, download_stream_handle}` — auth moved from session to per-commit/group builders; session-level `download_stream*` methods removed and replaced by `XetDownloadStreamGroup`; `XetSessionInner::id` changed to `Uuid` (v7); the now-deleted `download_streams` module split into `download_stream_group` (`XetDownloadStreamGroup`, `DownloadStreamGroupBuilder`) and new `download_stream_handle` (`XetDownloadStream`, `XetUnorderedDownloadStream`) - `git_xet::token_refresher` — now a thin factory delegating to `xet_client` - `git_xet::app::xet_agent` — updated to call `new_git_token_refresher` - Legacy `hf_xet` Python functions (`upload_bytes`, `upload_files`, `download_files`) are **unchanged** diff --git a/hf_xet/Cargo.lock b/hf_xet/Cargo.lock index e1516481..5bf3e29f 100644 --- a/hf_xet/Cargo.lock +++ b/hf_xet/Cargo.lock @@ -142,7 +142,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -272,7 +272,7 @@ dependencies = [ "cc", "cfg-if 1.0.4", "constant_time_eq", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -355,6 +355,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if 1.0.4", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -399,7 +410,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -556,6 +567,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -645,17 +665,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.10.7" @@ -695,7 +704,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -742,7 +751,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -893,7 +902,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -981,6 +990,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", "wasm-bindgen", @@ -1009,7 +1019,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1091,7 +1101,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "ulid", + "uuid", "xet-client", "xet-core-structures", "xet-data", @@ -1540,7 +1550,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1886,7 +1896,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1932,29 +1942,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -1978,7 +1965,7 @@ checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2061,7 +2048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] @@ -2103,7 +2090,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2116,7 +2103,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2199,7 +2186,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2212,7 +2199,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2301,35 +2288,25 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "rand" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", ] [[package]] @@ -2342,15 +2319,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - [[package]] name = "rand_core" version = "0.9.5" @@ -2360,6 +2328,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "redb" version = "3.1.1" @@ -2369,15 +2343,6 @@ dependencies = [ "libc", ] -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.11.0", -] - [[package]] name = "redox_users" version = "0.5.2" @@ -2475,36 +2440,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "reqwest-retry" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2412db2af7d2268e7a5406be0431f37d9eb67ff390f35b395716f5f06c2eaa" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "getrandom 0.2.17", - "http", - "hyper", - "reqwest", - "reqwest-middleware", - "retry-policies", - "thiserror 2.0.18", - "tokio", - "tracing", - "wasmtimer", -] - -[[package]] -name = "retry-policies" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a4bd6027df676bcb752d3724db0ea3c0c5fc1dd0376fec51ac7dcaf9cc69be" -dependencies = [ - "rand 0.9.2", -] - [[package]] name = "rgb" version = "0.8.53" @@ -2726,7 +2661,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2750,7 +2685,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2760,7 +2695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "digest", "sha2-asm", ] @@ -2920,17 +2855,6 @@ dependencies = [ "symbolic-common", ] -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.117" @@ -2959,7 +2883,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3042,7 +2966,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3053,7 +2977,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3145,7 +3069,7 @@ checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3160,12 +3084,12 @@ dependencies = [ [[package]] name = "tokio-retry" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "40f644c762e9d396831ae2f8935c954b0d758c4532e924bead0f666d0c1c8640" dependencies = [ - "pin-project", - "rand 0.8.5", + "pin-project-lite", + "rand 0.10.1", "tokio", ] @@ -3323,7 +3247,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3402,16 +3326,6 @@ version = "1.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" -[[package]] -name = "ulid" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" -dependencies = [ - "rand 0.9.2", - "web-time", -] - [[package]] name = "unicode-ident" version = "1.0.24" @@ -3602,7 +3516,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] @@ -3662,20 +3576,6 @@ dependencies = [ "semver", ] -[[package]] -name = "wasmtimer" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - [[package]] name = "web-sys" version = "0.3.91" @@ -3802,7 +3702,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3813,7 +3713,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4122,7 +4022,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn 2.0.117", + "syn", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -4138,7 +4038,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -4196,17 +4096,15 @@ dependencies = [ "bytes", "clap", "crc32fast", - "derivative", "futures", "http", "hyper", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "redb", "reqwest", "reqwest-middleware", - "reqwest-retry", "serde", "serde_json", "serde_repr", @@ -4244,7 +4142,7 @@ dependencies = [ "lazy_static", "lz4_flex", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "regex", "safe-transmute", "serde", @@ -4273,7 +4171,7 @@ dependencies = [ "itertools 0.14.0", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "serde", "serde_json", "sha2", @@ -4282,8 +4180,8 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "ulid", "url", + "uuid", "walkdir", "xet-client", "xet-core-structures", @@ -4313,7 +4211,7 @@ dependencies = [ "oneshot", "pin-project", "pyo3", - "rand 0.9.2", + "rand 0.10.1", "reqwest", "serde", "serde_json", @@ -4348,7 +4246,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -4369,7 +4267,7 @@ checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4389,7 +4287,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -4429,7 +4327,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] diff --git a/simulation/chunk_cache_bench/Cargo.lock b/simulation/chunk_cache_bench/Cargo.lock index f9496c0b..302541f6 100644 --- a/simulation/chunk_cache_bench/Cargo.lock +++ b/simulation/chunk_cache_bench/Cargo.lock @@ -16,7 +16,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -143,7 +143,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -265,7 +265,7 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -366,6 +366,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -477,7 +488,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -635,6 +646,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc16" version = "0.4.0" @@ -813,17 +833,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive_more" version = "0.99.20" @@ -832,7 +841,7 @@ checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -897,7 +906,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1139,7 +1148,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1218,6 +1227,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", "wasm-bindgen", @@ -1240,7 +1250,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1761,7 +1771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2217,7 +2227,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2363,7 +2373,7 @@ checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2530,7 +2540,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] @@ -2681,6 +2691,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -2719,6 +2740,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "rayon" version = "1.11.0" @@ -2985,27 +3012,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "reqwest-retry" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2412db2af7d2268e7a5406be0431f37d9eb67ff390f35b395716f5f06c2eaa" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "getrandom 0.2.17", - "http", - "hyper", - "reqwest 0.13.2", - "reqwest-middleware", - "retry-policies", - "thiserror 2.0.18", - "tokio", - "tracing", - "wasmtimer", -] - [[package]] name = "retry" version = "2.2.0" @@ -3015,15 +3021,6 @@ dependencies = [ "rand 0.9.2", ] -[[package]] -name = "retry-policies" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a4bd6027df676bcb752d3724db0ea3c0c5fc1dd0376fec51ac7dcaf9cc69be" -dependencies = [ - "rand 0.9.2", -] - [[package]] name = "ring" version = "0.17.14" @@ -3452,7 +3449,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3476,7 +3473,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3507,7 +3504,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -3524,7 +3521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -3703,17 +3700,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.117" @@ -3742,7 +3728,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3855,7 +3841,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3866,7 +3852,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3978,7 +3964,7 @@ checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4019,12 +4005,12 @@ dependencies = [ [[package]] name = "tokio-retry" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "40f644c762e9d396831ae2f8935c954b0d758c4532e924bead0f666d0c1c8640" dependencies = [ - "pin-project", - "rand 0.8.5", + "pin-project-lite", + "rand 0.10.1", "tokio", ] @@ -4203,7 +4189,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4507,7 +4493,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] @@ -4580,20 +4566,6 @@ dependencies = [ "semver", ] -[[package]] -name = "wasmtimer" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - [[package]] name = "web-sys" version = "0.3.91" @@ -4741,7 +4713,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4752,7 +4724,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5151,7 +5123,7 @@ dependencies = [ "heck", "indexmap 2.13.0", "prettyplease", - "syn 2.0.117", + "syn", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -5167,7 +5139,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -5227,7 +5199,7 @@ dependencies = [ [[package]] name = "xet-client" -version = "1.4.0" +version = "1.5.1" dependencies = [ "anyhow", "async-trait", @@ -5235,17 +5207,15 @@ dependencies = [ "bytes", "clap 4.6.0", "crc32fast", - "derivative", "futures", "http", "hyper", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "redb", "reqwest 0.13.2", "reqwest-middleware", - "reqwest-retry", "serde", "serde_json", "serde_repr", @@ -5265,11 +5235,10 @@ dependencies = [ [[package]] name = "xet-core-structures" -version = "1.4.0" +version = "1.5.1" dependencies = [ "async-trait", "base64 0.22.1", - "bincode", "blake3", "bytemuck", "bytes", @@ -5279,13 +5248,12 @@ dependencies = [ "futures", "futures-util", "getrandom 0.4.2", - "half", "heapify", "itertools 0.14.0", "lazy_static", "lz4_flex", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "regex", "safe-transmute", "serde", @@ -5302,7 +5270,7 @@ dependencies = [ [[package]] name = "xet-runtime" -version = "1.4.0" +version = "1.5.1" dependencies = [ "anyhow", "async-trait", @@ -5313,7 +5281,6 @@ dependencies = [ "ctor", "dirs", "futures", - "futures-util", "git-version", "humantime", "konst", @@ -5322,7 +5289,7 @@ dependencies = [ "more-asserts", "oneshot", "pin-project", - "rand 0.9.2", + "rand 0.10.1", "reqwest 0.13.2", "serde", "serde_json", @@ -5357,7 +5324,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -5378,7 +5345,7 @@ checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5398,7 +5365,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -5438,7 +5405,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] diff --git a/simulation/src/upload_concurrency/upload_simulation_client.rs b/simulation/src/upload_concurrency/upload_simulation_client.rs index ba58452a..36515d5c 100644 --- a/simulation/src/upload_concurrency/upload_simulation_client.rs +++ b/simulation/src/upload_concurrency/upload_simulation_client.rs @@ -10,7 +10,7 @@ use anyhow::Result; use bytes::Bytes; use http::HeaderValue; use http::header::CONTENT_LENGTH; -use rand::Rng; +use rand::RngExt; use reqwest::Body; use serde::{Deserialize, Serialize}; use tokio::task::JoinSet; diff --git a/wasm/hf_xet_thin_wasm/Cargo.lock b/wasm/hf_xet_thin_wasm/Cargo.lock index 0457b17d..9cdacc83 100644 --- a/wasm/hf_xet_thin_wasm/Cargo.lock +++ b/wasm/hf_xet_thin_wasm/Cargo.lock @@ -105,7 +105,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -165,7 +165,7 @@ dependencies = [ "cc", "cfg-if 1.0.4", "constant_time_eq", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -242,6 +242,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if 1.0.4", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -286,7 +297,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -394,6 +405,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -474,17 +494,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.10.7" @@ -524,7 +533,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -659,7 +668,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -747,6 +756,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", "wasm-bindgen", @@ -769,7 +779,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1140,7 +1150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1219,15 +1229,6 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - [[package]] name = "log" version = "0.4.29" @@ -1372,29 +1373,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -1418,7 +1396,7 @@ checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1464,7 +1442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] @@ -1553,35 +1531,25 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "rand" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", ] [[package]] @@ -1594,15 +1562,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - [[package]] name = "rand_core" version = "0.9.5" @@ -1612,6 +1571,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "redb" version = "3.1.1" @@ -1621,15 +1586,6 @@ dependencies = [ "libc", ] -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - [[package]] name = "redox_users" version = "0.5.2" @@ -1724,36 +1680,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "reqwest-retry" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2412db2af7d2268e7a5406be0431f37d9eb67ff390f35b395716f5f06c2eaa" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "getrandom 0.2.17", - "http", - "hyper", - "reqwest", - "reqwest-middleware", - "retry-policies", - "thiserror 2.0.18", - "tokio", - "tracing", - "wasmtimer", -] - -[[package]] -name = "retry-policies" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a4bd6027df676bcb752d3724db0ea3c0c5fc1dd0376fec51ac7dcaf9cc69be" -dependencies = [ - "rand 0.9.2", -] - [[package]] name = "ring" version = "0.17.14" @@ -1898,12 +1824,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - [[package]] name = "security-framework" version = "3.7.0" @@ -1971,7 +1891,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1995,7 +1915,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2005,7 +1925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "digest", "sha2-asm", ] @@ -2101,17 +2021,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.117" @@ -2140,7 +2049,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2217,7 +2126,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2228,7 +2137,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2319,17 +2228,17 @@ checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "tokio-retry" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "40f644c762e9d396831ae2f8935c954b0d758c4532e924bead0f666d0c1c8640" dependencies = [ - "pin-project", - "rand 0.8.5", + "pin-project-lite", + "rand 0.10.1", "tokio", ] @@ -2432,7 +2341,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2511,16 +2420,6 @@ version = "1.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" -[[package]] -name = "ulid" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" -dependencies = [ - "rand 0.9.2", - "web-time", -] - [[package]] name = "unicode-ident" version = "1.0.24" @@ -2675,7 +2574,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] @@ -2710,7 +2609,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2771,20 +2670,6 @@ dependencies = [ "semver", ] -[[package]] -name = "wasmtimer" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - [[package]] name = "web-sys" version = "0.3.77" @@ -2909,7 +2794,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2920,7 +2805,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3229,7 +3114,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn 2.0.117", + "syn", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -3245,7 +3130,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -3303,17 +3188,15 @@ dependencies = [ "bytes", "clap", "crc32fast", - "derivative", "futures", "http", "hyper", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "redb", "reqwest", "reqwest-middleware", - "reqwest-retry", "serde", "serde_json", "serde_repr", @@ -3351,7 +3234,7 @@ dependencies = [ "lazy_static", "lz4_flex", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "regex", "safe-transmute", "serde", @@ -3380,7 +3263,7 @@ dependencies = [ "itertools", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "serde", "serde_json", "sha2", @@ -3389,8 +3272,8 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "ulid", "url", + "uuid", "walkdir", "xet-client", "xet-core-structures", @@ -3418,7 +3301,7 @@ dependencies = [ "more-asserts", "oneshot", "pin-project", - "rand 0.9.2", + "rand 0.10.1", "reqwest", "serde", "serde_json", @@ -3453,7 +3336,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -3474,7 +3357,7 @@ checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3494,7 +3377,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -3534,7 +3417,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] diff --git a/wasm/hf_xet_wasm/Cargo.lock b/wasm/hf_xet_wasm/Cargo.lock index e9a2bd2f..9b3363c1 100644 --- a/wasm/hf_xet_wasm/Cargo.lock +++ b/wasm/hf_xet_wasm/Cargo.lock @@ -105,7 +105,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -165,7 +165,7 @@ dependencies = [ "cc", "cfg-if 1.0.4", "constant_time_eq", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -242,6 +242,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if 1.0.4", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -286,7 +297,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -415,6 +426,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -495,17 +515,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.10.7" @@ -545,7 +554,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -703,7 +712,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -791,6 +800,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", "wasm-bindgen", @@ -813,7 +823,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1183,7 +1193,7 @@ checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1227,7 +1237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1306,15 +1316,6 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - [[package]] name = "log" version = "0.4.29" @@ -1469,29 +1470,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -1515,7 +1493,7 @@ checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1576,7 +1554,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] @@ -1665,35 +1643,25 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "rand" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", ] [[package]] @@ -1706,15 +1674,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - [[package]] name = "rand_core" version = "0.9.5" @@ -1724,6 +1683,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "redb" version = "3.1.1" @@ -1733,15 +1698,6 @@ dependencies = [ "libc", ] -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - [[package]] name = "redox_users" version = "0.5.2" @@ -1836,36 +1792,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "reqwest-retry" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2412db2af7d2268e7a5406be0431f37d9eb67ff390f35b395716f5f06c2eaa" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "getrandom 0.2.17", - "http", - "hyper", - "reqwest", - "reqwest-middleware", - "retry-policies", - "thiserror 2.0.18", - "tokio", - "tracing", - "wasmtimer", -] - -[[package]] -name = "retry-policies" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a4bd6027df676bcb752d3724db0ea3c0c5fc1dd0376fec51ac7dcaf9cc69be" -dependencies = [ - "rand 0.9.2", -] - [[package]] name = "ring" version = "0.17.14" @@ -2010,12 +1936,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - [[package]] name = "security-framework" version = "3.7.0" @@ -2083,7 +2003,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2107,7 +2027,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2117,7 +2037,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if 1.0.4", - "cpufeatures", + "cpufeatures 0.2.17", "digest", "sha2-asm", ] @@ -2213,17 +2133,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.117" @@ -2252,7 +2161,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2329,7 +2238,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2340,7 +2249,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2431,17 +2340,17 @@ checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "tokio-retry" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "40f644c762e9d396831ae2f8935c954b0d758c4532e924bead0f666d0c1c8640" dependencies = [ - "pin-project", - "rand 0.8.5", + "pin-project-lite", + "rand 0.10.1", "tokio", ] @@ -2489,7 +2398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d01145a2c788d6aae4cd653afec1e8332534d7d783d01897cefcafe4428de992" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2568,7 +2477,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2647,16 +2556,6 @@ version = "1.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" -[[package]] -name = "ulid" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" -dependencies = [ - "rand 0.9.2", - "web-time", -] - [[package]] name = "unicode-ident" version = "1.0.24" @@ -2811,7 +2710,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] @@ -2846,7 +2745,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2881,7 +2780,7 @@ checksum = "17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2943,20 +2842,6 @@ dependencies = [ "semver", ] -[[package]] -name = "wasmtimer" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - [[package]] name = "web-sys" version = "0.3.77" @@ -3081,7 +2966,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3092,7 +2977,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3401,7 +3286,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn 2.0.117", + "syn", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -3417,7 +3302,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -3475,17 +3360,15 @@ dependencies = [ "bytes", "clap", "crc32fast", - "derivative", "futures", "http", "hyper", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "redb", "reqwest", "reqwest-middleware", - "reqwest-retry", "serde", "serde_json", "serde_repr", @@ -3523,7 +3406,7 @@ dependencies = [ "lazy_static", "lz4_flex", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "regex", "safe-transmute", "serde", @@ -3552,7 +3435,7 @@ dependencies = [ "itertools", "lazy_static", "more-asserts", - "rand 0.9.2", + "rand 0.10.1", "serde", "serde_json", "sha2", @@ -3561,8 +3444,8 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "ulid", "url", + "uuid", "walkdir", "xet-client", "xet-core-structures", @@ -3590,7 +3473,7 @@ dependencies = [ "more-asserts", "oneshot", "pin-project", - "rand 0.9.2", + "rand 0.10.1", "reqwest", "serde", "serde_json", @@ -3625,7 +3508,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -3646,7 +3529,7 @@ checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3666,7 +3549,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -3706,7 +3589,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] diff --git a/xet_client/Cargo.toml b/xet_client/Cargo.toml index 7f5d04f1..b02363a8 100644 --- a/xet_client/Cargo.toml +++ b/xet_client/Cargo.toml @@ -24,7 +24,6 @@ base64 = { workspace = true } bytes = { workspace = true } clap = { workspace = true } crc32fast = { workspace = true } -derivative = { workspace = true } futures = { workspace = true } http = { workspace = true } lazy_static = { workspace = true } @@ -32,7 +31,6 @@ more-asserts = { workspace = true } rand = { workspace = true } reqwest = { workspace = true } reqwest-middleware = { workspace = true } -reqwest-retry = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } serde_repr = { workspace = true } diff --git a/xet_client/src/cas_client/adaptive_concurrency/rtt_prediction.rs b/xet_client/src/cas_client/adaptive_concurrency/rtt_prediction.rs index 89012141..bd05a250 100644 --- a/xet_client/src/cas_client/adaptive_concurrency/rtt_prediction.rs +++ b/xet_client/src/cas_client/adaptive_concurrency/rtt_prediction.rs @@ -334,7 +334,7 @@ mod tests { /// - duration: size_mb * 1.0 + noise seconds, where noise = std_dev * random_normal fn create_sample_pool(num_samples: usize, scale_std_dev: f64, seed: u64) -> Vec<(u64, Duration)> { use rand::rngs::StdRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; use rand_distr::{Distribution, Normal}; let mut rng = StdRng::seed_from_u64(seed); let normal = Normal::new(0.0, scale_std_dev).unwrap(); @@ -361,7 +361,7 @@ mod tests { /// Utility function to check if two models are approximately the same fn assert_models_similar(p1: &RTTPredictor, p2: &RTTPredictor, seed: u64) { use rand::rngs::StdRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; let mut rng = StdRng::seed_from_u64(seed); // Check regression models are similar @@ -625,7 +625,7 @@ mod tests { // Test predictions at various points (should be the same) use rand::rngs::StdRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; let mut rng = StdRng::seed_from_u64(100); for _ in 0..10 { let test_size_mb = rng.random_range(32.0..64.0); diff --git a/xet_client/src/cas_client/auth.rs b/xet_client/src/cas_client/auth.rs index 46496b8d..207e9d84 100644 --- a/xet_client/src/cas_client/auth.rs +++ b/xet_client/src/cas_client/auth.rs @@ -3,7 +3,6 @@ use std::sync::Arc; #[cfg(not(target_family = "wasm"))] use std::time::{SystemTime, UNIX_EPOCH}; -use derivative::Derivative; use reqwest_middleware::ClientWithMiddleware; use thiserror::Error; use tracing::info; @@ -136,18 +135,25 @@ impl TokenRefresher for DirectRefreshRouteTokenRefresher { } /// Shared configuration for token-based auth -#[derive(Clone, Derivative)] -#[derivative(Debug)] +#[derive(Clone)] pub struct AuthConfig { /// Initial token to use pub token: String, /// Initial token expiration time in epoch seconds pub token_expiration: u64, /// A function to refresh tokens. - #[derivative(Debug = "ignore")] pub token_refresher: Arc, } +impl Debug for AuthConfig { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("AuthConfig") + .field("token", &self.token) + .field("token_expiration", &self.token_expiration) + .finish_non_exhaustive() + } +} + impl AuthConfig { /// Builds a new AuthConfig from the indicated optional parameters. pub fn maybe_new( diff --git a/xet_client/src/cas_client/retry_wrapper.rs b/xet_client/src/cas_client/retry_wrapper.rs index 2840d9ae..2625a107 100644 --- a/xet_client/src/cas_client/retry_wrapper.rs +++ b/xet_client/src/cas_client/retry_wrapper.rs @@ -4,7 +4,6 @@ use std::time::Duration; use bytes::Bytes; use reqwest::{Error as ReqwestError, Response, StatusCode}; -use reqwest_retry::{Retryable, default_on_request_success}; use tokio::sync::Mutex; use tokio_retry::RetryIf; use tokio_retry::strategy::{ExponentialBackoff, jitter}; @@ -468,6 +467,31 @@ impl RetryWrapper { } } +/// Classifies a response status as retryable. +/// +/// Equivalent to `reqwest_retry::default_on_request_success`: +/// * 5XX (server error) -> Transient +/// * 408 / 429 -> Transient +/// * Other 4XX -> Fatal +/// * 2XX -> None +/// * Everything else -> Fatal +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Retryable { + Fatal, + Transient, +} + +pub fn default_on_request_success(success: &Response) -> Option { + let status = success.status(); + if status.is_server_error() || status == StatusCode::REQUEST_TIMEOUT || status == StatusCode::TOO_MANY_REQUESTS { + Some(Retryable::Transient) + } else if status.is_success() { + None + } else { + Some(Retryable::Fatal) + } +} + /// Like [request_middleware::default_on_request_failure], but retries all IOErrors instead of a /// subset. There are a few errors that can occur on certain systems that we will want to retry /// (e.g. `No buffer space available: (os error 55)`). diff --git a/xet_client/src/cas_client/simulation/local_client.rs b/xet_client/src/cas_client/simulation/local_client.rs index 66bed86a..3f31065b 100644 --- a/xet_client/src/cas_client/simulation/local_client.rs +++ b/xet_client/src/cas_client/simulation/local_client.rs @@ -10,7 +10,7 @@ use std::sync::{Arc, LazyLock, Mutex, Weak}; use anyhow::anyhow; use async_trait::async_trait; use bytes::Bytes; -use rand::Rng; +use rand::RngExt; use redb::{ReadableDatabase, ReadableTable, TableDefinition}; use tempfile::TempDir; use tokio::time::{Duration, Instant}; diff --git a/xet_client/src/cas_client/simulation/local_server/latency_simulation.rs b/xet_client/src/cas_client/simulation/local_server/latency_simulation.rs index 45210832..edb92a92 100644 --- a/xet_client/src/cas_client/simulation/local_server/latency_simulation.rs +++ b/xet_client/src/cas_client/simulation/local_server/latency_simulation.rs @@ -10,7 +10,7 @@ use std::time::Duration; use axum::http::StatusCode; use axum::response::{IntoResponse, Response}; -use rand::Rng; +use rand::RngExt; use rand::rngs::ThreadRng; use serde::{Deserialize, Serialize}; use tokio::sync::RwLock; diff --git a/xet_client/src/cas_client/simulation/memory_client.rs b/xet_client/src/cas_client/simulation/memory_client.rs index 5b92af4b..83a1a2de 100644 --- a/xet_client/src/cas_client/simulation/memory_client.rs +++ b/xet_client/src/cas_client/simulation/memory_client.rs @@ -6,7 +6,7 @@ use std::sync::atomic::{AtomicU16, AtomicU64, AtomicUsize, Ordering}; use async_trait::async_trait; use bytes::Bytes; -use rand::Rng; +use rand::RngExt; use tokio::sync::RwLock; use tokio::time::{Duration, Instant}; use tracing::{error, info}; diff --git a/xet_client/src/cas_client/simulation/network_simulation/bandwidth_limit_router.rs b/xet_client/src/cas_client/simulation/network_simulation/bandwidth_limit_router.rs index f7b04b14..dc8590e5 100644 --- a/xet_client/src/cas_client/simulation/network_simulation/bandwidth_limit_router.rs +++ b/xet_client/src/cas_client/simulation/network_simulation/bandwidth_limit_router.rs @@ -10,7 +10,7 @@ use std::sync::atomic::{AtomicBool, AtomicU64, Ordering}; use std::time::Duration; use bytes::Bytes; -use rand::Rng; +use rand::RngExt; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::net::{TcpListener, TcpStream}; use tokio::sync::{Mutex, Semaphore}; diff --git a/xet_client/src/cas_client/simulation/simulation_client.rs b/xet_client/src/cas_client/simulation/simulation_client.rs index 4450f61c..76dac275 100644 --- a/xet_client/src/cas_client/simulation/simulation_client.rs +++ b/xet_client/src/cas_client/simulation/simulation_client.rs @@ -9,7 +9,7 @@ use std::sync::Arc; use bytes::Bytes; use http::HeaderValue; use http::header::CONTENT_LENGTH; -use rand::Rng; +use rand::RngExt; use reqwest::{Body, Url}; use serde_json; diff --git a/xet_client/src/chunk_cache/disk/test_utils.rs b/xet_client/src/chunk_cache/disk/test_utils.rs index d037542c..4e5806a5 100644 --- a/xet_client/src/chunk_cache/disk/test_utils.rs +++ b/xet_client/src/chunk_cache/disk/test_utils.rs @@ -2,7 +2,7 @@ use std::path::Path; use rand::rngs::{StdRng, ThreadRng}; use rand::seq::SliceRandom; -use rand::{Rng, SeedableRng, rng}; +use rand::{Rng, RngExt, SeedableRng, rng}; use xet_core_structures::merklehash::MerkleHash; use crate::cas_types::{ChunkRange, Key}; diff --git a/xet_core_structures/Cargo.toml b/xet_core_structures/Cargo.toml index 85cd7cdb..3145effb 100644 --- a/xet_core_structures/Cargo.toml +++ b/xet_core_structures/Cargo.toml @@ -41,7 +41,7 @@ itertools = { workspace = true } lazy_static = { workspace = true } lz4_flex = { workspace = true } more-asserts = { workspace = true } -rand = { workspace = true, features = ["small_rng"] } +rand = { workspace = true } regex = { workspace = true } safe-transmute = { workspace = true } serde = { workspace = true } @@ -77,7 +77,7 @@ uuid = { workspace = true, features = ["v4", "js"] } web-time = { workspace = true } [dev-dependencies] -bincode = { workspace = true } +postcard = { workspace = true } futures-util = { workspace = true } half = { workspace = true } rand = { workspace = true } diff --git a/xet_core_structures/benches/bg_split_regroup_bench.rs b/xet_core_structures/benches/bg_split_regroup_bench.rs index 43891eb6..8957c9f0 100644 --- a/xet_core_structures/benches/bg_split_regroup_bench.rs +++ b/xet_core_structures/benches/bg_split_regroup_bench.rs @@ -1,6 +1,6 @@ use std::time::Instant; -use rand::Rng; +use rand::RngExt; use xet_core_structures::xorb_object::byte_grouping::bg4; // Benchmark results on Apple M2 Max diff --git a/xet_core_structures/benches/compression_bench.rs b/xet_core_structures/benches/compression_bench.rs index 20d54c15..ed618263 100644 --- a/xet_core_structures/benches/compression_bench.rs +++ b/xet_core_structures/benches/compression_bench.rs @@ -2,7 +2,7 @@ use std::mem::size_of; use std::time::Instant; use half::prelude::*; -use rand::Rng; +use rand::RngExt; use xet_core_structures::xorb_object::*; // Benchmark results on Apple M2 Max diff --git a/xet_core_structures/src/merklehash/data_hash.rs b/xet_core_structures/src/merklehash/data_hash.rs index f37fda38..6d5f84c1 100644 --- a/xet_core_structures/src/merklehash/data_hash.rs +++ b/xet_core_structures/src/merklehash/data_hash.rs @@ -13,7 +13,7 @@ use base64::engine::general_purpose::URL_SAFE_NO_PAD; #[cfg(not(target_family = "wasm"))] use bytemuck::{Pod, Zeroable}; use rand::rngs::SmallRng; -use rand::{RngCore, SeedableRng}; +use rand::{Rng, SeedableRng}; use safe_transmute::{transmute_to_bytes, transmute_to_bytes_mut}; use serde::{Deserialize, Serialize}; diff --git a/xet_core_structures/src/merklehash/merkle_hash_subtree.rs b/xet_core_structures/src/merklehash/merkle_hash_subtree.rs index cdc77641..1e4eb789 100644 --- a/xet_core_structures/src/merklehash/merkle_hash_subtree.rs +++ b/xet_core_structures/src/merklehash/merkle_hash_subtree.rs @@ -1002,7 +1002,7 @@ fn split_and_promote(nodes: &[Node], at_start: bool, at_end: bool, promoted: &mu #[cfg(test)] mod tests { use rand::rngs::SmallRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; use super::*; use crate::merklehash::xorb_hash; @@ -1621,7 +1621,7 @@ mod tests { #[test] #[cfg_attr(feature = "smoke-test", ignore)] - fn test_bincode_round_trip() { + fn test_postcard_round_trip() { let mut rng = SmallRng::seed_from_u64(42); for n in [0, 1, 5, 20, 100] { @@ -1629,8 +1629,8 @@ mod tests { let chunks = random_chunks(&mut rng, n); let original = MerkleHashSubtree::from_chunks(at_start, &chunks, at_end); - let bytes = bincode::serialize(&original).unwrap(); - let deserialized: MerkleHashSubtree = bincode::deserialize(&bytes).unwrap(); + let bytes = postcard::to_allocvec(&original).unwrap(); + let deserialized: MerkleHashSubtree = postcard::from_bytes(&bytes).unwrap(); assert_eq!(original.nodes, deserialized.nodes, "n={n}"); assert_eq!(original.levels, deserialized.levels, "n={n}"); @@ -1644,13 +1644,13 @@ mod tests { #[test] #[cfg_attr(feature = "smoke-test", ignore)] - fn test_bincode_smaller_than_json() { + fn test_postcard_smaller_than_json() { let mut rng = SmallRng::seed_from_u64(77); let chunks = random_chunks(&mut rng, 100); let r = MerkleHashSubtree::from_chunks(true, &chunks, true); let json_bytes = serde_json::to_string(&r).unwrap().len(); - let bin_bytes = bincode::serialize(&r).unwrap().len(); - assert!(bin_bytes < json_bytes, "bincode ({bin_bytes}) should be smaller than JSON ({json_bytes})"); + let bin_bytes = postcard::to_allocvec(&r).unwrap().len(); + assert!(bin_bytes < json_bytes, "postcard ({bin_bytes}) should be smaller than JSON ({json_bytes})"); } } diff --git a/xet_core_structures/src/merklehash/passthrough_hashmap.rs b/xet_core_structures/src/merklehash/passthrough_hashmap.rs index e7e6a15d..44a5bdf4 100644 --- a/xet_core_structures/src/merklehash/passthrough_hashmap.rs +++ b/xet_core_structures/src/merklehash/passthrough_hashmap.rs @@ -448,8 +448,8 @@ mod tests { table.insert(hash2, 20); table.insert(hash3, 30); - let serialized = bincode::serialize(&table).unwrap(); - let deserialized: MerkleHashMap = bincode::deserialize(&serialized).unwrap(); + let serialized = postcard::to_allocvec(&table).unwrap(); + let deserialized: MerkleHashMap = postcard::from_bytes(&serialized).unwrap(); assert_eq!(deserialized.len(), 3); assert_eq!(deserialized.get(&hash1), Some(&10)); @@ -461,8 +461,8 @@ mod tests { fn test_serialize_deserialize_empty() { let table: MerkleHashMap = MerkleHashMap::new(); - let serialized = bincode::serialize(&table).unwrap(); - let deserialized: MerkleHashMap = bincode::deserialize(&serialized).unwrap(); + let serialized = postcard::to_allocvec(&table).unwrap(); + let deserialized: MerkleHashMap = postcard::from_bytes(&serialized).unwrap(); assert!(deserialized.is_empty()); assert_eq!(deserialized.len(), 0); diff --git a/xet_core_structures/src/metadata_shard/shard_benchmark.rs b/xet_core_structures/src/metadata_shard/shard_benchmark.rs index 66b2fa2e..ab887b77 100644 --- a/xet_core_structures/src/metadata_shard/shard_benchmark.rs +++ b/xet_core_structures/src/metadata_shard/shard_benchmark.rs @@ -7,7 +7,7 @@ use std::time::{Duration, Instant}; use clap::Parser; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use tempfile::TempDir; use tokio::time; use xet_core_structures::merklehash::MerkleHash; @@ -92,14 +92,14 @@ async fn run_shard_benchmark( eprintln!("Worker {t:?} running."); loop { - let mut hash_val = rng.random(); + let base_hash_val: u64 = rng.random(); let mut file_info = Vec::::with_capacity(file_contiguity); let hit = rng.random_bool(block_hit_proportion); - for _ in 0..file_contiguity { + for i in 0..file_contiguity { + let hash_val = base_hash_val + i as u64; let h_seed = if hit { hash_val % top } else { hash_val }; - hash_val += 1; file_info.push(rng_hash(h_seed)); } diff --git a/xet_core_structures/src/metadata_shard/shard_format.rs b/xet_core_structures/src/metadata_shard/shard_format.rs index fceddaa1..0e2b6435 100644 --- a/xet_core_structures/src/metadata_shard/shard_format.rs +++ b/xet_core_structures/src/metadata_shard/shard_format.rs @@ -1210,7 +1210,7 @@ pub mod test_routines { use std::mem::size_of; use rand::rngs::{SmallRng, StdRng}; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; use super::super::file_structs::{FileDataSequenceEntry, FileDataSequenceHeader, FileMetadataExt, MDBFileInfo}; use super::super::shard_format::MDBShardInfo; diff --git a/xet_core_structures/src/metadata_shard/streaming_shard.rs b/xet_core_structures/src/metadata_shard/streaming_shard.rs index 2a9f4979..dc9b3741 100644 --- a/xet_core_structures/src/metadata_shard/streaming_shard.rs +++ b/xet_core_structures/src/metadata_shard/streaming_shard.rs @@ -505,7 +505,7 @@ mod tests { use std::time::{Duration, SystemTime}; use rand::rngs::SmallRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; use super::super::MDBShardInfo; use super::super::file_structs::MDBFileInfo; diff --git a/xet_core_structures/src/xorb_object/byte_grouping/bg4.rs b/xet_core_structures/src/xorb_object/byte_grouping/bg4.rs index 672c226a..21866541 100644 --- a/xet_core_structures/src/xorb_object/byte_grouping/bg4.rs +++ b/xet_core_structures/src/xorb_object/byte_grouping/bg4.rs @@ -261,7 +261,7 @@ pub fn bg4_regroup(g: &[u8]) -> Vec { #[cfg(test)] mod tests { - use rand::Rng; + use rand::RngExt; use super::*; diff --git a/xet_core_structures/src/xorb_object/byte_grouping/bg4_prediction.rs b/xet_core_structures/src/xorb_object/byte_grouping/bg4_prediction.rs index 64ac886c..ae66fd17 100644 --- a/xet_core_structures/src/xorb_object/byte_grouping/bg4_prediction.rs +++ b/xet_core_structures/src/xorb_object/byte_grouping/bg4_prediction.rs @@ -255,7 +255,7 @@ mod tests { use std::mem::align_of; use rand::rngs::StdRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; use super::*; diff --git a/xet_core_structures/src/xorb_object/byte_grouping/compression_stats/collect_compression_stats.rs b/xet_core_structures/src/xorb_object/byte_grouping/compression_stats/collect_compression_stats.rs index 498b64d2..5dbc81e2 100644 --- a/xet_core_structures/src/xorb_object/byte_grouping/compression_stats/collect_compression_stats.rs +++ b/xet_core_structures/src/xorb_object/byte_grouping/compression_stats/collect_compression_stats.rs @@ -12,7 +12,7 @@ use std::sync::atomic::AtomicUsize; use clap::Parser; use csv::Writer; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use tokio::sync::{Mutex, Semaphore}; use tokio::task::JoinSet; use xet_core_structures::xorb_object::serialize_chunk; diff --git a/xet_core_structures/src/xorb_object/compression_scheme.rs b/xet_core_structures/src/xorb_object/compression_scheme.rs index 9c69fdd7..a7101a06 100644 --- a/xet_core_structures/src/xorb_object/compression_scheme.rs +++ b/xet_core_structures/src/xorb_object/compression_scheme.rs @@ -199,7 +199,7 @@ mod tests { use std::mem::size_of; use half::prelude::*; - use rand::Rng; + use rand::RngExt; use super::*; diff --git a/xet_core_structures/src/xorb_object/xorb_chunk_format/deserialize_async.rs b/xet_core_structures/src/xorb_object/xorb_chunk_format/deserialize_async.rs index 3a3e6394..bbc2ea96 100644 --- a/xet_core_structures/src/xorb_object/xorb_chunk_format/deserialize_async.rs +++ b/xet_core_structures/src/xorb_object/xorb_chunk_format/deserialize_async.rs @@ -131,7 +131,7 @@ where mod tests { use bytes::Bytes; use futures::Stream; - use rand::{Rng, rng}; + use rand::{Rng, RngExt, rng}; use super::super::{CompressionScheme, serialize_chunk}; use super::deserialize_chunks_to_writer_from_stream; diff --git a/xet_core_structures/src/xorb_object/xorb_object_format.rs b/xet_core_structures/src/xorb_object/xorb_object_format.rs index b1084471..ef5d1910 100644 --- a/xet_core_structures/src/xorb_object/xorb_object_format.rs +++ b/xet_core_structures/src/xorb_object/xorb_object_format.rs @@ -1382,7 +1382,7 @@ impl SerializedXorbObject { } pub mod test_utils { - use rand::Rng; + use rand::RngExt; use super::super::raw_xorb_data::test_utils::raw_xorb_to_vec; use super::super::xorb_chunk_format::serialize_chunk; diff --git a/xet_data/Cargo.toml b/xet_data/Cargo.toml index 67063540..fd4ea3d9 100644 --- a/xet_data/Cargo.toml +++ b/xet_data/Cargo.toml @@ -37,8 +37,8 @@ tempfile = { workspace = true } thiserror = { workspace = true } tokio-util = { workspace = true } tracing = { workspace = true } -ulid = { workspace = true } url = { workspace = true } +uuid = { workspace = true, features = ["v7"] } walkdir = { workspace = true } pyo3 = { version = "0.26", features = ["abi3-py37"], optional = true } diff --git a/xet_data/src/deduplication/chunking.rs b/xet_data/src/deduplication/chunking.rs index 2c73a8a5..7e2456c2 100644 --- a/xet_data/src/deduplication/chunking.rs +++ b/xet_data/src/deduplication/chunking.rs @@ -359,7 +359,7 @@ mod tests { use std::io::Cursor; use rand::rngs::StdRng; - use rand::{Rng, SeedableRng}; + use rand::{RngExt, SeedableRng}; use super::*; diff --git a/xet_data/src/processing/data_client.rs b/xet_data/src/processing/data_client.rs index 56c27cae..bb2e7325 100644 --- a/xet_data/src/processing/data_client.rs +++ b/xet_data/src/processing/data_client.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use bytes::Bytes; use http::header::HeaderMap; use tracing::{Instrument, Span, info_span, instrument}; -use ulid::Ulid; +use uuid::Uuid; use xet_client::cas_client::auth::{AuthConfig, TokenRefresher}; use xet_core_structures::merklehash::MerkleHash; use xet_runtime::core::par_utils::run_constrained_with_semaphore; @@ -32,7 +32,7 @@ pub fn default_config( auth: auth_cfg, custom_headers, repo_paths: vec!["".into()], - session_id: Some(Ulid::new().to_string()), + session_id: Some(Uuid::now_v7().to_string()), }; TranslatorConfig::new(session) diff --git a/xet_data/src/processing/sha256.rs b/xet_data/src/processing/sha256.rs index 7a8c9c9b..9cad352a 100644 --- a/xet_data/src/processing/sha256.rs +++ b/xet_data/src/processing/sha256.rs @@ -46,7 +46,7 @@ impl Sha256Generator { #[cfg(test)] mod sha_tests { - use rand::{Rng, rng}; + use rand::{RngExt, rng}; use super::*; diff --git a/xet_pkg/Cargo.toml b/xet_pkg/Cargo.toml index 5e66635e..f64b1328 100644 --- a/xet_pkg/Cargo.toml +++ b/xet_pkg/Cargo.toml @@ -41,7 +41,7 @@ thiserror = { workspace = true } tokio = { workspace = true, features = ["net", "time"] } tokio-util = { workspace = true } tracing = { workspace = true } -ulid = { workspace = true } +uuid = { workspace = true, features = ["v7"] } [features] smoke-test = [] diff --git a/xet_pkg/src/xet_session/session.rs b/xet_pkg/src/xet_session/session.rs index 8a25cdbc..8f2c109b 100644 --- a/xet_pkg/src/xet_session/session.rs +++ b/xet_pkg/src/xet_session/session.rs @@ -4,7 +4,7 @@ use std::collections::HashMap; use std::sync::{Arc, Mutex, Weak}; use tracing::info; -use ulid::Ulid; +use uuid::Uuid; use xet_data::progress_tracking::UniqueID; use xet_runtime::RuntimeError; use xet_runtime::config::XetConfig; @@ -46,7 +46,7 @@ pub struct XetSessionInner { pub(super) active_download_stream_groups: Mutex>>, // "id" is used to identify a group of activities on our server, and so needs to be globally unique - pub(super) id: Ulid, + pub(super) id: Uuid, } /// Builder for [`XetSession`]. @@ -254,7 +254,7 @@ impl XetSession { config, task_runtime, active_download_stream_groups: Mutex::new(HashMap::new()), - id: Ulid::new(), + id: Uuid::now_v7(), }), } } @@ -397,7 +397,7 @@ impl XetSession { Ok(()) } - pub(super) fn id(&self) -> &Ulid { + pub(super) fn id(&self) -> &Uuid { &self.inner.id } } @@ -429,10 +429,11 @@ mod tests { } #[test] - // Session ID is a Ulid, to guard future regressions. - fn test_session_id_is_ulid() { + // Session ID is a UUIDv7, to guard future regressions. + fn test_session_id_is_uuid_v7() { let s = XetSessionBuilder::new().build().unwrap(); - assert!(s.inner.id.to_string().parse::().is_ok()); + let parsed: uuid::Uuid = s.inner.id.to_string().parse().expect("session id must parse as Uuid"); + assert_eq!(parsed.get_version(), Some(uuid::Version::SortRand)); } // ── Abort behavior ─────────────────────────────────────────────────────── diff --git a/xet_runtime/src/file_utils/safe_file_creator.rs b/xet_runtime/src/file_utils/safe_file_creator.rs index acd6b6cc..85cb81d9 100644 --- a/xet_runtime/src/file_utils/safe_file_creator.rs +++ b/xet_runtime/src/file_utils/safe_file_creator.rs @@ -3,7 +3,7 @@ use std::io::{self, BufWriter, Seek, SeekFrom, Write}; use std::path::{Path, PathBuf}; use rand::distr::Alphanumeric; -use rand::{Rng, rng}; +use rand::{RngExt, rng}; use super::create_file; use super::file_metadata::set_file_metadata;