Commit 7c3fd5c9 authored by Graham King's avatar Graham King Committed by GitHub
Browse files

chore: Don't depend on openssl (#292)

This makes the Rust parts all use ring / rustls library instead of local install of openssl. It's a step on the journey to being statically linked.

Pieces:
- `tokenizers` and `mistralrs` now support rustls (mistralrs by default, tokenizers with feature flag).
- Move shared dependencies up into workspace
- New `rand` crate has some renames for future rust
- Ensure the dependency doesn't creep back in by enforcing it with cargo deny.
parent af8ee9db
...@@ -84,7 +84,7 @@ jobs: ...@@ -84,7 +84,7 @@ jobs:
working-directory: ${{ matrix.dir }} working-directory: ${{ matrix.dir }}
run: | run: |
cargo-deny --version || cargo install cargo-deny@0.16.4 cargo-deny --version || cargo install cargo-deny@0.16.4
cargo-deny --no-default-features check --hide-inclusion-graph licenses --config ${{ github.workspace }}/deny.toml cargo-deny --no-default-features check --hide-inclusion-graph licenses bans --config ${{ github.workspace }}/deny.toml
- name: Run Unit Tests - name: Run Unit Tests
working-directory: ${{ matrix.dir }} working-directory: ${{ matrix.dir }}
run: cargo test --locked --all-targets run: cargo test --locked --all-targets
This diff is collapsed.
...@@ -51,6 +51,9 @@ derive_builder = { version = "0.20" } ...@@ -51,6 +51,9 @@ derive_builder = { version = "0.20" }
derive-getters = { version = "0.5" } derive-getters = { version = "0.5" }
either = { version = "1.13", features = ["serde"] } either = { version = "1.13", features = ["serde"] }
futures = { version = "0.3" } futures = { version = "0.3" }
hf-hub = { version = "0.4.2", default-features = false, features = ["tokio", "rustls-tls"] }
humantime = { version = "2.2.0" }
rand = { version = "0.9.0" }
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = { version = "1" } serde_json = { version = "1" }
thiserror = { version = "2.0.11" } thiserror = { version = "2.0.11" }
...@@ -58,6 +61,7 @@ tokio = { version = "1", features = ["full"] } ...@@ -58,6 +61,7 @@ tokio = { version = "1", features = ["full"] }
tokio-stream = { version = "0.1" } tokio-stream = { version = "0.1" }
tokio-util = { version = "0.7", features = ["codec", "net"] } tokio-util = { version = "0.7", features = ["codec", "net"] }
tracing = { version = "0.1" } tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", features = ["env-filter", "local-time", "json"] }
validator = { version = "0.20.0", features = ["derive"] } validator = { version = "0.20.0", features = ["derive"] }
uuid = { version = "1", features = ["v4", "serde"] } uuid = { version = "1", features = ["v4", "serde"] }
xxhash-rust = { version = "0.8", features = ["xxh3", "const_xxh3"] } xxhash-rust = { version = "0.8", features = ["xxh3", "const_xxh3"] }
......
...@@ -27,6 +27,7 @@ dynamo-llm = { workspace = true } ...@@ -27,6 +27,7 @@ dynamo-llm = { workspace = true }
dynamo-runtime = { workspace = true } dynamo-runtime = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
rand = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
...@@ -38,6 +39,5 @@ clap = { version = "4.5", features = ["derive", "env"] } ...@@ -38,6 +39,5 @@ clap = { version = "4.5", features = ["derive", "env"] }
opentelemetry = { version = "0.20" } opentelemetry = { version = "0.20" }
opentelemetry-prometheus = { version = "0.13" } opentelemetry-prometheus = { version = "0.13" }
prometheus = { version = "0.13" } prometheus = { version = "0.13" }
rand = { version = "0.8" } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
reqwest = { version = "0.11", features = ["json", "rustls-tls"] }
thiserror = { version = "1.0" } thiserror = { version = "1.0" }
...@@ -79,15 +79,15 @@ async fn mock_event_publisher(namespace: Namespace) { ...@@ -79,15 +79,15 @@ async fn mock_event_publisher(namespace: Namespace) {
// be reflective of the KV Router's performance. // be reflective of the KV Router's performance.
// 3. The data in these events aren't in sync with the stats handler's // 3. The data in these events aren't in sync with the stats handler's
// ForwardPassMetrics data, so they may not correlate well. // ForwardPassMetrics data, so they may not correlate well.
let worker_id = rand::thread_rng().gen_range(1..=1000); let worker_id = rand::rng().random_range(1..=1000);
let mut interval = interval(Duration::from_secs(1)); let mut interval = interval(Duration::from_secs(1));
loop { loop {
interval.tick().await; interval.tick().await;
// Generate random KV hit rate event using a new thread_rng each time // Generate random KV hit rate event using a new thread_rng each time
let isl_blocks = rand::thread_rng().gen_range(0..=100); let isl_blocks = rand::rng().random_range(0..=100);
let overlap_blocks = rand::thread_rng().gen_range(0..=isl_blocks); let overlap_blocks = rand::rng().random_range(0..=isl_blocks);
let event = KVHitRateEvent { let event = KVHitRateEvent {
worker_id, worker_id,
...@@ -109,12 +109,12 @@ async fn mock_event_publisher(namespace: Namespace) { ...@@ -109,12 +109,12 @@ async fn mock_event_publisher(namespace: Namespace) {
/// Generates mock forward pass metrics for stats handler /// Generates mock forward pass metrics for stats handler
fn mock_stats_handler(_stats: Stats) -> serde_json::Value { fn mock_stats_handler(_stats: Stats) -> serde_json::Value {
let request_total_slots = 100; let request_total_slots = 100;
let request_active_slots = rand::thread_rng().gen_range(0..=request_total_slots); let request_active_slots = rand::rng().random_range(0..=request_total_slots);
let kv_total_blocks = 100; let kv_total_blocks = 100;
let kv_active_blocks = rand::thread_rng().gen_range(0..=kv_total_blocks); let kv_active_blocks = rand::rng().random_range(0..=kv_total_blocks);
let num_requests_waiting = rand::thread_rng().gen_range(0..=100); let num_requests_waiting = rand::rng().random_range(0..=100);
let gpu_cache_usage_perc = rand::thread_rng().gen_range(0.0..=1.0); let gpu_cache_usage_perc = rand::rng().random_range(0.0..=1.0);
let gpu_prefix_cache_hit_rate = rand::thread_rng().gen_range(0.0..=1.0); let gpu_prefix_cache_hit_rate = rand::rng().random_range(0.0..=1.0);
let stats = ForwardPassMetrics { let stats = ForwardPassMetrics {
request_active_slots, request_active_slots,
request_total_slots, request_total_slots,
......
...@@ -47,3 +47,11 @@ expression = "MIT AND ISC AND OpenSSL" ...@@ -47,3 +47,11 @@ expression = "MIT AND ISC AND OpenSSL"
license-files = [ license-files = [
{ path = "LICENSE", hash = 0xbd0eed23 } { path = "LICENSE", hash = 0xbd0eed23 }
] ]
[bans]
deny = [
# Ensure we don't depend on openssl
{ name = "native-tls" },
{ name = "openssl-sys" },
]
...@@ -44,20 +44,24 @@ anyhow = { workspace = true } ...@@ -44,20 +44,24 @@ anyhow = { workspace = true }
async-stream = { workspace = true } async-stream = { workspace = true }
async-trait = { workspace = true } async-trait = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
hf-hub = { workspace = true }
humantime = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
tokio-util = { workspace = true } tokio-util = { workspace = true }
tracing = { workspace = true } tracing = { workspace = true }
tracing-subscriber = { workspace = true }
async-openai = { version = "0.27.2" } async-openai = { version = "0.27.2" }
hf-hub = { version = "0.4.2", default-features = false, features = ["tokio", "rustls-tls"] }
clap = { version = "4.5", features = ["derive", "env"] } clap = { version = "4.5", features = ["derive", "env"] }
dialoguer = { version = "0.11", default-features = false, features = ["editor", "history"] } dialoguer = { version = "0.11", default-features = false, features = ["editor", "history"] }
futures-util = { version = "0.3" } futures-util = { version = "0.3" }
humantime = "2.2.0"
tracing-subscriber = { version = "0.3", features = ["env-filter", "local-time", "json"] }
[target.x86_64-unknown-linux-gnu.dependencies] [target.x86_64-unknown-linux-gnu.dependencies]
netlink-packet-route = { version = "0.19", optional = true } netlink-packet-route = { version = "0.19", optional = true }
rtnetlink = { version = "0.14", optional = true } rtnetlink = { version = "0.14", optional = true }
[target.x86_64-unknown-linux-musl.dependencies]
netlink-packet-route = { version = "0.19", optional = true }
rtnetlink = { version = "0.14", optional = true }
...@@ -141,7 +141,7 @@ dependencies = [ ...@@ -141,7 +141,7 @@ dependencies = [
"ring", "ring",
"rustls-native-certs 0.7.3", "rustls-native-certs 0.7.3",
"rustls-pemfile", "rustls-pemfile",
"rustls-webpki", "rustls-webpki 0.102.8",
"serde", "serde",
"serde_json", "serde_json",
"serde_nanos", "serde_nanos",
...@@ -212,9 +212,9 @@ dependencies = [ ...@@ -212,9 +212,9 @@ dependencies = [
[[package]] [[package]]
name = "async-trait" name = "async-trait"
version = "0.1.87" version = "0.1.88"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -438,9 +438,9 @@ checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" ...@@ -438,9 +438,9 @@ checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]] [[package]]
name = "blake3" name = "blake3"
version = "1.6.1" version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" checksum = "b17679a8d69b6d7fd9cd9801a536cec9fa5e5970b69f9d4747f70b39b031f5e7"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"arrayvec", "arrayvec",
...@@ -483,9 +483,9 @@ checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" ...@@ -483,9 +483,9 @@ checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540"
[[package]] [[package]]
name = "bytemuck_derive" name = "bytemuck_derive"
version = "1.8.1" version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" checksum = "9d35fadd3de6c82a550b136427123552b401efdab9859130f1cf485fbdea40af"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -851,9 +851,9 @@ dependencies = [ ...@@ -851,9 +851,9 @@ dependencies = [
[[package]] [[package]]
name = "deranged" name = "deranged"
version = "0.3.11" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
dependencies = [ dependencies = [
"powerfmt", "powerfmt",
"serde", "serde",
...@@ -962,6 +962,7 @@ dependencies = [ ...@@ -962,6 +962,7 @@ dependencies = [
"async-openai", "async-openai",
"async-stream", "async-stream",
"async-trait", "async-trait",
"async_zmq",
"axum 0.8.1", "axum 0.8.1",
"bindgen", "bindgen",
"blake3", "blake3",
...@@ -1057,7 +1058,7 @@ dependencies = [ ...@@ -1057,7 +1058,7 @@ dependencies = [
"nuid", "nuid",
"once_cell", "once_cell",
"prometheus", "prometheus",
"rand 0.8.5", "rand 0.9.0",
"regex", "regex",
"serde", "serde",
"serde_json", "serde_json",
...@@ -1431,14 +1432,16 @@ dependencies = [ ...@@ -1431,14 +1432,16 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"js-sys",
"libc", "libc",
"wasi 0.13.3+wasi-0.2.2", "r-efi",
"windows-targets 0.52.6", "wasi 0.14.2+wasi-0.2.4",
"wasm-bindgen",
] ]
[[package]] [[package]]
...@@ -1502,6 +1505,7 @@ dependencies = [ ...@@ -1502,6 +1505,7 @@ dependencies = [
"libc", "libc",
"log", "log",
"rand 0.8.5", "rand 0.8.5",
"reqwest",
"serde", "serde",
"serde_json", "serde_json",
"thiserror 2.0.12", "thiserror 2.0.12",
...@@ -1598,6 +1602,7 @@ dependencies = [ ...@@ -1598,6 +1602,7 @@ dependencies = [
"tokio", "tokio",
"tokio-rustls", "tokio-rustls",
"tower-service", "tower-service",
"webpki-roots",
] ]
[[package]] [[package]]
...@@ -1996,9 +2001,9 @@ dependencies = [ ...@@ -1996,9 +2001,9 @@ dependencies = [
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.9.2" version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413"
[[package]] [[package]]
name = "litemap" name = "litemap"
...@@ -2802,11 +2807,12 @@ dependencies = [ ...@@ -2802,11 +2807,12 @@ dependencies = [
[[package]] [[package]]
name = "quinn" name = "quinn"
version = "0.11.6" version = "0.11.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012"
dependencies = [ dependencies = [
"bytes", "bytes",
"cfg_aliases",
"pin-project-lite", "pin-project-lite",
"quinn-proto", "quinn-proto",
"quinn-udp", "quinn-udp",
...@@ -2816,17 +2822,18 @@ dependencies = [ ...@@ -2816,17 +2822,18 @@ dependencies = [
"thiserror 2.0.12", "thiserror 2.0.12",
"tokio", "tokio",
"tracing", "tracing",
"web-time",
] ]
[[package]] [[package]]
name = "quinn-proto" name = "quinn-proto"
version = "0.11.9" version = "0.11.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc"
dependencies = [ dependencies = [
"bytes", "bytes",
"getrandom 0.2.15", "getrandom 0.3.2",
"rand 0.8.5", "rand 0.9.0",
"ring", "ring",
"rustc-hash 2.1.1", "rustc-hash 2.1.1",
"rustls", "rustls",
...@@ -2861,6 +2868,12 @@ dependencies = [ ...@@ -2861,6 +2868,12 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "r-efi"
version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.8.5" version = "0.8.5"
...@@ -2918,7 +2931,7 @@ version = "0.9.3" ...@@ -2918,7 +2931,7 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
dependencies = [ dependencies = [
"getrandom 0.3.1", "getrandom 0.3.2",
] ]
[[package]] [[package]]
...@@ -3018,9 +3031,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" ...@@ -3018,9 +3031,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]] [[package]]
name = "reqwest" name = "reqwest"
version = "0.12.14" version = "0.12.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "989e327e510263980e231de548a33e63d34962d29ae61b467389a1a09627a254" checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"bytes", "bytes",
...@@ -3059,6 +3072,7 @@ dependencies = [ ...@@ -3059,6 +3072,7 @@ dependencies = [
"wasm-bindgen-futures", "wasm-bindgen-futures",
"wasm-streams", "wasm-streams",
"web-sys", "web-sys",
"webpki-roots",
"windows-registry", "windows-registry",
] ]
...@@ -3121,9 +3135,9 @@ dependencies = [ ...@@ -3121,9 +3135,9 @@ dependencies = [
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "1.0.2" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.0",
"errno", "errno",
...@@ -3134,15 +3148,15 @@ dependencies = [ ...@@ -3134,15 +3148,15 @@ dependencies = [
[[package]] [[package]]
name = "rustls" name = "rustls"
version = "0.23.23" version = "0.23.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c"
dependencies = [ dependencies = [
"log", "log",
"once_cell", "once_cell",
"ring", "ring",
"rustls-pki-types", "rustls-pki-types",
"rustls-webpki", "rustls-webpki 0.103.0",
"subtle", "subtle",
"zeroize", "zeroize",
] ]
...@@ -3201,6 +3215,17 @@ dependencies = [ ...@@ -3201,6 +3215,17 @@ dependencies = [
"untrusted", "untrusted",
] ]
[[package]]
name = "rustls-webpki"
version = "0.103.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f"
dependencies = [
"ring",
"rustls-pki-types",
"untrusted",
]
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.20" version = "1.0.20"
...@@ -3612,13 +3637,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" ...@@ -3612,13 +3637,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]] [[package]]
name = "tempfile" name = "tempfile"
version = "3.18.0" version = "3.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600"
dependencies = [ dependencies = [
"cfg-if 1.0.0",
"fastrand", "fastrand",
"getrandom 0.3.1", "getrandom 0.3.2",
"once_cell", "once_cell",
"rustix", "rustix",
"windows-sys 0.59.0", "windows-sys 0.59.0",
...@@ -3676,9 +3700,9 @@ dependencies = [ ...@@ -3676,9 +3700,9 @@ dependencies = [
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.39" version = "0.3.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618"
dependencies = [ dependencies = [
"deranged", "deranged",
"itoa", "itoa",
...@@ -3693,15 +3717,15 @@ dependencies = [ ...@@ -3693,15 +3717,15 @@ dependencies = [
[[package]] [[package]]
name = "time-core" name = "time-core"
version = "0.1.3" version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
[[package]] [[package]]
name = "time-macros" name = "time-macros"
version = "0.2.20" version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04"
dependencies = [ dependencies = [
"num-conv", "num-conv",
"time-core", "time-core",
...@@ -4223,11 +4247,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" ...@@ -4223,11 +4247,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]] [[package]]
name = "uuid" name = "uuid"
version = "1.15.1" version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
dependencies = [ dependencies = [
"getrandom 0.3.1", "getrandom 0.3.2",
"serde", "serde",
] ]
...@@ -4306,9 +4330,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" ...@@ -4306,9 +4330,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.13.3+wasi-0.2.2" version = "0.14.2+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
dependencies = [ dependencies = [
"wit-bindgen-rt", "wit-bindgen-rt",
] ]
...@@ -4480,9 +4504,9 @@ dependencies = [ ...@@ -4480,9 +4504,9 @@ dependencies = [
[[package]] [[package]]
name = "windows-link" name = "windows-link"
version = "0.1.0" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
[[package]] [[package]]
name = "windows-registry" name = "windows-registry"
...@@ -4497,9 +4521,9 @@ dependencies = [ ...@@ -4497,9 +4521,9 @@ dependencies = [
[[package]] [[package]]
name = "windows-result" name = "windows-result"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252"
dependencies = [ dependencies = [
"windows-link", "windows-link",
] ]
...@@ -4736,9 +4760,9 @@ dependencies = [ ...@@ -4736,9 +4760,9 @@ dependencies = [
[[package]] [[package]]
name = "wit-bindgen-rt" name = "wit-bindgen-rt"
version = "0.33.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.0",
] ]
......
...@@ -23,14 +23,15 @@ homepage.workspace = true ...@@ -23,14 +23,15 @@ homepage.workspace = true
[features] [features]
default = [] default = []
mistralrs = ["dep:mistralrs"]
cuda_kv = ["dep:cudarc", "dep:ndarray"]
llamacpp = ["dep:llama-cpp-2"] llamacpp = ["dep:llama-cpp-2"]
sglang = ["dep:async_zmq"] mistralrs = ["dep:mistralrs"]
sentencepiece = ["dep:sentencepiece"]
vllm = ["dep:async_zmq"]
python = ["dep:pyo3-async-runtimes", "dep:pythonize"] python = ["dep:pyo3-async-runtimes", "dep:pythonize"]
sglang = []
sentencepiece = ["dep:sentencepiece"]
trtllm = [] trtllm = []
cuda_kv = ["dep:cudarc", "dep:ndarray"] vllm = []
cuda = ["mistralrs/cuda", "llama-cpp-2/cuda"] cuda = ["mistralrs/cuda", "llama-cpp-2/cuda"]
metal = ["mistralrs/metal", "llama-cpp-2/metal"] metal = ["mistralrs/metal", "llama-cpp-2/metal"]
...@@ -44,11 +45,16 @@ dynamo-runtime = { workspace = true } ...@@ -44,11 +45,16 @@ dynamo-runtime = { workspace = true }
anyhow = { workspace = true } anyhow = { workspace = true }
async-stream = { workspace = true } async-stream = { workspace = true }
async-trait = { workspace = true } async-trait = { workspace = true }
async_zmq = { workspace = true }
bytes = { workspace = true } bytes = { workspace = true }
chrono = { workspace = true }
derive_builder = {workspace = true } derive_builder = {workspace = true }
either = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
rand = { workspace = true }
prometheus = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true } thiserror = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
tokio-stream = { workspace = true } tokio-stream = { workspace = true }
...@@ -63,7 +69,6 @@ async-openai = "0.27.2" ...@@ -63,7 +69,6 @@ async-openai = "0.27.2"
blake3 = "1" blake3 = "1"
bytemuck = "1.22" bytemuck = "1.22"
derive-getters = "0.5" derive-getters = "0.5"
rand = "0.9"
regex = "1" regex = "1"
rayon = "1" rayon = "1"
...@@ -81,27 +86,16 @@ pyo3 = { version = "0.23.3", default-features = false, features = [ ...@@ -81,27 +86,16 @@ pyo3 = { version = "0.23.3", default-features = false, features = [
] } ] }
# protocols # protocols
chrono = { version = "0.4", default-features = false, features = [
"alloc",
"std",
"clock",
"now",
"serde",
] }
serde_json = { version = "1" }
unicode-segmentation = "1.12" unicode-segmentation = "1.12"
# http-service # http-service
axum = "0.8" axum = "0.8"
prometheus = { version = "0.13" }
# mistralrs # mistralrs
either = { version = "1.13" }
indexmap = { version = "2.6" } indexmap = { version = "2.6" }
mistralrs = { git = "https://github.com/EricLBuehler/mistral.rs.git", rev = "5e689c9", optional = true } mistralrs = { git = "https://github.com/EricLBuehler/mistral.rs.git", rev = "aaafc2ef", optional = true }
# sglang # sglang
async_zmq = { version = "0.4.0", optional = true }
libc = "0.2" libc = "0.2"
serde-pickle = "1.2.0" serde-pickle = "1.2.0"
...@@ -109,17 +103,16 @@ serde-pickle = "1.2.0" ...@@ -109,17 +103,16 @@ serde-pickle = "1.2.0"
llama-cpp-2 = { version = "0.1.86", optional = true } llama-cpp-2 = { version = "0.1.86", optional = true }
# tokenizers # tokenizers
tokenizers = { version = "0.21.0", default-features = false, features = [ tokenizers = { version = "0.21.1", default-features = false, features = [
"onig", "onig",
"esaxx_fast", "esaxx_fast",
# Waiting for release: https://github.com/huggingface/tokenizers/issues/1736 "rustls-tls",
# "rustls-tls",
] } ] }
sentencepiece = { version = "0.11.2", optional = true } sentencepiece = { version = "0.11.2", optional = true }
# backend # backend
galil-seiferas = { version = "0.1" } galil-seiferas = { version = "0.1" }
toktrie = {version = "0.6.28" } toktrie = { version = "0.6.28" }
toktrie_hf_tokenizers = { version = "0.6.28" } toktrie_hf_tokenizers = { version = "0.6.28" }
# preprocessor # preprocessor
...@@ -144,12 +137,12 @@ pythonize = { version = "0.23", optional = true } ...@@ -144,12 +137,12 @@ pythonize = { version = "0.23", optional = true }
[dev-dependencies] [dev-dependencies]
hf-hub = { workspace = true }
proptest = "1.5.0" proptest = "1.5.0"
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] } reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] }
rstest = "0.18.2" rstest = "0.18.2"
rstest_reuse = "0.7.0" rstest_reuse = "0.7.0"
tempfile = "3.17.1" tempfile = "3.17.1"
hf-hub = "0.4.1"
insta = { version = "1.41", features = [ insta = { version = "1.41", features = [
"glob", "glob",
"json", "json",
......
...@@ -41,12 +41,15 @@ derive_builder = { workspace = true } ...@@ -41,12 +41,15 @@ derive_builder = { workspace = true }
derive-getters = { workspace = true } derive-getters = { workspace = true }
either = { workspace = true } either = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
humantime = { workspace = true }
rand = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
tokio-stream = { workspace = true } tokio-stream = { workspace = true }
tokio-util = { workspace = true } tokio-util = { workspace = true }
tracing = { workspace = true } tracing = { workspace = true }
tracing-subscriber = { workspace = true }
validator = { workspace = true } validator = { workspace = true }
uuid = { workspace = true } uuid = { workspace = true }
xxhash-rust = { workspace = true } xxhash-rust = { workspace = true }
...@@ -55,12 +58,10 @@ thiserror = { workspace = true } ...@@ -55,12 +58,10 @@ thiserror = { workspace = true }
# Dependencies not yet in workspace # Dependencies not yet in workspace
figment = { version = "0.10.19", features = ["env", "json", "toml", "test"] } figment = { version = "0.10.19", features = ["env", "json", "toml", "test"] }
humantime = { version = "2.1.0" }
log = { version = "0.4" } log = { version = "0.4" }
once_cell = { version = "1" } once_cell = { version = "1" }
regex = { version = "1" } regex = { version = "1" }
socket2 = { version = "0.5.8" } socket2 = { version = "0.5.8" }
tracing-subscriber = { version = "0.3", features = ["env-filter", "local-time", "json"] }
async-once-cell = { version = "0.5.4" } async-once-cell = { version = "0.5.4" }
educe = { version = "0.6.0" } educe = { version = "0.6.0" }
...@@ -69,7 +70,6 @@ local-ip-address = { version = "0.6.3" } ...@@ -69,7 +70,6 @@ local-ip-address = { version = "0.6.3" }
nid = { version = "3.0.0", features = ["serde"] } nid = { version = "3.0.0", features = ["serde"] }
nix = { version = "0.29", features = ["signal"] } nix = { version = "0.29", features = ["signal"] }
nuid = { version = "0.5" } nuid = { version = "0.5" }
rand = { version = "0.8"}
[dev-dependencies] [dev-dependencies]
assert_matches = { version = "1.5.0" } assert_matches = { version = "1.5.0" }
......
...@@ -74,12 +74,12 @@ dependencies = [ ...@@ -74,12 +74,12 @@ dependencies = [
"once_cell", "once_cell",
"pin-project", "pin-project",
"portable-atomic", "portable-atomic",
"rand", "rand 0.8.5",
"regex", "regex",
"ring", "ring",
"rustls-native-certs 0.7.3", "rustls-native-certs 0.7.3",
"rustls-pemfile", "rustls-pemfile",
"rustls-webpki", "rustls-webpki 0.102.8",
"serde", "serde",
"serde_json", "serde_json",
"serde_nanos", "serde_nanos",
...@@ -125,9 +125,9 @@ dependencies = [ ...@@ -125,9 +125,9 @@ dependencies = [
[[package]] [[package]]
name = "async-trait" name = "async-trait"
version = "0.1.87" version = "0.1.88"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -257,9 +257,9 @@ checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" ...@@ -257,9 +257,9 @@ checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]] [[package]]
name = "blake3" name = "blake3"
version = "1.6.1" version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" checksum = "b17679a8d69b6d7fd9cd9801a536cec9fa5e5970b69f9d4747f70b39b031f5e7"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"arrayvec", "arrayvec",
...@@ -549,9 +549,9 @@ dependencies = [ ...@@ -549,9 +549,9 @@ dependencies = [
[[package]] [[package]]
name = "deranged" name = "deranged"
version = "0.3.11" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
dependencies = [ dependencies = [
"powerfmt", "powerfmt",
"serde", "serde",
...@@ -659,7 +659,7 @@ dependencies = [ ...@@ -659,7 +659,7 @@ dependencies = [
"nuid", "nuid",
"once_cell", "once_cell",
"prometheus", "prometheus",
"rand", "rand 0.9.0",
"regex", "regex",
"serde", "serde",
"serde_json", "serde_json",
...@@ -948,14 +948,14 @@ dependencies = [ ...@@ -948,14 +948,14 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"libc", "libc",
"wasi 0.13.3+wasi-0.2.2", "r-efi",
"windows-targets", "wasi 0.14.2+wasi-0.2.4",
] ]
[[package]] [[package]]
...@@ -1384,9 +1384,9 @@ checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" ...@@ -1384,9 +1384,9 @@ checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.9.2" version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413"
[[package]] [[package]]
name = "litemap" name = "litemap"
...@@ -1548,7 +1548,7 @@ version = "3.0.0" ...@@ -1548,7 +1548,7 @@ version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4abdf1789932b85dc39446e27f45a1064a30f9e19a2b872b1d09bd59283f85f3" checksum = "4abdf1789932b85dc39446e27f45a1064a30f9e19a2b872b1d09bd59283f85f3"
dependencies = [ dependencies = [
"rand", "rand 0.8.5",
"serde", "serde",
"thiserror 1.0.69", "thiserror 1.0.69",
] ]
...@@ -1576,7 +1576,7 @@ dependencies = [ ...@@ -1576,7 +1576,7 @@ dependencies = [
"ed25519-dalek", "ed25519-dalek",
"getrandom 0.2.15", "getrandom 0.2.15",
"log", "log",
"rand", "rand 0.8.5",
"signatory", "signatory",
] ]
...@@ -1596,7 +1596,7 @@ version = "0.5.0" ...@@ -1596,7 +1596,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc895af95856f929163a0aa20c26a78d26bfdc839f51b9d5aa7a5b79e52b7e83" checksum = "fc895af95856f929163a0aa20c26a78d26bfdc839f51b9d5aa7a5b79e52b7e83"
dependencies = [ dependencies = [
"rand", "rand 0.8.5",
] ]
[[package]] [[package]]
...@@ -1926,6 +1926,12 @@ dependencies = [ ...@@ -1926,6 +1926,12 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "r-efi"
version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.8.5" version = "0.8.5"
...@@ -1933,8 +1939,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -1933,8 +1939,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [ dependencies = [
"libc", "libc",
"rand_chacha", "rand_chacha 0.3.1",
"rand_core", "rand_core 0.6.4",
]
[[package]]
name = "rand"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
dependencies = [
"rand_chacha 0.9.0",
"rand_core 0.9.3",
"zerocopy",
] ]
[[package]] [[package]]
...@@ -1944,7 +1961,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -1944,7 +1961,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [ dependencies = [
"ppv-lite86", "ppv-lite86",
"rand_core", "rand_core 0.6.4",
]
[[package]]
name = "rand_chacha"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
"rand_core 0.9.3",
] ]
[[package]] [[package]]
...@@ -1956,6 +1983,15 @@ dependencies = [ ...@@ -1956,6 +1983,15 @@ dependencies = [
"getrandom 0.2.15", "getrandom 0.2.15",
] ]
[[package]]
name = "rand_core"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
dependencies = [
"getrandom 0.3.2",
]
[[package]] [[package]]
name = "rayon" name = "rayon"
version = "1.10.0" version = "1.10.0"
...@@ -2060,9 +2096,9 @@ dependencies = [ ...@@ -2060,9 +2096,9 @@ dependencies = [
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "1.0.2" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.0",
"errno", "errno",
...@@ -2073,14 +2109,14 @@ dependencies = [ ...@@ -2073,14 +2109,14 @@ dependencies = [
[[package]] [[package]]
name = "rustls" name = "rustls"
version = "0.23.23" version = "0.23.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"ring", "ring",
"rustls-pki-types", "rustls-pki-types",
"rustls-webpki", "rustls-webpki 0.103.0",
"subtle", "subtle",
"zeroize", "zeroize",
] ]
...@@ -2136,6 +2172,17 @@ dependencies = [ ...@@ -2136,6 +2172,17 @@ dependencies = [
"untrusted", "untrusted",
] ]
[[package]]
name = "rustls-webpki"
version = "0.103.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f"
dependencies = [
"ring",
"rustls-pki-types",
"untrusted",
]
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.20" version = "1.0.20"
...@@ -2328,7 +2375,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -2328,7 +2375,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1e303f8205714074f6068773f0e29527e0453937fe837c9717d066635b65f31" checksum = "c1e303f8205714074f6068773f0e29527e0453937fe837c9717d066635b65f31"
dependencies = [ dependencies = [
"pkcs8", "pkcs8",
"rand_core", "rand_core 0.6.4",
"signature", "signature",
"zeroize", "zeroize",
] ]
...@@ -2340,7 +2387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -2340,7 +2387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [ dependencies = [
"digest", "digest",
"rand_core", "rand_core 0.6.4",
] ]
[[package]] [[package]]
...@@ -2456,13 +2503,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" ...@@ -2456,13 +2503,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]] [[package]]
name = "tempfile" name = "tempfile"
version = "3.18.0" version = "3.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600"
dependencies = [ dependencies = [
"cfg-if 1.0.0",
"fastrand", "fastrand",
"getrandom 0.3.1", "getrandom 0.3.2",
"once_cell", "once_cell",
"rustix", "rustix",
"windows-sys 0.59.0", "windows-sys 0.59.0",
...@@ -2520,9 +2566,9 @@ dependencies = [ ...@@ -2520,9 +2566,9 @@ dependencies = [
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.39" version = "0.3.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618"
dependencies = [ dependencies = [
"deranged", "deranged",
"itoa", "itoa",
...@@ -2537,15 +2583,15 @@ dependencies = [ ...@@ -2537,15 +2583,15 @@ dependencies = [
[[package]] [[package]]
name = "time-core" name = "time-core"
version = "0.1.3" version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
[[package]] [[package]]
name = "time-macros" name = "time-macros"
version = "0.2.20" version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04"
dependencies = [ dependencies = [
"num-conv", "num-conv",
"time-core", "time-core",
...@@ -2636,7 +2682,7 @@ dependencies = [ ...@@ -2636,7 +2682,7 @@ dependencies = [
"futures-sink", "futures-sink",
"http", "http",
"httparse", "httparse",
"rand", "rand 0.8.5",
"ring", "ring",
"rustls-native-certs 0.8.1", "rustls-native-certs 0.8.1",
"rustls-pki-types", "rustls-pki-types",
...@@ -2734,7 +2780,7 @@ dependencies = [ ...@@ -2734,7 +2780,7 @@ dependencies = [
"indexmap 1.9.3", "indexmap 1.9.3",
"pin-project", "pin-project",
"pin-project-lite", "pin-project-lite",
"rand", "rand 0.8.5",
"slab", "slab",
"tokio", "tokio",
"tokio-util", "tokio-util",
...@@ -2913,11 +2959,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" ...@@ -2913,11 +2959,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]] [[package]]
name = "uuid" name = "uuid"
version = "1.15.1" version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
dependencies = [ dependencies = [
"getrandom 0.3.1", "getrandom 0.3.2",
"serde", "serde",
] ]
...@@ -2996,9 +3042,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" ...@@ -2996,9 +3042,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.13.3+wasi-0.2.2" version = "0.14.2+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
dependencies = [ dependencies = [
"wit-bindgen-rt", "wit-bindgen-rt",
] ]
...@@ -3115,9 +3161,9 @@ dependencies = [ ...@@ -3115,9 +3161,9 @@ dependencies = [
[[package]] [[package]]
name = "windows-link" name = "windows-link"
version = "0.1.0" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
[[package]] [[package]]
name = "windows-sys" name = "windows-sys"
...@@ -3212,9 +3258,9 @@ dependencies = [ ...@@ -3212,9 +3258,9 @@ dependencies = [
[[package]] [[package]]
name = "wit-bindgen-rt" name = "wit-bindgen-rt"
version = "0.33.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.0",
] ]
......
...@@ -211,7 +211,7 @@ where ...@@ -211,7 +211,7 @@ where
self.endpoint.etcd_path() self.endpoint.etcd_path()
)); ));
} }
let counter = rand::thread_rng().gen::<u64>(); let counter = rand::rng().random::<u64>();
let offset = counter % count as u64; let offset = counter % count as u64;
endpoints[offset as usize] endpoints[offset as usize]
}; };
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment