Unverified Commit f849e1a6 authored by Yan Ru Pei's avatar Yan Ru Pei Committed by GitHub
Browse files

fix(kv-router): migrate raw zmq paths to libzmq and refresh lockfiles (#7871)


Signed-off-by: default avatarPeaBrane <yanrpei@gmail.com>
parent bfc59cd2
...@@ -14,7 +14,7 @@ version = "0.8.12" ...@@ -14,7 +14,7 @@ version = "0.8.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"getrandom 0.3.4", "getrandom 0.3.4",
"once_cell", "once_cell",
"serde", "serde",
...@@ -306,33 +306,6 @@ dependencies = [ ...@@ -306,33 +306,6 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "async_zmq"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "499c7104563d51146553fb0963f00210d8825833789e0ed270dd96aeeff6ac93"
dependencies = [
"futures",
"mio 0.6.23",
"once_cell",
"slab",
"thiserror 1.0.69",
"zmq",
]
[[package]]
name = "asynchronous-codec"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233"
dependencies = [
"bytes",
"futures-sink",
"futures-util",
"memchr",
"pin-project-lite",
]
[[package]] [[package]]
name = "atomic" name = "atomic"
version = "0.6.1" version = "0.6.1"
...@@ -356,7 +329,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" ...@@ -356,7 +329,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [ dependencies = [
"hermit-abi 0.1.19", "hermit-abi 0.1.19",
"libc", "libc",
"winapi 0.3.9", "winapi",
] ]
[[package]] [[package]]
...@@ -749,7 +722,7 @@ dependencies = [ ...@@ -749,7 +722,7 @@ dependencies = [
"arrayref", "arrayref",
"arrayvec", "arrayvec",
"cc", "cc",
"cfg-if 1.0.4", "cfg-if",
"constant_time_eq", "constant_time_eq",
"cpufeatures", "cpufeatures",
"memmap2", "memmap2",
...@@ -915,12 +888,6 @@ dependencies = [ ...@@ -915,12 +888,6 @@ dependencies = [
"target-lexicon", "target-lexicon",
] ]
[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "1.0.4" version = "1.0.4"
...@@ -1063,7 +1030,7 @@ version = "3.1.1" ...@@ -1063,7 +1030,7 @@ version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
dependencies = [ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
...@@ -1073,7 +1040,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -1073,7 +1040,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
dependencies = [ dependencies = [
"castaway", "castaway",
"cfg-if 1.0.4", "cfg-if",
"itoa", "itoa",
"rustversion", "rustversion",
"ryu", "ryu",
...@@ -1265,7 +1232,7 @@ version = "1.5.0" ...@@ -1265,7 +1232,7 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -1461,7 +1428,7 @@ version = "4.1.3" ...@@ -1461,7 +1428,7 @@ version = "4.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures",
"curve25519-dalek-derive", "curve25519-dalek-derive",
"digest", "digest",
...@@ -1606,7 +1573,7 @@ version = "5.5.3" ...@@ -1606,7 +1573,7 @@ version = "5.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"hashbrown 0.14.5", "hashbrown 0.14.5",
"lock_api", "lock_api",
"once_cell", "once_cell",
...@@ -1619,7 +1586,7 @@ version = "6.1.0" ...@@ -1619,7 +1586,7 @@ version = "6.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"crossbeam-utils", "crossbeam-utils",
"hashbrown 0.14.5", "hashbrown 0.14.5",
"lock_api", "lock_api",
...@@ -1897,7 +1864,6 @@ dependencies = [ ...@@ -1897,7 +1864,6 @@ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
"axum 0.8.4", "axum 0.8.4",
"bytes",
"dashmap 6.1.0", "dashmap 6.1.0",
"derive-getters", "derive-getters",
"derive_builder", "derive_builder",
...@@ -1922,7 +1888,7 @@ dependencies = [ ...@@ -1922,7 +1888,7 @@ dependencies = [
"uuid", "uuid",
"validator", "validator",
"xxhash-rust", "xxhash-rust",
"zeromq", "zmq",
] ]
[[package]] [[package]]
...@@ -2023,7 +1989,6 @@ dependencies = [ ...@@ -2023,7 +1989,6 @@ dependencies = [
"validator", "validator",
"video-rs", "video-rs",
"xxhash-rust", "xxhash-rust",
"zeromq",
] ]
[[package]] [[package]]
...@@ -2129,7 +2094,6 @@ dependencies = [ ...@@ -2129,7 +2094,6 @@ dependencies = [
"async-once-cell", "async-once-cell",
"async-stream", "async-stream",
"async-trait", "async-trait",
"async_zmq",
"axum 0.8.4", "axum 0.8.4",
"bincode 1.3.3", "bincode 1.3.3",
"blake3", "blake3",
...@@ -2179,6 +2143,7 @@ dependencies = [ ...@@ -2179,6 +2143,7 @@ dependencies = [
"temp-env", "temp-env",
"tempfile", "tempfile",
"thiserror 2.0.18", "thiserror 2.0.18",
"tmq",
"tokio", "tokio",
"tokio-rayon", "tokio-rayon",
"tokio-stream", "tokio-stream",
...@@ -2191,7 +2156,6 @@ dependencies = [ ...@@ -2191,7 +2156,6 @@ dependencies = [
"uuid", "uuid",
"validator", "validator",
"xxhash-rust", "xxhash-rust",
"zmq",
] ]
[[package]] [[package]]
...@@ -2263,7 +2227,7 @@ version = "0.8.35" ...@@ -2263,7 +2227,7 @@ version = "0.8.35"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -2550,7 +2514,7 @@ version = "0.2.27" ...@@ -2550,7 +2514,7 @@ version = "0.2.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"libredox", "libredox",
] ]
...@@ -2652,22 +2616,6 @@ dependencies = [ ...@@ -2652,22 +2616,6 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "fuchsia-zircon"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
dependencies = [
"bitflags 1.3.2",
"fuchsia-zircon-sys",
]
[[package]]
name = "fuchsia-zircon-sys"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]] [[package]]
name = "futures" name = "futures"
version = "0.3.32" version = "0.3.32"
...@@ -2797,7 +2745,7 @@ version = "0.2.17" ...@@ -2797,7 +2745,7 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"js-sys", "js-sys",
"libc", "libc",
"wasi", "wasi",
...@@ -2810,7 +2758,7 @@ version = "0.3.4" ...@@ -2810,7 +2758,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"js-sys", "js-sys",
"libc", "libc",
"r-efi 5.3.0", "r-efi 5.3.0",
...@@ -2824,7 +2772,7 @@ version = "0.4.2" ...@@ -2824,7 +2772,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"r-efi 6.0.0", "r-efi 6.0.0",
"wasip2", "wasip2",
...@@ -2934,7 +2882,7 @@ version = "2.7.1" ...@@ -2934,7 +2882,7 @@ version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"crunchy", "crunchy",
"num-traits", "num-traits",
"rand 0.9.2", "rand 0.9.2",
...@@ -3072,7 +3020,7 @@ version = "0.4.2" ...@@ -3072,7 +3020,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"windows-link", "windows-link",
] ]
...@@ -3535,7 +3483,7 @@ version = "0.1.13" ...@@ -3535,7 +3483,7 @@ version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -3549,15 +3497,6 @@ dependencies = [ ...@@ -3549,15 +3497,6 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "iovec"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "ipnet" name = "ipnet"
version = "2.12.0" version = "2.12.0"
...@@ -3823,16 +3762,6 @@ dependencies = [ ...@@ -3823,16 +3762,6 @@ dependencies = [
"serde_json", "serde_json",
] ]
[[package]]
name = "kernel32-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
dependencies = [
"winapi 0.2.8",
"winapi-build",
]
[[package]] [[package]]
name = "kqueue" name = "kqueue"
version = "1.1.1" version = "1.1.1"
...@@ -4102,7 +4031,7 @@ version = "0.8.9" ...@@ -4102,7 +4031,7 @@ version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-link", "windows-link",
] ]
...@@ -4112,7 +4041,7 @@ version = "0.9.0" ...@@ -4112,7 +4041,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-link", "windows-link",
] ]
...@@ -4322,7 +4251,7 @@ version = "0.1.1" ...@@ -4322,7 +4251,7 @@ 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 = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"rayon", "rayon",
] ]
...@@ -4332,7 +4261,7 @@ version = "0.10.6" ...@@ -4332,7 +4261,7 @@ version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"digest", "digest",
] ]
...@@ -4438,25 +4367,6 @@ dependencies = [ ...@@ -4438,25 +4367,6 @@ dependencies = [
"web-time", "web-time",
] ]
[[package]]
name = "mio"
version = "0.6.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
dependencies = [
"cfg-if 0.1.10",
"fuchsia-zircon",
"fuchsia-zircon-sys",
"iovec",
"kernel32-sys",
"libc",
"log",
"miow",
"net2",
"slab",
"winapi 0.2.8",
]
[[package]] [[package]]
name = "mio" name = "mio"
version = "0.8.11" version = "0.8.11"
...@@ -4480,18 +4390,6 @@ dependencies = [ ...@@ -4480,18 +4390,6 @@ dependencies = [
"windows-sys 0.61.2", "windows-sys 0.61.2",
] ]
[[package]]
name = "miow"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
dependencies = [
"kernel32-sys",
"net2",
"winapi 0.2.8",
"ws2_32-sys",
]
[[package]] [[package]]
name = "mockito" name = "mockito"
version = "1.7.2" version = "1.7.2"
...@@ -4685,17 +4583,6 @@ dependencies = [ ...@@ -4685,17 +4583,6 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "net2"
version = "0.2.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
dependencies = [
"cfg-if 0.1.10",
"libc",
"winapi 0.3.9",
]
[[package]] [[package]]
name = "new_debug_unreachable" name = "new_debug_unreachable"
version = "1.0.6" version = "1.0.6"
...@@ -4709,7 +4596,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -4709,7 +4596,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"memoffset", "memoffset",
"pin-utils", "pin-utils",
...@@ -4722,7 +4609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -4722,7 +4609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"cfg-if 1.0.4", "cfg-if",
"cfg_aliases", "cfg_aliases",
"libc", "libc",
] ]
...@@ -5398,7 +5285,7 @@ version = "0.9.12" ...@@ -5398,7 +5285,7 @@ version = "0.9.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"redox_syscall 0.5.18", "redox_syscall 0.5.18",
"smallvec", "smallvec",
...@@ -5817,7 +5704,7 @@ version = "0.14.0" ...@@ -5817,7 +5704,7 @@ version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"fnv", "fnv",
"lazy_static", "lazy_static",
"memchr", "memchr",
...@@ -6208,7 +6095,7 @@ dependencies = [ ...@@ -6208,7 +6095,7 @@ dependencies = [
"av1-grain", "av1-grain",
"bitstream-io", "bitstream-io",
"built", "built",
"cfg-if 1.0.4", "cfg-if",
"interpolate_name", "interpolate_name",
"itertools 0.14.0", "itertools 0.14.0",
"libc", "libc",
...@@ -6477,7 +6364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -6477,7 +6364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
dependencies = [ dependencies = [
"cc", "cc",
"cfg-if 1.0.4", "cfg-if",
"getrandom 0.2.17", "getrandom 0.2.17",
"libc", "libc",
"untrusted", "untrusted",
...@@ -6570,7 +6457,7 @@ version = "0.18.2" ...@@ -6570,7 +6457,7 @@ version = "0.18.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"glob", "glob",
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -6587,7 +6474,7 @@ version = "0.23.0" ...@@ -6587,7 +6474,7 @@ version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "825ea780781b15345a146be27eaefb05085e337e869bff01b4306a4fd4a9ad5a" checksum = "825ea780781b15345a146be27eaefb05085e337e869bff01b4306a4fd4a9ad5a"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"glob", "glob",
"proc-macro-crate", "proc-macro-crate",
"proc-macro2", "proc-macro2",
...@@ -6605,7 +6492,7 @@ version = "0.25.0" ...@@ -6605,7 +6492,7 @@ version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f168d99749d307be9de54d23fd226628d99768225ef08f6ffb52e0182a27746" checksum = "1f168d99749d307be9de54d23fd226628d99768225ef08f6ffb52e0182a27746"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"glob", "glob",
"proc-macro-crate", "proc-macro-crate",
"proc-macro2", "proc-macro2",
...@@ -6623,7 +6510,7 @@ version = "0.26.1" ...@@ -6623,7 +6510,7 @@ version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"glob", "glob",
"proc-macro-crate", "proc-macro-crate",
"proc-macro2", "proc-macro2",
...@@ -6686,7 +6573,7 @@ version = "0.21.3" ...@@ -6686,7 +6573,7 @@ version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"ordered-multimap", "ordered-multimap",
] ]
...@@ -7268,7 +7155,7 @@ version = "0.10.6" ...@@ -7268,7 +7155,7 @@ version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures",
"digest", "digest",
] ]
...@@ -7279,7 +7166,7 @@ version = "0.10.9" ...@@ -7279,7 +7166,7 @@ version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures",
"digest", "digest",
] ]
...@@ -7413,7 +7300,7 @@ checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" ...@@ -7413,7 +7300,7 @@ checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"libc", "libc",
"winapi 0.3.9", "winapi",
] ]
[[package]] [[package]]
...@@ -7466,7 +7353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -7466,7 +7353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cffa8a2e517b4e9f270c47e1c4120df90506d9451c1efa67e3698d66446d30ce" checksum = "cffa8a2e517b4e9f270c47e1c4120df90506d9451c1efa67e3698d66446d30ce"
dependencies = [ dependencies = [
"libc", "libc",
"winapi 0.3.9", "winapi",
] ]
[[package]] [[package]]
...@@ -7689,7 +7576,7 @@ version = "1.1.9" ...@@ -7689,7 +7576,7 @@ version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -7959,7 +7846,6 @@ checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" ...@@ -7959,7 +7846,6 @@ checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-core", "futures-core",
"futures-io",
"futures-sink", "futures-sink",
"futures-util", "futures-util",
"pin-project-lite", "pin-project-lite",
...@@ -8919,7 +8805,7 @@ version = "0.2.114" ...@@ -8919,7 +8805,7 @@ version = "0.2.114"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"once_cell", "once_cell",
"rustversion", "rustversion",
"wasm-bindgen-macro", "wasm-bindgen-macro",
...@@ -8932,7 +8818,7 @@ version = "0.4.64" ...@@ -8932,7 +8818,7 @@ version = "0.4.64"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"futures-util", "futures-util",
"js-sys", "js-sys",
"once_cell", "once_cell",
...@@ -9063,12 +8949,6 @@ version = "0.1.12" ...@@ -9063,12 +8949,6 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
[[package]]
name = "winapi"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
[[package]] [[package]]
name = "winapi" name = "winapi"
version = "0.3.9" version = "0.3.9"
...@@ -9079,12 +8959,6 @@ dependencies = [ ...@@ -9079,12 +8959,6 @@ dependencies = [
"winapi-x86_64-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu",
] ]
[[package]]
name = "winapi-build"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
[[package]] [[package]]
name = "winapi-i686-pc-windows-gnu" name = "winapi-i686-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
...@@ -9097,7 +8971,7 @@ version = "0.1.11" ...@@ -9097,7 +8971,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
...@@ -9422,7 +9296,7 @@ version = "0.50.0" ...@@ -9422,7 +9296,7 @@ version = "0.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
...@@ -9526,16 +9400,6 @@ version = "0.6.2" ...@@ -9526,16 +9400,6 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
[[package]]
name = "ws2_32-sys"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
dependencies = [
"winapi 0.2.8",
"winapi-build",
]
[[package]] [[package]]
name = "xxhash-rust" name = "xxhash-rust"
version = "0.8.15" version = "0.8.15"
...@@ -9635,33 +9499,6 @@ version = "1.8.2" ...@@ -9635,33 +9499,6 @@ version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
[[package]]
name = "zeromq"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a4528179201f6eecf211961a7d3276faa61554c82651ecc66387f68fc3004bd"
dependencies = [
"async-trait",
"asynchronous-codec",
"bytes",
"crossbeam-queue",
"dashmap 5.5.3",
"futures-channel",
"futures-io",
"futures-task",
"futures-util",
"log",
"num-traits",
"once_cell",
"parking_lot",
"rand 0.8.5",
"regex",
"thiserror 1.0.69",
"tokio",
"tokio-util",
"uuid",
]
[[package]] [[package]]
name = "zeromq-src" name = "zeromq-src"
version = "0.2.6+4.3.4" version = "0.2.6+4.3.4"
......
...@@ -64,7 +64,6 @@ anyhow = { version = "1" } ...@@ -64,7 +64,6 @@ anyhow = { version = "1" }
async-nats = { version = "0.45.0", features = ["service"] } async-nats = { version = "0.45.0", features = ["service"] }
async-stream = { version = "0.3" } async-stream = { version = "0.3" }
async-trait = { version = "0.1" } async-trait = { version = "0.1" }
async_zmq = { version = "0.4.0" }
blake3 = { version = "1" } blake3 = { version = "1" }
bytes = { version = "1" } bytes = { version = "1" }
chrono = { version = "0.4", default-features = false, features = [ chrono = { version = "0.4", default-features = false, features = [
...@@ -74,7 +73,7 @@ chrono = { version = "0.4", default-features = false, features = [ ...@@ -74,7 +73,7 @@ chrono = { version = "0.4", default-features = false, features = [
"now", "now",
"serde", "serde",
] } ] }
cudarc = { version = "0.19.2", features = ["cuda-version-from-build-system", "fallback-latest"] } cudarc = { version = "=0.19.3", features = ["cuda-version-from-build-system", "fallback-latest"] }
dashmap = { version = "6.1" } dashmap = { version = "6.1" }
derive_builder = { version = "0.20" } derive_builder = { version = "0.20" }
derive-getters = { version = "0.5" } derive-getters = { version = "0.5" }
...@@ -115,7 +114,6 @@ strum = { version = "0.27", features = ["derive"] } ...@@ -115,7 +114,6 @@ strum = { version = "0.27", features = ["derive"] }
tempfile = "3" tempfile = "3"
thiserror = { version = "2.0.17" } thiserror = { version = "2.0.17" }
tmq = { version = "0.5.0" } tmq = { version = "0.5.0" }
zmq = { version = "0.10" }
tokio = { version = "=1.48.0", features = ["full"] } tokio = { version = "=1.48.0", features = ["full"] }
tokio-stream = { version = "0.1" } tokio-stream = { version = "0.1" }
tokio-util = { version = "0.7.17", features = ["codec", "net", "rt", "io-util"] } tokio-util = { version = "0.7.17", features = ["codec", "net", "rt", "io-util"] }
......
...@@ -14,7 +14,7 @@ version = "0.8.12" ...@@ -14,7 +14,7 @@ version = "0.8.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"getrandom 0.3.4", "getrandom 0.3.4",
"once_cell", "once_cell",
"serde", "serde",
...@@ -131,9 +131,9 @@ dependencies = [ ...@@ -131,9 +131,9 @@ dependencies = [
[[package]] [[package]]
name = "arc-swap" name = "arc-swap"
version = "1.8.2" version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6"
dependencies = [ dependencies = [
"rustversion", "rustversion",
] ]
...@@ -287,33 +287,6 @@ dependencies = [ ...@@ -287,33 +287,6 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "async_zmq"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "499c7104563d51146553fb0963f00210d8825833789e0ed270dd96aeeff6ac93"
dependencies = [
"futures",
"mio 0.6.23",
"once_cell",
"slab",
"thiserror 1.0.69",
"zmq",
]
[[package]]
name = "asynchronous-codec"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233"
dependencies = [
"bytes",
"futures-sink",
"futures-util",
"memchr",
"pin-project-lite",
]
[[package]] [[package]]
name = "atomic" name = "atomic"
version = "0.6.1" version = "0.6.1"
...@@ -380,9 +353,9 @@ dependencies = [ ...@@ -380,9 +353,9 @@ dependencies = [
[[package]] [[package]]
name = "aws-lc-rs" name = "aws-lc-rs"
version = "1.16.1" version = "1.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc"
dependencies = [ dependencies = [
"aws-lc-sys", "aws-lc-sys",
"zeroize", "zeroize",
...@@ -390,9 +363,9 @@ dependencies = [ ...@@ -390,9 +363,9 @@ dependencies = [
[[package]] [[package]]
name = "aws-lc-sys" name = "aws-lc-sys"
version = "0.38.0" version = "0.39.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399"
dependencies = [ dependencies = [
"cc", "cc",
"cmake", "cmake",
...@@ -574,7 +547,7 @@ dependencies = [ ...@@ -574,7 +547,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"regex", "regex",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"shlex", "shlex",
"syn", "syn",
] ]
...@@ -641,16 +614,16 @@ dependencies = [ ...@@ -641,16 +614,16 @@ dependencies = [
[[package]] [[package]]
name = "blake3" name = "blake3"
version = "1.8.3" version = "1.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"arrayvec", "arrayvec",
"cc", "cc",
"cfg-if 1.0.4", "cfg-if",
"constant_time_eq", "constant_time_eq",
"cpufeatures", "cpufeatures 0.3.0",
"memmap2", "memmap2",
"rayon-core", "rayon-core",
] ]
...@@ -754,9 +727,9 @@ dependencies = [ ...@@ -754,9 +727,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.57" version = "1.2.59"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283"
dependencies = [ dependencies = [
"find-msvc-tools", "find-msvc-tools",
"jobserver", "jobserver",
...@@ -783,12 +756,6 @@ dependencies = [ ...@@ -783,12 +756,6 @@ dependencies = [
"target-lexicon", "target-lexicon",
] ]
[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "1.0.4" version = "1.0.4"
...@@ -868,9 +835,9 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" ...@@ -868,9 +835,9 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]] [[package]]
name = "cmake" name = "cmake"
version = "0.1.57" version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
dependencies = [ dependencies = [
"cc", "cc",
] ]
...@@ -903,7 +870,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -903,7 +870,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
dependencies = [ dependencies = [
"castaway", "castaway",
"cfg-if 1.0.4", "cfg-if",
"itoa", "itoa",
"rustversion", "rustversion",
"ryu", "ryu",
...@@ -922,9 +889,9 @@ dependencies = [ ...@@ -922,9 +889,9 @@ dependencies = [
[[package]] [[package]]
name = "config" name = "config"
version = "0.15.21" version = "0.15.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fe5feec195269515c4722937cd7ffcfe7b4205d18d2e6577b7223ecb159ab00" checksum = "8e68cfe19cd7d23ffde002c24ffa5cda73931913ef394d5eaaa32037dc940c0c"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"convert_case", "convert_case",
...@@ -935,8 +902,8 @@ dependencies = [ ...@@ -935,8 +902,8 @@ dependencies = [
"serde-untagged", "serde-untagged",
"serde_core", "serde_core",
"serde_json", "serde_json",
"toml 1.0.6+spec-1.1.0", "toml 1.1.2+spec-1.1.0",
"winnow", "winnow 1.0.1",
"yaml-rust2", "yaml-rust2",
] ]
...@@ -1038,13 +1005,22 @@ dependencies = [ ...@@ -1038,13 +1005,22 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "cpufeatures"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "crc32fast" name = "crc32fast"
version = "1.5.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -1134,8 +1110,8 @@ version = "4.1.3" ...@@ -1134,8 +1110,8 @@ version = "4.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures 0.2.17",
"curve25519-dalek-derive", "curve25519-dalek-derive",
"digest", "digest",
"fiat-crypto", "fiat-crypto",
...@@ -1156,9 +1132,9 @@ dependencies = [ ...@@ -1156,9 +1132,9 @@ dependencies = [
[[package]] [[package]]
name = "daachorse" name = "daachorse"
version = "1.0.0" version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63b7ef7a4be509357f4804d0a22e830daddb48f19fd604e4ad32ddce04a94c36" checksum = "6f55d7153ba3b507595872a3874803f07a8a81d1e888abed8e5db7da0597d6e2"
[[package]] [[package]]
name = "darling" name = "darling"
...@@ -1279,7 +1255,7 @@ version = "5.5.3" ...@@ -1279,7 +1255,7 @@ version = "5.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"hashbrown 0.14.5", "hashbrown 0.14.5",
"lock_api", "lock_api",
"once_cell", "once_cell",
...@@ -1292,7 +1268,7 @@ version = "6.1.0" ...@@ -1292,7 +1268,7 @@ version = "6.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"crossbeam-utils", "crossbeam-utils",
"hashbrown 0.14.5", "hashbrown 0.14.5",
"lock_api", "lock_api",
...@@ -1452,9 +1428,9 @@ dependencies = [ ...@@ -1452,9 +1428,9 @@ dependencies = [
[[package]] [[package]]
name = "dircpy" name = "dircpy"
version = "0.3.19" version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a88521b0517f5f9d51d11925d8ab4523497dcf947073fa3231a311b63941131c" checksum = "ebcbec2b9a580ddee352ac38523d2ecd4dcaad53532957034394556909e27f4b"
dependencies = [ dependencies = [
"jwalk", "jwalk",
"log", "log",
...@@ -1534,33 +1510,6 @@ version = "1.0.20" ...@@ -1534,33 +1510,6 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
[[package]]
name = "dynamo-protocols"
version = "1.0.0"
dependencies = [
"async-openai-macros",
"backoff",
"base64 0.22.1",
"bytes",
"derive_builder",
"eventsource-stream",
"futures",
"rand 0.9.2",
"reqwest",
"reqwest-eventsource",
"secrecy",
"serde",
"serde_json",
"thiserror 2.0.18",
"tokio",
"tokio-stream",
"tokio-util",
"tracing",
"url",
"utoipa",
"uuid",
]
[[package]] [[package]]
name = "dynamo-config" name = "dynamo-config"
version = "1.0.0" version = "1.0.0"
...@@ -1585,7 +1534,7 @@ dependencies = [ ...@@ -1585,7 +1534,7 @@ dependencies = [
"prometheus", "prometheus",
"rand 0.9.2", "rand 0.9.2",
"rmp-serde", "rmp-serde",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"serde", "serde",
"thiserror 2.0.18", "thiserror 2.0.18",
"tokio", "tokio",
...@@ -1621,11 +1570,11 @@ dependencies = [ ...@@ -1621,11 +1570,11 @@ dependencies = [
"derive-getters", "derive-getters",
"derive_builder", "derive_builder",
"dialoguer", "dialoguer",
"dynamo-protocols",
"dynamo-kv-router", "dynamo-kv-router",
"dynamo-memory", "dynamo-memory",
"dynamo-mocker", "dynamo-mocker",
"dynamo-parsers", "dynamo-parsers",
"dynamo-protocols",
"dynamo-runtime", "dynamo-runtime",
"dynamo-tokens", "dynamo-tokens",
"either", "either",
...@@ -1679,7 +1628,6 @@ dependencies = [ ...@@ -1679,7 +1628,6 @@ dependencies = [
"uuid", "uuid",
"validator", "validator",
"xxhash-rust", "xxhash-rust",
"zeromq",
] ]
[[package]] [[package]]
...@@ -1712,7 +1660,7 @@ dependencies = [ ...@@ -1712,7 +1660,7 @@ dependencies = [
"ndarray-interp", "ndarray-interp",
"ndarray-npy", "ndarray-npy",
"rand 0.9.2", "rand 0.9.2",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"serde", "serde",
"serde_json", "serde_json",
"slotmap", "slotmap",
...@@ -1741,6 +1689,33 @@ dependencies = [ ...@@ -1741,6 +1689,33 @@ dependencies = [
"uuid", "uuid",
] ]
[[package]]
name = "dynamo-protocols"
version = "1.0.0"
dependencies = [
"async-openai-macros",
"backoff",
"base64 0.22.1",
"bytes",
"derive_builder",
"eventsource-stream",
"futures",
"rand 0.9.2",
"reqwest",
"reqwest-eventsource",
"secrecy",
"serde",
"serde_json",
"thiserror 2.0.18",
"tokio",
"tokio-stream",
"tokio-util",
"tracing",
"url",
"utoipa",
"uuid",
]
[[package]] [[package]]
name = "dynamo-runtime" name = "dynamo-runtime"
version = "1.0.0" version = "1.0.0"
...@@ -1751,7 +1726,6 @@ dependencies = [ ...@@ -1751,7 +1726,6 @@ dependencies = [
"async-once-cell", "async-once-cell",
"async-stream", "async-stream",
"async-trait", "async-trait",
"async_zmq",
"axum", "axum",
"bincode 1.3.3", "bincode 1.3.3",
"blake3", "blake3",
...@@ -1793,6 +1767,7 @@ dependencies = [ ...@@ -1793,6 +1767,7 @@ dependencies = [
"serde_json", "serde_json",
"socket2 0.5.10", "socket2 0.5.10",
"thiserror 2.0.18", "thiserror 2.0.18",
"tmq",
"tokio", "tokio",
"tokio-rayon", "tokio-rayon",
"tokio-stream", "tokio-stream",
...@@ -1805,7 +1780,6 @@ dependencies = [ ...@@ -1805,7 +1780,6 @@ dependencies = [
"uuid", "uuid",
"validator", "validator",
"xxhash-rust", "xxhash-rust",
"zmq",
] ]
[[package]] [[package]]
...@@ -1877,7 +1851,7 @@ version = "0.8.35" ...@@ -1877,7 +1851,7 @@ version = "0.8.35"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -2129,7 +2103,7 @@ version = "0.2.27" ...@@ -2129,7 +2103,7 @@ version = "0.2.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"libredox", "libredox",
] ]
...@@ -2215,22 +2189,6 @@ dependencies = [ ...@@ -2215,22 +2189,6 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "fuchsia-zircon"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
dependencies = [
"bitflags 1.3.2",
"fuchsia-zircon-sys",
]
[[package]]
name = "fuchsia-zircon-sys"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]] [[package]]
name = "futures" name = "futures"
version = "0.3.32" version = "0.3.32"
...@@ -2360,7 +2318,7 @@ version = "0.2.17" ...@@ -2360,7 +2318,7 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"js-sys", "js-sys",
"libc", "libc",
"wasi", "wasi",
...@@ -2373,7 +2331,7 @@ version = "0.3.4" ...@@ -2373,7 +2331,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"js-sys", "js-sys",
"libc", "libc",
"r-efi 5.3.0", "r-efi 5.3.0",
...@@ -2387,7 +2345,7 @@ version = "0.4.2" ...@@ -2387,7 +2345,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"r-efi 6.0.0", "r-efi 6.0.0",
"wasip2", "wasip2",
...@@ -2446,7 +2404,7 @@ dependencies = [ ...@@ -2446,7 +2404,7 @@ dependencies = [
"futures-core", "futures-core",
"futures-sink", "futures-sink",
"http", "http",
"indexmap 2.13.0", "indexmap 2.13.1",
"slab", "slab",
"tokio", "tokio",
"tokio-util", "tokio-util",
...@@ -2459,7 +2417,7 @@ version = "2.7.1" ...@@ -2459,7 +2417,7 @@ version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"crunchy", "crunchy",
"zerocopy", "zerocopy",
] ]
...@@ -2561,7 +2519,7 @@ version = "0.4.2" ...@@ -2561,7 +2519,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"windows-link", "windows-link",
] ]
...@@ -2619,9 +2577,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" ...@@ -2619,9 +2577,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "1.8.1" version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca"
dependencies = [ dependencies = [
"atomic-waker", "atomic-waker",
"bytes", "bytes",
...@@ -2634,7 +2592,6 @@ dependencies = [ ...@@ -2634,7 +2592,6 @@ dependencies = [
"httpdate", "httpdate",
"itoa", "itoa",
"pin-project-lite", "pin-project-lite",
"pin-utils",
"smallvec", "smallvec",
"tokio", "tokio",
"want", "want",
...@@ -2723,12 +2680,13 @@ dependencies = [ ...@@ -2723,12 +2680,13 @@ dependencies = [
[[package]] [[package]]
name = "icu_collections" name = "icu_collections"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"potential_utf", "potential_utf",
"utf8_iter",
"yoke", "yoke",
"zerofrom", "zerofrom",
"zerovec", "zerovec",
...@@ -2736,9 +2694,9 @@ dependencies = [ ...@@ -2736,9 +2694,9 @@ dependencies = [
[[package]] [[package]]
name = "icu_locale_core" name = "icu_locale_core"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"litemap", "litemap",
...@@ -2749,9 +2707,9 @@ dependencies = [ ...@@ -2749,9 +2707,9 @@ dependencies = [
[[package]] [[package]]
name = "icu_normalizer" name = "icu_normalizer"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4"
dependencies = [ dependencies = [
"icu_collections", "icu_collections",
"icu_normalizer_data", "icu_normalizer_data",
...@@ -2766,15 +2724,15 @@ dependencies = [ ...@@ -2766,15 +2724,15 @@ dependencies = [
[[package]] [[package]]
name = "icu_normalizer_data" name = "icu_normalizer_data"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38"
[[package]] [[package]]
name = "icu_properties" name = "icu_properties"
version = "2.1.2" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de"
dependencies = [ dependencies = [
"icu_collections", "icu_collections",
"icu_locale_core", "icu_locale_core",
...@@ -2786,15 +2744,15 @@ dependencies = [ ...@@ -2786,15 +2744,15 @@ dependencies = [
[[package]] [[package]]
name = "icu_properties_data" name = "icu_properties_data"
version = "2.1.2" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14"
[[package]] [[package]]
name = "icu_provider" name = "icu_provider"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_locale_core", "icu_locale_core",
...@@ -2892,9 +2850,9 @@ dependencies = [ ...@@ -2892,9 +2850,9 @@ dependencies = [
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "2.13.0" version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff"
dependencies = [ dependencies = [
"equivalent", "equivalent",
"hashbrown 0.16.1", "hashbrown 0.16.1",
...@@ -2956,7 +2914,7 @@ version = "0.1.13" ...@@ -2956,7 +2914,7 @@ version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -2972,22 +2930,13 @@ dependencies = [ ...@@ -2972,22 +2930,13 @@ dependencies = [
[[package]] [[package]]
name = "inventory" name = "inventory"
version = "0.3.22" version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "009ae045c87e7082cb72dab0ccd01ae075dd00141ddc108f43a0ea150a9e7227" checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b"
dependencies = [ dependencies = [
"rustversion", "rustversion",
] ]
[[package]]
name = "iovec"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "ipnet" name = "ipnet"
version = "2.12.0" version = "2.12.0"
...@@ -2996,9 +2945,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" ...@@ -2996,9 +2945,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
[[package]] [[package]]
name = "iri-string" name = "iri-string"
version = "0.7.10" version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20"
dependencies = [ dependencies = [
"memchr", "memchr",
"serde", "serde",
...@@ -3051,9 +3000,9 @@ dependencies = [ ...@@ -3051,9 +3000,9 @@ dependencies = [
[[package]] [[package]]
name = "itoa" name = "itoa"
version = "1.0.17" version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]] [[package]]
name = "jiff" name = "jiff"
...@@ -3108,10 +3057,12 @@ dependencies = [ ...@@ -3108,10 +3057,12 @@ dependencies = [
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.91" version = "0.3.94"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9"
dependencies = [ dependencies = [
"cfg-if",
"futures-util",
"once_cell", "once_cell",
"wasm-bindgen", "wasm-bindgen",
] ]
...@@ -3194,16 +3145,6 @@ dependencies = [ ...@@ -3194,16 +3145,6 @@ dependencies = [
"serde_json", "serde_json",
] ]
[[package]]
name = "kernel32-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
dependencies = [
"winapi 0.2.8",
"winapi-build",
]
[[package]] [[package]]
name = "kqueue" name = "kqueue"
version = "1.1.1" version = "1.1.1"
...@@ -3380,9 +3321,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" ...@@ -3380,9 +3321,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.183" version = "0.2.184"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
[[package]] [[package]]
name = "libfuzzer-sys" name = "libfuzzer-sys"
...@@ -3400,7 +3341,7 @@ version = "0.8.9" ...@@ -3400,7 +3341,7 @@ version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-link", "windows-link",
] ]
...@@ -3410,7 +3351,7 @@ version = "0.9.0" ...@@ -3410,7 +3351,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-link", "windows-link",
] ]
...@@ -3422,9 +3363,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" ...@@ -3422,9 +3363,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
[[package]] [[package]]
name = "libredox" name = "libredox"
version = "0.1.14" version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"libc", "libc",
...@@ -3446,15 +3387,15 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" ...@@ -3446,15 +3387,15 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
[[package]] [[package]]
name = "litemap" name = "litemap"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
[[package]] [[package]]
name = "local-ip-address" name = "local-ip-address"
version = "0.6.10" version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79ef8c257c92ade496781a32a581d43e3d512cf8ce714ecf04ea80f93ed0ff4a" checksum = "d4a59a0cb1c7f84471ad5cd38d768c2a29390d17f1ff2827cdf49bc53e8ac70b"
dependencies = [ dependencies = [
"libc", "libc",
"neli", "neli",
...@@ -3605,7 +3546,7 @@ version = "0.1.1" ...@@ -3605,7 +3546,7 @@ 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 = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"rayon", "rayon",
] ]
...@@ -3615,7 +3556,7 @@ version = "0.10.6" ...@@ -3615,7 +3556,7 @@ version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"digest", "digest",
] ]
...@@ -3676,20 +3617,19 @@ dependencies = [ ...@@ -3676,20 +3617,19 @@ dependencies = [
[[package]] [[package]]
name = "minijinja" name = "minijinja"
version = "2.17.1" version = "2.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ea5ea1e90055f200af6b8e52a4a34e05e77e7fee953a9fb40c631efdc43cab1" checksum = "805bfd7352166bae857ee569628b52bcd85a1cecf7810861ebceb1686b72b75d"
dependencies = [ dependencies = [
"memo-map", "memo-map",
"self_cell",
"serde", "serde",
] ]
[[package]] [[package]]
name = "minijinja-contrib" name = "minijinja-contrib"
version = "2.17.1" version = "2.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2fce60cb2e26ba7ddd485c8f5d3d635535e465c195bfb4af85971b428a985d0" checksum = "45092d80391870622fcf3bd82f5d2af18f99533ea60debb4bc9db0c76f0e809a"
dependencies = [ dependencies = [
"minijinja", "minijinja",
"serde", "serde",
...@@ -3711,25 +3651,6 @@ dependencies = [ ...@@ -3711,25 +3651,6 @@ dependencies = [
"simd-adler32", "simd-adler32",
] ]
[[package]]
name = "mio"
version = "0.6.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
dependencies = [
"cfg-if 0.1.10",
"fuchsia-zircon",
"fuchsia-zircon-sys",
"iovec",
"kernel32-sys",
"libc",
"log",
"miow",
"net2",
"slab",
"winapi 0.2.8",
]
[[package]] [[package]]
name = "mio" name = "mio"
version = "0.8.11" version = "0.8.11"
...@@ -3744,27 +3665,15 @@ dependencies = [ ...@@ -3744,27 +3665,15 @@ dependencies = [
[[package]] [[package]]
name = "mio" name = "mio"
version = "1.1.1" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
dependencies = [ dependencies = [
"libc", "libc",
"wasi", "wasi",
"windows-sys 0.61.2", "windows-sys 0.61.2",
] ]
[[package]]
name = "miow"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
dependencies = [
"kernel32-sys",
"net2",
"winapi 0.2.8",
"ws2_32-sys",
]
[[package]] [[package]]
name = "modelexpress-client" name = "modelexpress-client"
version = "0.2.2" version = "0.2.2"
...@@ -3918,17 +3827,6 @@ dependencies = [ ...@@ -3918,17 +3827,6 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "net2"
version = "0.2.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
dependencies = [
"cfg-if 0.1.10",
"libc",
"winapi 0.3.9",
]
[[package]] [[package]]
name = "new_debug_unreachable" name = "new_debug_unreachable"
version = "1.0.6" version = "1.0.6"
...@@ -3942,7 +3840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -3942,7 +3840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"memoffset 0.7.1", "memoffset 0.7.1",
"pin-utils", "pin-utils",
...@@ -3955,7 +3853,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -3955,7 +3853,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"cfg-if 1.0.4", "cfg-if",
"cfg_aliases", "cfg_aliases",
"libc", "libc",
] ]
...@@ -4081,9 +3979,9 @@ dependencies = [ ...@@ -4081,9 +3979,9 @@ dependencies = [
[[package]] [[package]]
name = "num-conv" name = "num-conv"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967"
[[package]] [[package]]
name = "num-derive" name = "num-derive"
...@@ -4474,9 +4372,9 @@ dependencies = [ ...@@ -4474,9 +4372,9 @@ dependencies = [
[[package]] [[package]]
name = "opentelemetry-otlp" name = "opentelemetry-otlp"
version = "0.31.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f"
dependencies = [ dependencies = [
"http", "http",
"opentelemetry", "opentelemetry",
...@@ -4593,7 +4491,7 @@ version = "0.9.12" ...@@ -4593,7 +4491,7 @@ version = "0.9.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"redox_syscall 0.5.18", "redox_syscall 0.5.18",
"smallvec", "smallvec",
...@@ -4738,7 +4636,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -4738,7 +4636,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772"
dependencies = [ dependencies = [
"fixedbitset", "fixedbitset",
"indexmap 2.13.0", "indexmap 2.13.1",
] ]
[[package]] [[package]]
...@@ -4749,7 +4647,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" ...@@ -4749,7 +4647,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455"
dependencies = [ dependencies = [
"fixedbitset", "fixedbitset",
"hashbrown 0.15.5", "hashbrown 0.15.5",
"indexmap 2.13.0", "indexmap 2.13.1",
] ]
[[package]] [[package]]
...@@ -4874,9 +4772,9 @@ dependencies = [ ...@@ -4874,9 +4772,9 @@ dependencies = [
[[package]] [[package]]
name = "potential_utf" name = "potential_utf"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564"
dependencies = [ dependencies = [
"zerovec", "zerovec",
] ]
...@@ -4975,7 +4873,7 @@ version = "0.14.0" ...@@ -4975,7 +4873,7 @@ version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"fnv", "fnv",
"lazy_static", "lazy_static",
"memchr", "memchr",
...@@ -5111,9 +5009,9 @@ dependencies = [ ...@@ -5111,9 +5009,9 @@ dependencies = [
[[package]] [[package]]
name = "pulldown-cmark" name = "pulldown-cmark"
version = "0.13.1" version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83c41efbf8f90ac44de7f3a868f0867851d261b56291732d0cbf7cceaaeb55a6" checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"memchr", "memchr",
...@@ -5154,7 +5052,7 @@ version = "0.23.5" ...@@ -5154,7 +5052,7 @@ version = "0.23.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872" checksum = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"indoc", "indoc",
"libc", "libc",
"memoffset 0.9.1", "memoffset 0.9.1",
...@@ -5275,7 +5173,7 @@ dependencies = [ ...@@ -5275,7 +5173,7 @@ dependencies = [
"pin-project-lite", "pin-project-lite",
"quinn-proto", "quinn-proto",
"quinn-udp", "quinn-udp",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"rustls", "rustls",
"socket2 0.6.3", "socket2 0.6.3",
"thiserror 2.0.18", "thiserror 2.0.18",
...@@ -5295,7 +5193,7 @@ dependencies = [ ...@@ -5295,7 +5193,7 @@ dependencies = [
"lru-slab", "lru-slab",
"rand 0.9.2", "rand 0.9.2",
"ring", "ring",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"rustls", "rustls",
"rustls-pki-types", "rustls-pki-types",
"slab", "slab",
...@@ -5413,7 +5311,7 @@ dependencies = [ ...@@ -5413,7 +5311,7 @@ dependencies = [
"av1-grain", "av1-grain",
"bitstream-io", "bitstream-io",
"built", "built",
"cfg-if 1.0.4", "cfg-if",
"interpolate_name", "interpolate_name",
"itertools 0.14.0", "itertools 0.14.0",
"libc", "libc",
...@@ -5640,7 +5538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -5640,7 +5538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
dependencies = [ dependencies = [
"cc", "cc",
"cfg-if 1.0.4", "cfg-if",
"getrandom 0.2.17", "getrandom 0.2.17",
"libc", "libc",
"untrusted", "untrusted",
...@@ -5668,9 +5566,9 @@ dependencies = [ ...@@ -5668,9 +5566,9 @@ dependencies = [
[[package]] [[package]]
name = "ron" name = "ron"
version = "0.12.0" version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd490c5b18261893f14449cbd28cb9c0b637aebf161cd77900bfdedaff21ec32" checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"once_cell", "once_cell",
...@@ -5720,7 +5618,7 @@ version = "0.21.3" ...@@ -5720,7 +5618,7 @@ version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"ordered-multimap", "ordered-multimap",
] ]
...@@ -5732,9 +5630,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" ...@@ -5732,9 +5630,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]] [[package]]
name = "rustc-hash" name = "rustc-hash"
version = "2.1.1" version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
[[package]] [[package]]
name = "rustc_version" name = "rustc_version"
...@@ -5782,7 +5680,7 @@ dependencies = [ ...@@ -5782,7 +5680,7 @@ dependencies = [
"once_cell", "once_cell",
"ring", "ring",
"rustls-pki-types", "rustls-pki-types",
"rustls-webpki 0.103.9", "rustls-webpki 0.103.10",
"subtle", "subtle",
"zeroize", "zeroize",
] ]
...@@ -5843,9 +5741,9 @@ dependencies = [ ...@@ -5843,9 +5741,9 @@ dependencies = [
[[package]] [[package]]
name = "rustls-webpki" name = "rustls-webpki"
version = "0.103.9" version = "0.103.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
dependencies = [ dependencies = [
"aws-lc-rs", "aws-lc-rs",
"ring", "ring",
...@@ -6029,17 +5927,11 @@ dependencies = [ ...@@ -6029,17 +5927,11 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "self_cell"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89"
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.27" version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
[[package]] [[package]]
name = "serde" name = "serde"
...@@ -6110,7 +6002,7 @@ version = "1.0.149" ...@@ -6110,7 +6002,7 @@ version = "1.0.149"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"itoa", "itoa",
"memchr", "memchr",
"serde", "serde",
...@@ -6160,9 +6052,9 @@ dependencies = [ ...@@ -6160,9 +6052,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_spanned" name = "serde_spanned"
version = "1.0.4" version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
dependencies = [ dependencies = [
"serde_core", "serde_core",
] ]
...@@ -6189,7 +6081,7 @@ dependencies = [ ...@@ -6189,7 +6081,7 @@ dependencies = [
"chrono", "chrono",
"hex", "hex",
"indexmap 1.9.3", "indexmap 1.9.3",
"indexmap 2.13.0", "indexmap 2.13.1",
"schemars 0.9.0", "schemars 0.9.0",
"schemars 1.2.1", "schemars 1.2.1",
"serde_core", "serde_core",
...@@ -6216,7 +6108,7 @@ version = "0.9.34+deprecated" ...@@ -6216,7 +6108,7 @@ version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"itoa", "itoa",
"ryu", "ryu",
"serde", "serde",
...@@ -6229,8 +6121,8 @@ version = "0.10.6" ...@@ -6229,8 +6121,8 @@ version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures 0.2.17",
"digest", "digest",
] ]
...@@ -6240,8 +6132,8 @@ version = "0.10.9" ...@@ -6240,8 +6132,8 @@ version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures 0.2.17",
"digest", "digest",
] ]
...@@ -6300,9 +6192,9 @@ dependencies = [ ...@@ -6300,9 +6192,9 @@ dependencies = [
[[package]] [[package]]
name = "simd-adler32" name = "simd-adler32"
version = "0.3.8" version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
[[package]] [[package]]
name = "simd_helpers" name = "simd_helpers"
...@@ -6368,7 +6260,7 @@ checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" ...@@ -6368,7 +6260,7 @@ checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"libc", "libc",
"winapi 0.3.9", "winapi",
] ]
[[package]] [[package]]
...@@ -6577,7 +6469,7 @@ version = "1.1.9" ...@@ -6577,7 +6469,7 @@ version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -6662,9 +6554,9 @@ dependencies = [ ...@@ -6662,9 +6554,9 @@ dependencies = [
[[package]] [[package]]
name = "tinystr" name = "tinystr"
version = "0.8.2" version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"zerovec", "zerovec",
...@@ -6740,7 +6632,7 @@ checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" ...@@ -6740,7 +6632,7 @@ checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
dependencies = [ dependencies = [
"bytes", "bytes",
"libc", "libc",
"mio 1.1.1", "mio 1.2.0",
"parking_lot", "parking_lot",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
...@@ -6812,7 +6704,6 @@ checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" ...@@ -6812,7 +6704,6 @@ checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-core", "futures-core",
"futures-io",
"futures-sink", "futures-sink",
"futures-util", "futures-util",
"pin-project-lite", "pin-project-lite",
...@@ -6855,15 +6746,15 @@ dependencies = [ ...@@ -6855,15 +6746,15 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "1.0.6+spec-1.1.0" version = "1.1.2+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "399b1124a3c9e16766831c6bba21e50192572cdd98706ea114f9502509686ffc" checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"
dependencies = [ dependencies = [
"serde_core", "serde_core",
"serde_spanned 1.0.4", "serde_spanned 1.1.1",
"toml_datetime 1.0.0+spec-1.1.0", "toml_datetime 1.1.1+spec-1.1.0",
"toml_parser", "toml_parser",
"winnow", "winnow 1.0.1",
] ]
[[package]] [[package]]
...@@ -6877,9 +6768,9 @@ dependencies = [ ...@@ -6877,9 +6768,9 @@ dependencies = [
[[package]] [[package]]
name = "toml_datetime" name = "toml_datetime"
version = "1.0.0+spec-1.1.0" version = "1.1.1+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
dependencies = [ dependencies = [
"serde_core", "serde_core",
] ]
...@@ -6890,21 +6781,21 @@ version = "0.22.27" ...@@ -6890,21 +6781,21 @@ version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"serde", "serde",
"serde_spanned 0.6.9", "serde_spanned 0.6.9",
"toml_datetime 0.6.11", "toml_datetime 0.6.11",
"toml_write", "toml_write",
"winnow", "winnow 0.7.15",
] ]
[[package]] [[package]]
name = "toml_parser" name = "toml_parser"
version = "1.0.9+spec-1.1.0" version = "1.1.2+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
dependencies = [ dependencies = [
"winnow", "winnow 1.0.1",
] ]
[[package]] [[package]]
...@@ -7033,7 +6924,7 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" ...@@ -7033,7 +6924,7 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"futures-util", "futures-util",
"indexmap 2.13.0", "indexmap 2.13.1",
"pin-project-lite", "pin-project-lite",
"slab", "slab",
"sync_wrapper", "sync_wrapper",
...@@ -7299,9 +7190,9 @@ dependencies = [ ...@@ -7299,9 +7190,9 @@ dependencies = [
[[package]] [[package]]
name = "unicode-segmentation" name = "unicode-segmentation"
version = "1.12.0" version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
...@@ -7423,7 +7314,7 @@ version = "5.4.0" ...@@ -7423,7 +7314,7 @@ version = "5.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fcc29c80c21c31608227e0912b2d7fddba57ad76b606890627ba8ee7964e993" checksum = "2fcc29c80c21c31608227e0912b2d7fddba57ad76b606890627ba8ee7964e993"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"serde", "serde",
"serde_json", "serde_json",
"utoipa-gen", "utoipa-gen",
...@@ -7463,9 +7354,9 @@ dependencies = [ ...@@ -7463,9 +7354,9 @@ dependencies = [
[[package]] [[package]]
name = "uuid" name = "uuid"
version = "1.22.0" version = "1.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9"
dependencies = [ dependencies = [
"getrandom 0.4.2", "getrandom 0.4.2",
"js-sys", "js-sys",
...@@ -7583,11 +7474,11 @@ dependencies = [ ...@@ -7583,11 +7474,11 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"once_cell", "once_cell",
"rustversion", "rustversion",
"wasm-bindgen-macro", "wasm-bindgen-macro",
...@@ -7596,23 +7487,19 @@ dependencies = [ ...@@ -7596,23 +7487,19 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-futures" name = "wasm-bindgen-futures"
version = "0.4.64" version = "0.4.67"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e"
dependencies = [ dependencies = [
"cfg-if 1.0.4",
"futures-util",
"js-sys", "js-sys",
"once_cell",
"wasm-bindgen", "wasm-bindgen",
"web-sys",
] ]
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be"
dependencies = [ dependencies = [
"quote", "quote",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
...@@ -7620,9 +7507,9 @@ dependencies = [ ...@@ -7620,9 +7507,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"proc-macro2", "proc-macro2",
...@@ -7633,9 +7520,9 @@ dependencies = [ ...@@ -7633,9 +7520,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
...@@ -7657,7 +7544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -7657,7 +7544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"indexmap 2.13.0", "indexmap 2.13.1",
"wasm-encoder", "wasm-encoder",
"wasmparser", "wasmparser",
] ]
...@@ -7683,15 +7570,15 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" ...@@ -7683,15 +7570,15 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"hashbrown 0.15.5", "hashbrown 0.15.5",
"indexmap 2.13.0", "indexmap 2.13.1",
"semver", "semver",
] ]
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.91" version = "0.3.94"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",
...@@ -7731,12 +7618,6 @@ version = "0.1.12" ...@@ -7731,12 +7618,6 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
[[package]]
name = "winapi"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
[[package]] [[package]]
name = "winapi" name = "winapi"
version = "0.3.9" version = "0.3.9"
...@@ -7747,12 +7628,6 @@ dependencies = [ ...@@ -7747,12 +7628,6 @@ dependencies = [
"winapi-x86_64-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu",
] ]
[[package]]
name = "winapi-build"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
[[package]] [[package]]
name = "winapi-i686-pc-windows-gnu" name = "winapi-i686-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
...@@ -8084,6 +7959,15 @@ dependencies = [ ...@@ -8084,6 +7959,15 @@ dependencies = [
"memchr", "memchr",
] ]
[[package]]
name = "winnow"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "wit-bindgen" name = "wit-bindgen"
version = "0.51.0" version = "0.51.0"
...@@ -8112,7 +7996,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" ...@@ -8112,7 +7996,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"heck", "heck",
"indexmap 2.13.0", "indexmap 2.13.1",
"prettyplease", "prettyplease",
"syn", "syn",
"wasm-metadata", "wasm-metadata",
...@@ -8143,7 +8027,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" ...@@ -8143,7 +8027,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bitflags 2.11.0", "bitflags 2.11.0",
"indexmap 2.13.0", "indexmap 2.13.1",
"log", "log",
"serde", "serde",
"serde_derive", "serde_derive",
...@@ -8162,7 +8046,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" ...@@ -8162,7 +8046,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"id-arena", "id-arena",
"indexmap 2.13.0", "indexmap 2.13.1",
"log", "log",
"semver", "semver",
"serde", "serde",
...@@ -8180,19 +8064,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" ...@@ -8180,19 +8064,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
[[package]] [[package]]
name = "writeable" name = "writeable"
version = "0.6.2" version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
[[package]]
name = "ws2_32-sys"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
dependencies = [
"winapi 0.2.8",
"winapi-build",
]
[[package]] [[package]]
name = "xxhash-rust" name = "xxhash-rust"
...@@ -8225,9 +8099,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" ...@@ -8225,9 +8099,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]] [[package]]
name = "yoke" name = "yoke"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
dependencies = [ dependencies = [
"stable_deref_trait", "stable_deref_trait",
"yoke-derive", "yoke-derive",
...@@ -8236,9 +8110,9 @@ dependencies = [ ...@@ -8236,9 +8110,9 @@ dependencies = [
[[package]] [[package]]
name = "yoke-derive" name = "yoke-derive"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8248,18 +8122,18 @@ dependencies = [ ...@@ -8248,18 +8122,18 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.8.42" version = "0.8.48"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9"
dependencies = [ dependencies = [
"zerocopy-derive", "zerocopy-derive",
] ]
[[package]] [[package]]
name = "zerocopy-derive" name = "zerocopy-derive"
version = "0.8.42" version = "0.8.48"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8268,18 +8142,18 @@ dependencies = [ ...@@ -8268,18 +8142,18 @@ dependencies = [
[[package]] [[package]]
name = "zerofrom" name = "zerofrom"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df"
dependencies = [ dependencies = [
"zerofrom-derive", "zerofrom-derive",
] ]
[[package]] [[package]]
name = "zerofrom-derive" name = "zerofrom-derive"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8293,33 +8167,6 @@ version = "1.8.2" ...@@ -8293,33 +8167,6 @@ version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
[[package]]
name = "zeromq"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a4528179201f6eecf211961a7d3276faa61554c82651ecc66387f68fc3004bd"
dependencies = [
"async-trait",
"asynchronous-codec",
"bytes",
"crossbeam-queue",
"dashmap 5.5.3",
"futures-channel",
"futures-io",
"futures-task",
"futures-util",
"log",
"num-traits",
"once_cell",
"parking_lot",
"rand 0.8.5",
"regex",
"thiserror 1.0.69",
"tokio",
"tokio-util",
"uuid",
]
[[package]] [[package]]
name = "zeromq-src" name = "zeromq-src"
version = "0.2.6+4.3.4" version = "0.2.6+4.3.4"
...@@ -8332,9 +8179,9 @@ dependencies = [ ...@@ -8332,9 +8179,9 @@ dependencies = [
[[package]] [[package]]
name = "zerotrie" name = "zerotrie"
version = "0.2.3" version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"yoke", "yoke",
...@@ -8343,9 +8190,9 @@ dependencies = [ ...@@ -8343,9 +8190,9 @@ dependencies = [
[[package]] [[package]]
name = "zerovec" name = "zerovec"
version = "0.11.5" version = "0.11.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239"
dependencies = [ dependencies = [
"yoke", "yoke",
"zerofrom", "zerofrom",
...@@ -8354,9 +8201,9 @@ dependencies = [ ...@@ -8354,9 +8201,9 @@ dependencies = [
[[package]] [[package]]
name = "zerovec-derive" name = "zerovec-derive"
version = "0.11.2" version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8374,7 +8221,7 @@ dependencies = [ ...@@ -8374,7 +8221,7 @@ dependencies = [
"crossbeam-utils", "crossbeam-utils",
"displaydoc", "displaydoc",
"flate2", "flate2",
"indexmap 2.13.0", "indexmap 2.13.1",
"memchr", "memchr",
"thiserror 2.0.18", "thiserror 2.0.18",
"zopfli", "zopfli",
...@@ -8389,7 +8236,7 @@ dependencies = [ ...@@ -8389,7 +8236,7 @@ dependencies = [
"arbitrary", "arbitrary",
"crc32fast", "crc32fast",
"flate2", "flate2",
"indexmap 2.13.0", "indexmap 2.13.1",
"memchr", "memchr",
"zopfli", "zopfli",
] ]
...@@ -8457,9 +8304,9 @@ dependencies = [ ...@@ -8457,9 +8304,9 @@ dependencies = [
[[package]] [[package]]
name = "zune-jpeg" name = "zune-jpeg"
version = "0.5.13" version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec5f41c76397b7da451efd19915684f727d7e1d516384ca6bd0ec43ec94de23c" checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
dependencies = [ dependencies = [
"zune-core", "zune-core",
] ]
...@@ -56,6 +56,6 @@ pyo3-async-runtimes = { version = "0.23.0", default-features = false, features = ...@@ -56,6 +56,6 @@ pyo3-async-runtimes = { version = "0.23.0", default-features = false, features =
] } ] }
dlpark = { version = "0.5", features = ["pyo3", "half"], optional = true } dlpark = { version = "0.5", features = ["pyo3", "half"], optional = true }
cudarc = { version = "0.19.2", features = ["cuda-version-from-build-system", "fallback-latest"], optional = true } cudarc = { version = "=0.19.3", features = ["cuda-version-from-build-system", "fallback-latest"], optional = true }
[dev-dependencies] [dev-dependencies]
...@@ -14,7 +14,7 @@ version = "0.8.12" ...@@ -14,7 +14,7 @@ version = "0.8.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"getrandom 0.3.4", "getrandom 0.3.4",
"once_cell", "once_cell",
"serde", "serde",
...@@ -131,9 +131,9 @@ dependencies = [ ...@@ -131,9 +131,9 @@ dependencies = [
[[package]] [[package]]
name = "arc-swap" name = "arc-swap"
version = "1.8.2" version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6"
dependencies = [ dependencies = [
"rustversion", "rustversion",
] ]
...@@ -287,33 +287,6 @@ dependencies = [ ...@@ -287,33 +287,6 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "async_zmq"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "499c7104563d51146553fb0963f00210d8825833789e0ed270dd96aeeff6ac93"
dependencies = [
"futures",
"mio 0.6.23",
"once_cell",
"slab",
"thiserror 1.0.69",
"zmq",
]
[[package]]
name = "asynchronous-codec"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233"
dependencies = [
"bytes",
"futures-sink",
"futures-util",
"memchr",
"pin-project-lite",
]
[[package]] [[package]]
name = "atomic" name = "atomic"
version = "0.6.1" version = "0.6.1"
...@@ -380,9 +353,9 @@ dependencies = [ ...@@ -380,9 +353,9 @@ dependencies = [
[[package]] [[package]]
name = "aws-lc-rs" name = "aws-lc-rs"
version = "1.16.1" version = "1.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc"
dependencies = [ dependencies = [
"aws-lc-sys", "aws-lc-sys",
"zeroize", "zeroize",
...@@ -390,9 +363,9 @@ dependencies = [ ...@@ -390,9 +363,9 @@ dependencies = [
[[package]] [[package]]
name = "aws-lc-sys" name = "aws-lc-sys"
version = "0.38.0" version = "0.39.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399"
dependencies = [ dependencies = [
"cc", "cc",
"cmake", "cmake",
...@@ -592,7 +565,7 @@ dependencies = [ ...@@ -592,7 +565,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"regex", "regex",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"shlex", "shlex",
"syn", "syn",
] ]
...@@ -659,16 +632,16 @@ dependencies = [ ...@@ -659,16 +632,16 @@ dependencies = [
[[package]] [[package]]
name = "blake3" name = "blake3"
version = "1.8.3" version = "1.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"arrayvec", "arrayvec",
"cc", "cc",
"cfg-if 1.0.4", "cfg-if",
"constant_time_eq", "constant_time_eq",
"cpufeatures", "cpufeatures 0.3.0",
"memmap2", "memmap2",
"rayon-core", "rayon-core",
] ]
...@@ -772,9 +745,9 @@ dependencies = [ ...@@ -772,9 +745,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.57" version = "1.2.59"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283"
dependencies = [ dependencies = [
"find-msvc-tools", "find-msvc-tools",
"jobserver", "jobserver",
...@@ -801,12 +774,6 @@ dependencies = [ ...@@ -801,12 +774,6 @@ dependencies = [
"target-lexicon", "target-lexicon",
] ]
[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "1.0.4" version = "1.0.4"
...@@ -886,9 +853,9 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" ...@@ -886,9 +853,9 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]] [[package]]
name = "cmake" name = "cmake"
version = "0.1.57" version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
dependencies = [ dependencies = [
"cc", "cc",
] ]
...@@ -921,7 +888,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -921,7 +888,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
dependencies = [ dependencies = [
"castaway", "castaway",
"cfg-if 1.0.4", "cfg-if",
"itoa", "itoa",
"rustversion", "rustversion",
"ryu", "ryu",
...@@ -940,9 +907,9 @@ dependencies = [ ...@@ -940,9 +907,9 @@ dependencies = [
[[package]] [[package]]
name = "config" name = "config"
version = "0.15.21" version = "0.15.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fe5feec195269515c4722937cd7ffcfe7b4205d18d2e6577b7223ecb159ab00" checksum = "8e68cfe19cd7d23ffde002c24ffa5cda73931913ef394d5eaaa32037dc940c0c"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"convert_case", "convert_case",
...@@ -953,8 +920,8 @@ dependencies = [ ...@@ -953,8 +920,8 @@ dependencies = [
"serde-untagged", "serde-untagged",
"serde_core", "serde_core",
"serde_json", "serde_json",
"toml 1.0.6+spec-1.1.0", "toml 1.1.2+spec-1.1.0",
"winnow", "winnow 1.0.1",
"yaml-rust2", "yaml-rust2",
] ]
...@@ -1056,13 +1023,22 @@ dependencies = [ ...@@ -1056,13 +1023,22 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "cpufeatures"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "crc32fast" name = "crc32fast"
version = "1.5.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -1152,8 +1128,8 @@ version = "4.1.3" ...@@ -1152,8 +1128,8 @@ version = "4.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures 0.2.17",
"curve25519-dalek-derive", "curve25519-dalek-derive",
"digest", "digest",
"fiat-crypto", "fiat-crypto",
...@@ -1174,9 +1150,9 @@ dependencies = [ ...@@ -1174,9 +1150,9 @@ dependencies = [
[[package]] [[package]]
name = "daachorse" name = "daachorse"
version = "1.0.0" version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63b7ef7a4be509357f4804d0a22e830daddb48f19fd604e4ad32ddce04a94c36" checksum = "6f55d7153ba3b507595872a3874803f07a8a81d1e888abed8e5db7da0597d6e2"
[[package]] [[package]]
name = "darling" name = "darling"
...@@ -1297,7 +1273,7 @@ version = "5.5.3" ...@@ -1297,7 +1273,7 @@ version = "5.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"hashbrown 0.14.5", "hashbrown 0.14.5",
"lock_api", "lock_api",
"once_cell", "once_cell",
...@@ -1310,7 +1286,7 @@ version = "6.1.0" ...@@ -1310,7 +1286,7 @@ version = "6.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"crossbeam-utils", "crossbeam-utils",
"hashbrown 0.14.5", "hashbrown 0.14.5",
"lock_api", "lock_api",
...@@ -1470,9 +1446,9 @@ dependencies = [ ...@@ -1470,9 +1446,9 @@ dependencies = [
[[package]] [[package]]
name = "dircpy" name = "dircpy"
version = "0.3.19" version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a88521b0517f5f9d51d11925d8ab4523497dcf947073fa3231a311b63941131c" checksum = "ebcbec2b9a580ddee352ac38523d2ecd4dcaad53532957034394556909e27f4b"
dependencies = [ dependencies = [
"jwalk", "jwalk",
"log", "log",
...@@ -1542,33 +1518,6 @@ version = "1.0.20" ...@@ -1542,33 +1518,6 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
[[package]]
name = "dynamo-protocols"
version = "1.0.0"
dependencies = [
"async-openai-macros",
"backoff",
"base64 0.22.1",
"bytes",
"derive_builder",
"eventsource-stream",
"futures",
"rand 0.9.2",
"reqwest",
"reqwest-eventsource",
"secrecy",
"serde",
"serde_json",
"thiserror 2.0.18",
"tokio",
"tokio-stream",
"tokio-util",
"tracing",
"url",
"utoipa",
"uuid",
]
[[package]] [[package]]
name = "dynamo-config" name = "dynamo-config"
version = "1.0.0" version = "1.0.0"
...@@ -1583,7 +1532,6 @@ dependencies = [ ...@@ -1583,7 +1532,6 @@ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
"axum", "axum",
"bytes",
"dashmap 6.1.0", "dashmap 6.1.0",
"derive-getters", "derive-getters",
"derive_builder", "derive_builder",
...@@ -1596,7 +1544,7 @@ dependencies = [ ...@@ -1596,7 +1544,7 @@ dependencies = [
"rand 0.9.2", "rand 0.9.2",
"reqwest", "reqwest",
"rmp-serde", "rmp-serde",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"serde", "serde",
"serde_json", "serde_json",
"thiserror 2.0.18", "thiserror 2.0.18",
...@@ -1606,7 +1554,7 @@ dependencies = [ ...@@ -1606,7 +1554,7 @@ dependencies = [
"uuid", "uuid",
"validator", "validator",
"xxhash-rust", "xxhash-rust",
"zeromq", "zmq",
] ]
[[package]] [[package]]
...@@ -1634,11 +1582,11 @@ dependencies = [ ...@@ -1634,11 +1582,11 @@ dependencies = [
"derive-getters", "derive-getters",
"derive_builder", "derive_builder",
"dialoguer", "dialoguer",
"dynamo-protocols",
"dynamo-kv-router", "dynamo-kv-router",
"dynamo-memory", "dynamo-memory",
"dynamo-mocker", "dynamo-mocker",
"dynamo-parsers", "dynamo-parsers",
"dynamo-protocols",
"dynamo-runtime", "dynamo-runtime",
"dynamo-tokens", "dynamo-tokens",
"either", "either",
...@@ -1695,7 +1643,6 @@ dependencies = [ ...@@ -1695,7 +1643,6 @@ dependencies = [
"validator", "validator",
"video-rs", "video-rs",
"xxhash-rust", "xxhash-rust",
"zeromq",
] ]
[[package]] [[package]]
...@@ -1728,7 +1675,7 @@ dependencies = [ ...@@ -1728,7 +1675,7 @@ dependencies = [
"ndarray-interp", "ndarray-interp",
"ndarray-npy", "ndarray-npy",
"rand 0.9.2", "rand 0.9.2",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"serde", "serde",
"serde_json", "serde_json",
"slotmap", "slotmap",
...@@ -1757,6 +1704,33 @@ dependencies = [ ...@@ -1757,6 +1704,33 @@ dependencies = [
"uuid", "uuid",
] ]
[[package]]
name = "dynamo-protocols"
version = "1.0.0"
dependencies = [
"async-openai-macros",
"backoff",
"base64 0.22.1",
"bytes",
"derive_builder",
"eventsource-stream",
"futures",
"rand 0.9.2",
"reqwest",
"reqwest-eventsource",
"secrecy",
"serde",
"serde_json",
"thiserror 2.0.18",
"tokio",
"tokio-stream",
"tokio-util",
"tracing",
"url",
"utoipa",
"uuid",
]
[[package]] [[package]]
name = "dynamo-py3" name = "dynamo-py3"
version = "1.0.0" version = "1.0.0"
...@@ -1798,7 +1772,6 @@ dependencies = [ ...@@ -1798,7 +1772,6 @@ dependencies = [
"async-once-cell", "async-once-cell",
"async-stream", "async-stream",
"async-trait", "async-trait",
"async_zmq",
"axum", "axum",
"bincode 1.3.3", "bincode 1.3.3",
"blake3", "blake3",
...@@ -1841,6 +1814,7 @@ dependencies = [ ...@@ -1841,6 +1814,7 @@ dependencies = [
"serde_json", "serde_json",
"socket2 0.5.10", "socket2 0.5.10",
"thiserror 2.0.18", "thiserror 2.0.18",
"tmq",
"tokio", "tokio",
"tokio-rayon", "tokio-rayon",
"tokio-stream", "tokio-stream",
...@@ -1853,7 +1827,6 @@ dependencies = [ ...@@ -1853,7 +1827,6 @@ dependencies = [
"uuid", "uuid",
"validator", "validator",
"xxhash-rust", "xxhash-rust",
"zmq",
] ]
[[package]] [[package]]
...@@ -1925,7 +1898,7 @@ version = "0.8.35" ...@@ -1925,7 +1898,7 @@ version = "0.8.35"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -2202,7 +2175,7 @@ version = "0.2.27" ...@@ -2202,7 +2175,7 @@ version = "0.2.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"libredox", "libredox",
] ]
...@@ -2288,22 +2261,6 @@ dependencies = [ ...@@ -2288,22 +2261,6 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "fuchsia-zircon"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
dependencies = [
"bitflags 1.3.2",
"fuchsia-zircon-sys",
]
[[package]]
name = "fuchsia-zircon-sys"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]] [[package]]
name = "futures" name = "futures"
version = "0.3.32" version = "0.3.32"
...@@ -2433,7 +2390,7 @@ version = "0.2.17" ...@@ -2433,7 +2390,7 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"js-sys", "js-sys",
"libc", "libc",
"wasi", "wasi",
...@@ -2446,7 +2403,7 @@ version = "0.3.4" ...@@ -2446,7 +2403,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"js-sys", "js-sys",
"libc", "libc",
"r-efi 5.3.0", "r-efi 5.3.0",
...@@ -2460,7 +2417,7 @@ version = "0.4.2" ...@@ -2460,7 +2417,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"r-efi 6.0.0", "r-efi 6.0.0",
"wasip2", "wasip2",
...@@ -2519,7 +2476,7 @@ dependencies = [ ...@@ -2519,7 +2476,7 @@ dependencies = [
"futures-core", "futures-core",
"futures-sink", "futures-sink",
"http", "http",
"indexmap 2.13.0", "indexmap 2.13.1",
"slab", "slab",
"tokio", "tokio",
"tokio-util", "tokio-util",
...@@ -2532,7 +2489,7 @@ version = "2.7.1" ...@@ -2532,7 +2489,7 @@ version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"crunchy", "crunchy",
"zerocopy", "zerocopy",
] ]
...@@ -2634,7 +2591,7 @@ version = "0.4.2" ...@@ -2634,7 +2591,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"windows-link", "windows-link",
] ]
...@@ -2692,9 +2649,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" ...@@ -2692,9 +2649,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "1.8.1" version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca"
dependencies = [ dependencies = [
"atomic-waker", "atomic-waker",
"bytes", "bytes",
...@@ -2707,7 +2664,6 @@ dependencies = [ ...@@ -2707,7 +2664,6 @@ dependencies = [
"httpdate", "httpdate",
"itoa", "itoa",
"pin-project-lite", "pin-project-lite",
"pin-utils",
"smallvec", "smallvec",
"tokio", "tokio",
"want", "want",
...@@ -2796,12 +2752,13 @@ dependencies = [ ...@@ -2796,12 +2752,13 @@ dependencies = [
[[package]] [[package]]
name = "icu_collections" name = "icu_collections"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"potential_utf", "potential_utf",
"utf8_iter",
"yoke", "yoke",
"zerofrom", "zerofrom",
"zerovec", "zerovec",
...@@ -2809,9 +2766,9 @@ dependencies = [ ...@@ -2809,9 +2766,9 @@ dependencies = [
[[package]] [[package]]
name = "icu_locale_core" name = "icu_locale_core"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"litemap", "litemap",
...@@ -2822,9 +2779,9 @@ dependencies = [ ...@@ -2822,9 +2779,9 @@ dependencies = [
[[package]] [[package]]
name = "icu_normalizer" name = "icu_normalizer"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4"
dependencies = [ dependencies = [
"icu_collections", "icu_collections",
"icu_normalizer_data", "icu_normalizer_data",
...@@ -2839,15 +2796,15 @@ dependencies = [ ...@@ -2839,15 +2796,15 @@ dependencies = [
[[package]] [[package]]
name = "icu_normalizer_data" name = "icu_normalizer_data"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38"
[[package]] [[package]]
name = "icu_properties" name = "icu_properties"
version = "2.1.2" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de"
dependencies = [ dependencies = [
"icu_collections", "icu_collections",
"icu_locale_core", "icu_locale_core",
...@@ -2859,15 +2816,15 @@ dependencies = [ ...@@ -2859,15 +2816,15 @@ dependencies = [
[[package]] [[package]]
name = "icu_properties_data" name = "icu_properties_data"
version = "2.1.2" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14"
[[package]] [[package]]
name = "icu_provider" name = "icu_provider"
version = "2.1.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"icu_locale_core", "icu_locale_core",
...@@ -2965,9 +2922,9 @@ dependencies = [ ...@@ -2965,9 +2922,9 @@ dependencies = [
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "2.13.0" version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff"
dependencies = [ dependencies = [
"equivalent", "equivalent",
"hashbrown 0.16.1", "hashbrown 0.16.1",
...@@ -3029,7 +2986,7 @@ version = "0.1.13" ...@@ -3029,7 +2986,7 @@ version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -3045,22 +3002,13 @@ dependencies = [ ...@@ -3045,22 +3002,13 @@ dependencies = [
[[package]] [[package]]
name = "inventory" name = "inventory"
version = "0.3.22" version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "009ae045c87e7082cb72dab0ccd01ae075dd00141ddc108f43a0ea150a9e7227" checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b"
dependencies = [ dependencies = [
"rustversion", "rustversion",
] ]
[[package]]
name = "iovec"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "ipnet" name = "ipnet"
version = "2.12.0" version = "2.12.0"
...@@ -3069,9 +3017,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" ...@@ -3069,9 +3017,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
[[package]] [[package]]
name = "iri-string" name = "iri-string"
version = "0.7.10" version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20"
dependencies = [ dependencies = [
"memchr", "memchr",
"serde", "serde",
...@@ -3124,9 +3072,9 @@ dependencies = [ ...@@ -3124,9 +3072,9 @@ dependencies = [
[[package]] [[package]]
name = "itoa" name = "itoa"
version = "1.0.17" version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]] [[package]]
name = "jiff" name = "jiff"
...@@ -3181,10 +3129,12 @@ dependencies = [ ...@@ -3181,10 +3129,12 @@ dependencies = [
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.91" version = "0.3.94"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9"
dependencies = [ dependencies = [
"cfg-if",
"futures-util",
"once_cell", "once_cell",
"wasm-bindgen", "wasm-bindgen",
] ]
...@@ -3267,16 +3217,6 @@ dependencies = [ ...@@ -3267,16 +3217,6 @@ dependencies = [
"serde_json", "serde_json",
] ]
[[package]]
name = "kernel32-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
dependencies = [
"winapi 0.2.8",
"winapi-build",
]
[[package]] [[package]]
name = "kqueue" name = "kqueue"
version = "1.1.1" version = "1.1.1"
...@@ -3432,9 +3372,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" ...@@ -3432,9 +3372,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.183" version = "0.2.184"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
[[package]] [[package]]
name = "libfuzzer-sys" name = "libfuzzer-sys"
...@@ -3452,7 +3392,7 @@ version = "0.8.9" ...@@ -3452,7 +3392,7 @@ version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-link", "windows-link",
] ]
...@@ -3462,7 +3402,7 @@ version = "0.9.0" ...@@ -3462,7 +3402,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"windows-link", "windows-link",
] ]
...@@ -3474,9 +3414,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" ...@@ -3474,9 +3414,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
[[package]] [[package]]
name = "libredox" name = "libredox"
version = "0.1.14" version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"libc", "libc",
...@@ -3498,15 +3438,15 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" ...@@ -3498,15 +3438,15 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
[[package]] [[package]]
name = "litemap" name = "litemap"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
[[package]] [[package]]
name = "local-ip-address" name = "local-ip-address"
version = "0.6.10" version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79ef8c257c92ade496781a32a581d43e3d512cf8ce714ecf04ea80f93ed0ff4a" checksum = "d4a59a0cb1c7f84471ad5cd38d768c2a29390d17f1ff2827cdf49bc53e8ac70b"
dependencies = [ dependencies = [
"libc", "libc",
"neli", "neli",
...@@ -3657,7 +3597,7 @@ version = "0.1.1" ...@@ -3657,7 +3597,7 @@ 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 = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"rayon", "rayon",
] ]
...@@ -3667,7 +3607,7 @@ version = "0.10.6" ...@@ -3667,7 +3607,7 @@ version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"digest", "digest",
] ]
...@@ -3737,20 +3677,19 @@ dependencies = [ ...@@ -3737,20 +3677,19 @@ dependencies = [
[[package]] [[package]]
name = "minijinja" name = "minijinja"
version = "2.17.1" version = "2.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ea5ea1e90055f200af6b8e52a4a34e05e77e7fee953a9fb40c631efdc43cab1" checksum = "805bfd7352166bae857ee569628b52bcd85a1cecf7810861ebceb1686b72b75d"
dependencies = [ dependencies = [
"memo-map", "memo-map",
"self_cell",
"serde", "serde",
] ]
[[package]] [[package]]
name = "minijinja-contrib" name = "minijinja-contrib"
version = "2.17.1" version = "2.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2fce60cb2e26ba7ddd485c8f5d3d635535e465c195bfb4af85971b428a985d0" checksum = "45092d80391870622fcf3bd82f5d2af18f99533ea60debb4bc9db0c76f0e809a"
dependencies = [ dependencies = [
"minijinja", "minijinja",
"serde", "serde",
...@@ -3772,25 +3711,6 @@ dependencies = [ ...@@ -3772,25 +3711,6 @@ dependencies = [
"simd-adler32", "simd-adler32",
] ]
[[package]]
name = "mio"
version = "0.6.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
dependencies = [
"cfg-if 0.1.10",
"fuchsia-zircon",
"fuchsia-zircon-sys",
"iovec",
"kernel32-sys",
"libc",
"log",
"miow",
"net2",
"slab",
"winapi 0.2.8",
]
[[package]] [[package]]
name = "mio" name = "mio"
version = "0.8.11" version = "0.8.11"
...@@ -3805,27 +3725,15 @@ dependencies = [ ...@@ -3805,27 +3725,15 @@ dependencies = [
[[package]] [[package]]
name = "mio" name = "mio"
version = "1.1.1" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
dependencies = [ dependencies = [
"libc", "libc",
"wasi", "wasi",
"windows-sys 0.61.2", "windows-sys 0.61.2",
] ]
[[package]]
name = "miow"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
dependencies = [
"kernel32-sys",
"net2",
"winapi 0.2.8",
"ws2_32-sys",
]
[[package]] [[package]]
name = "modelexpress-client" name = "modelexpress-client"
version = "0.2.2" version = "0.2.2"
...@@ -3979,17 +3887,6 @@ dependencies = [ ...@@ -3979,17 +3887,6 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "net2"
version = "0.2.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
dependencies = [
"cfg-if 0.1.10",
"libc",
"winapi 0.3.9",
]
[[package]] [[package]]
name = "new_debug_unreachable" name = "new_debug_unreachable"
version = "1.0.6" version = "1.0.6"
...@@ -4003,7 +3900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -4003,7 +3900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"memoffset 0.7.1", "memoffset 0.7.1",
"pin-utils", "pin-utils",
...@@ -4016,7 +3913,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -4016,7 +3913,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"cfg-if 1.0.4", "cfg-if",
"cfg_aliases", "cfg_aliases",
"libc", "libc",
] ]
...@@ -4142,9 +4039,9 @@ dependencies = [ ...@@ -4142,9 +4039,9 @@ dependencies = [
[[package]] [[package]]
name = "num-conv" name = "num-conv"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967"
[[package]] [[package]]
name = "num-derive" name = "num-derive"
...@@ -4535,9 +4432,9 @@ dependencies = [ ...@@ -4535,9 +4432,9 @@ dependencies = [
[[package]] [[package]]
name = "opentelemetry-otlp" name = "opentelemetry-otlp"
version = "0.31.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f"
dependencies = [ dependencies = [
"http", "http",
"opentelemetry", "opentelemetry",
...@@ -4654,7 +4551,7 @@ version = "0.9.12" ...@@ -4654,7 +4551,7 @@ version = "0.9.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"libc", "libc",
"redox_syscall 0.5.18", "redox_syscall 0.5.18",
"smallvec", "smallvec",
...@@ -4799,7 +4696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -4799,7 +4696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772"
dependencies = [ dependencies = [
"fixedbitset", "fixedbitset",
"indexmap 2.13.0", "indexmap 2.13.1",
] ]
[[package]] [[package]]
...@@ -4810,7 +4707,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" ...@@ -4810,7 +4707,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455"
dependencies = [ dependencies = [
"fixedbitset", "fixedbitset",
"hashbrown 0.15.5", "hashbrown 0.15.5",
"indexmap 2.13.0", "indexmap 2.13.1",
] ]
[[package]] [[package]]
...@@ -4935,9 +4832,9 @@ dependencies = [ ...@@ -4935,9 +4832,9 @@ dependencies = [
[[package]] [[package]]
name = "potential_utf" name = "potential_utf"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564"
dependencies = [ dependencies = [
"zerovec", "zerovec",
] ]
...@@ -5036,7 +4933,7 @@ version = "0.14.0" ...@@ -5036,7 +4933,7 @@ version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"fnv", "fnv",
"lazy_static", "lazy_static",
"memchr", "memchr",
...@@ -5172,9 +5069,9 @@ dependencies = [ ...@@ -5172,9 +5069,9 @@ dependencies = [
[[package]] [[package]]
name = "pulldown-cmark" name = "pulldown-cmark"
version = "0.13.1" version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83c41efbf8f90ac44de7f3a868f0867851d261b56291732d0cbf7cceaaeb55a6" checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"memchr", "memchr",
...@@ -5215,7 +5112,7 @@ version = "0.23.5" ...@@ -5215,7 +5112,7 @@ version = "0.23.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872" checksum = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"indoc", "indoc",
"libc", "libc",
"memoffset 0.9.1", "memoffset 0.9.1",
...@@ -5346,7 +5243,7 @@ dependencies = [ ...@@ -5346,7 +5243,7 @@ dependencies = [
"pin-project-lite", "pin-project-lite",
"quinn-proto", "quinn-proto",
"quinn-udp", "quinn-udp",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"rustls", "rustls",
"socket2 0.6.3", "socket2 0.6.3",
"thiserror 2.0.18", "thiserror 2.0.18",
...@@ -5366,7 +5263,7 @@ dependencies = [ ...@@ -5366,7 +5263,7 @@ dependencies = [
"lru-slab", "lru-slab",
"rand 0.9.2", "rand 0.9.2",
"ring", "ring",
"rustc-hash 2.1.1", "rustc-hash 2.1.2",
"rustls", "rustls",
"rustls-pki-types", "rustls-pki-types",
"slab", "slab",
...@@ -5484,7 +5381,7 @@ dependencies = [ ...@@ -5484,7 +5381,7 @@ dependencies = [
"av1-grain", "av1-grain",
"bitstream-io", "bitstream-io",
"built", "built",
"cfg-if 1.0.4", "cfg-if",
"interpolate_name", "interpolate_name",
"itertools 0.14.0", "itertools 0.14.0",
"libc", "libc",
...@@ -5711,7 +5608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -5711,7 +5608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
dependencies = [ dependencies = [
"cc", "cc",
"cfg-if 1.0.4", "cfg-if",
"getrandom 0.2.17", "getrandom 0.2.17",
"libc", "libc",
"untrusted", "untrusted",
...@@ -5739,9 +5636,9 @@ dependencies = [ ...@@ -5739,9 +5636,9 @@ dependencies = [
[[package]] [[package]]
name = "ron" name = "ron"
version = "0.12.0" version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd490c5b18261893f14449cbd28cb9c0b637aebf161cd77900bfdedaff21ec32" checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"once_cell", "once_cell",
...@@ -5791,7 +5688,7 @@ version = "0.21.3" ...@@ -5791,7 +5688,7 @@ version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"ordered-multimap", "ordered-multimap",
] ]
...@@ -5803,9 +5700,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" ...@@ -5803,9 +5700,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]] [[package]]
name = "rustc-hash" name = "rustc-hash"
version = "2.1.1" version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
[[package]] [[package]]
name = "rustc_version" name = "rustc_version"
...@@ -5853,7 +5750,7 @@ dependencies = [ ...@@ -5853,7 +5750,7 @@ dependencies = [
"once_cell", "once_cell",
"ring", "ring",
"rustls-pki-types", "rustls-pki-types",
"rustls-webpki 0.103.9", "rustls-webpki 0.103.10",
"subtle", "subtle",
"zeroize", "zeroize",
] ]
...@@ -5914,9 +5811,9 @@ dependencies = [ ...@@ -5914,9 +5811,9 @@ dependencies = [
[[package]] [[package]]
name = "rustls-webpki" name = "rustls-webpki"
version = "0.103.9" version = "0.103.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
dependencies = [ dependencies = [
"aws-lc-rs", "aws-lc-rs",
"ring", "ring",
...@@ -6100,17 +5997,11 @@ dependencies = [ ...@@ -6100,17 +5997,11 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "self_cell"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89"
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.27" version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
[[package]] [[package]]
name = "serde" name = "serde"
...@@ -6181,7 +6072,7 @@ version = "1.0.149" ...@@ -6181,7 +6072,7 @@ version = "1.0.149"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"itoa", "itoa",
"memchr", "memchr",
"serde", "serde",
...@@ -6231,9 +6122,9 @@ dependencies = [ ...@@ -6231,9 +6122,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_spanned" name = "serde_spanned"
version = "1.0.4" version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
dependencies = [ dependencies = [
"serde_core", "serde_core",
] ]
...@@ -6260,7 +6151,7 @@ dependencies = [ ...@@ -6260,7 +6151,7 @@ dependencies = [
"chrono", "chrono",
"hex", "hex",
"indexmap 1.9.3", "indexmap 1.9.3",
"indexmap 2.13.0", "indexmap 2.13.1",
"schemars 0.9.0", "schemars 0.9.0",
"schemars 1.2.1", "schemars 1.2.1",
"serde_core", "serde_core",
...@@ -6287,7 +6178,7 @@ version = "0.9.34+deprecated" ...@@ -6287,7 +6178,7 @@ version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"itoa", "itoa",
"ryu", "ryu",
"serde", "serde",
...@@ -6300,8 +6191,8 @@ version = "0.10.6" ...@@ -6300,8 +6191,8 @@ version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures 0.2.17",
"digest", "digest",
] ]
...@@ -6311,8 +6202,8 @@ version = "0.10.9" ...@@ -6311,8 +6202,8 @@ version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"cpufeatures", "cpufeatures 0.2.17",
"digest", "digest",
] ]
...@@ -6371,9 +6262,9 @@ dependencies = [ ...@@ -6371,9 +6262,9 @@ dependencies = [
[[package]] [[package]]
name = "simd-adler32" name = "simd-adler32"
version = "0.3.8" version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
[[package]] [[package]]
name = "simd_helpers" name = "simd_helpers"
...@@ -6439,7 +6330,7 @@ checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" ...@@ -6439,7 +6330,7 @@ checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"libc", "libc",
"winapi 0.3.9", "winapi",
] ]
[[package]] [[package]]
...@@ -6648,7 +6539,7 @@ version = "1.1.9" ...@@ -6648,7 +6539,7 @@ version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
] ]
[[package]] [[package]]
...@@ -6733,9 +6624,9 @@ dependencies = [ ...@@ -6733,9 +6624,9 @@ dependencies = [
[[package]] [[package]]
name = "tinystr" name = "tinystr"
version = "0.8.2" version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"zerovec", "zerovec",
...@@ -6811,7 +6702,7 @@ checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" ...@@ -6811,7 +6702,7 @@ checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
dependencies = [ dependencies = [
"bytes", "bytes",
"libc", "libc",
"mio 1.1.1", "mio 1.2.0",
"parking_lot", "parking_lot",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
...@@ -6883,7 +6774,6 @@ checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" ...@@ -6883,7 +6774,6 @@ checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-core", "futures-core",
"futures-io",
"futures-sink", "futures-sink",
"futures-util", "futures-util",
"pin-project-lite", "pin-project-lite",
...@@ -6926,15 +6816,15 @@ dependencies = [ ...@@ -6926,15 +6816,15 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "1.0.6+spec-1.1.0" version = "1.1.2+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "399b1124a3c9e16766831c6bba21e50192572cdd98706ea114f9502509686ffc" checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"
dependencies = [ dependencies = [
"serde_core", "serde_core",
"serde_spanned 1.0.4", "serde_spanned 1.1.1",
"toml_datetime 1.0.0+spec-1.1.0", "toml_datetime 1.1.1+spec-1.1.0",
"toml_parser", "toml_parser",
"winnow", "winnow 1.0.1",
] ]
[[package]] [[package]]
...@@ -6948,9 +6838,9 @@ dependencies = [ ...@@ -6948,9 +6838,9 @@ dependencies = [
[[package]] [[package]]
name = "toml_datetime" name = "toml_datetime"
version = "1.0.0+spec-1.1.0" version = "1.1.1+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
dependencies = [ dependencies = [
"serde_core", "serde_core",
] ]
...@@ -6961,21 +6851,21 @@ version = "0.22.27" ...@@ -6961,21 +6851,21 @@ version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"serde", "serde",
"serde_spanned 0.6.9", "serde_spanned 0.6.9",
"toml_datetime 0.6.11", "toml_datetime 0.6.11",
"toml_write", "toml_write",
"winnow", "winnow 0.7.15",
] ]
[[package]] [[package]]
name = "toml_parser" name = "toml_parser"
version = "1.0.9+spec-1.1.0" version = "1.1.2+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
dependencies = [ dependencies = [
"winnow", "winnow 1.0.1",
] ]
[[package]] [[package]]
...@@ -7104,7 +6994,7 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" ...@@ -7104,7 +6994,7 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
dependencies = [ dependencies = [
"futures-core", "futures-core",
"futures-util", "futures-util",
"indexmap 2.13.0", "indexmap 2.13.1",
"pin-project-lite", "pin-project-lite",
"slab", "slab",
"sync_wrapper", "sync_wrapper",
...@@ -7370,9 +7260,9 @@ dependencies = [ ...@@ -7370,9 +7260,9 @@ dependencies = [
[[package]] [[package]]
name = "unicode-segmentation" name = "unicode-segmentation"
version = "1.12.0" version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
...@@ -7494,7 +7384,7 @@ version = "5.4.0" ...@@ -7494,7 +7384,7 @@ version = "5.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fcc29c80c21c31608227e0912b2d7fddba57ad76b606890627ba8ee7964e993" checksum = "2fcc29c80c21c31608227e0912b2d7fddba57ad76b606890627ba8ee7964e993"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.1",
"serde", "serde",
"serde_json", "serde_json",
"utoipa-gen", "utoipa-gen",
...@@ -7534,9 +7424,9 @@ dependencies = [ ...@@ -7534,9 +7424,9 @@ dependencies = [
[[package]] [[package]]
name = "uuid" name = "uuid"
version = "1.22.0" version = "1.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9"
dependencies = [ dependencies = [
"getrandom 0.4.2", "getrandom 0.4.2",
"js-sys", "js-sys",
...@@ -7671,11 +7561,11 @@ dependencies = [ ...@@ -7671,11 +7561,11 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0"
dependencies = [ dependencies = [
"cfg-if 1.0.4", "cfg-if",
"once_cell", "once_cell",
"rustversion", "rustversion",
"wasm-bindgen-macro", "wasm-bindgen-macro",
...@@ -7684,23 +7574,19 @@ dependencies = [ ...@@ -7684,23 +7574,19 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-futures" name = "wasm-bindgen-futures"
version = "0.4.64" version = "0.4.67"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e"
dependencies = [ dependencies = [
"cfg-if 1.0.4",
"futures-util",
"js-sys", "js-sys",
"once_cell",
"wasm-bindgen", "wasm-bindgen",
"web-sys",
] ]
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be"
dependencies = [ dependencies = [
"quote", "quote",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
...@@ -7708,9 +7594,9 @@ dependencies = [ ...@@ -7708,9 +7594,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"proc-macro2", "proc-macro2",
...@@ -7721,9 +7607,9 @@ dependencies = [ ...@@ -7721,9 +7607,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.114" version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
...@@ -7745,7 +7631,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" ...@@ -7745,7 +7631,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"indexmap 2.13.0", "indexmap 2.13.1",
"wasm-encoder", "wasm-encoder",
"wasmparser", "wasmparser",
] ]
...@@ -7771,15 +7657,15 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" ...@@ -7771,15 +7657,15 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"hashbrown 0.15.5", "hashbrown 0.15.5",
"indexmap 2.13.0", "indexmap 2.13.1",
"semver", "semver",
] ]
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.91" version = "0.3.94"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",
...@@ -7819,12 +7705,6 @@ version = "0.1.12" ...@@ -7819,12 +7705,6 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
[[package]]
name = "winapi"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
[[package]] [[package]]
name = "winapi" name = "winapi"
version = "0.3.9" version = "0.3.9"
...@@ -7835,12 +7715,6 @@ dependencies = [ ...@@ -7835,12 +7715,6 @@ dependencies = [
"winapi-x86_64-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu",
] ]
[[package]]
name = "winapi-build"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
[[package]] [[package]]
name = "winapi-i686-pc-windows-gnu" name = "winapi-i686-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
...@@ -8172,6 +8046,15 @@ dependencies = [ ...@@ -8172,6 +8046,15 @@ dependencies = [
"memchr", "memchr",
] ]
[[package]]
name = "winnow"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "wit-bindgen" name = "wit-bindgen"
version = "0.51.0" version = "0.51.0"
...@@ -8200,7 +8083,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" ...@@ -8200,7 +8083,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"heck", "heck",
"indexmap 2.13.0", "indexmap 2.13.1",
"prettyplease", "prettyplease",
"syn", "syn",
"wasm-metadata", "wasm-metadata",
...@@ -8231,7 +8114,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" ...@@ -8231,7 +8114,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bitflags 2.11.0", "bitflags 2.11.0",
"indexmap 2.13.0", "indexmap 2.13.1",
"log", "log",
"serde", "serde",
"serde_derive", "serde_derive",
...@@ -8250,7 +8133,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" ...@@ -8250,7 +8133,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"id-arena", "id-arena",
"indexmap 2.13.0", "indexmap 2.13.1",
"log", "log",
"semver", "semver",
"serde", "serde",
...@@ -8268,19 +8151,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" ...@@ -8268,19 +8151,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
[[package]] [[package]]
name = "writeable" name = "writeable"
version = "0.6.2" version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
[[package]]
name = "ws2_32-sys"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
dependencies = [
"winapi 0.2.8",
"winapi-build",
]
[[package]] [[package]]
name = "xxhash-rust" name = "xxhash-rust"
...@@ -8313,9 +8186,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" ...@@ -8313,9 +8186,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]] [[package]]
name = "yoke" name = "yoke"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
dependencies = [ dependencies = [
"stable_deref_trait", "stable_deref_trait",
"yoke-derive", "yoke-derive",
...@@ -8324,9 +8197,9 @@ dependencies = [ ...@@ -8324,9 +8197,9 @@ dependencies = [
[[package]] [[package]]
name = "yoke-derive" name = "yoke-derive"
version = "0.8.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8336,18 +8209,18 @@ dependencies = [ ...@@ -8336,18 +8209,18 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.8.42" version = "0.8.48"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9"
dependencies = [ dependencies = [
"zerocopy-derive", "zerocopy-derive",
] ]
[[package]] [[package]]
name = "zerocopy-derive" name = "zerocopy-derive"
version = "0.8.42" version = "0.8.48"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8356,18 +8229,18 @@ dependencies = [ ...@@ -8356,18 +8229,18 @@ dependencies = [
[[package]] [[package]]
name = "zerofrom" name = "zerofrom"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df"
dependencies = [ dependencies = [
"zerofrom-derive", "zerofrom-derive",
] ]
[[package]] [[package]]
name = "zerofrom-derive" name = "zerofrom-derive"
version = "0.1.6" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8381,33 +8254,6 @@ version = "1.8.2" ...@@ -8381,33 +8254,6 @@ version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
[[package]]
name = "zeromq"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a4528179201f6eecf211961a7d3276faa61554c82651ecc66387f68fc3004bd"
dependencies = [
"async-trait",
"asynchronous-codec",
"bytes",
"crossbeam-queue",
"dashmap 5.5.3",
"futures-channel",
"futures-io",
"futures-task",
"futures-util",
"log",
"num-traits",
"once_cell",
"parking_lot",
"rand 0.8.5",
"regex",
"thiserror 1.0.69",
"tokio",
"tokio-util",
"uuid",
]
[[package]] [[package]]
name = "zeromq-src" name = "zeromq-src"
version = "0.2.6+4.3.4" version = "0.2.6+4.3.4"
...@@ -8420,9 +8266,9 @@ dependencies = [ ...@@ -8420,9 +8266,9 @@ dependencies = [
[[package]] [[package]]
name = "zerotrie" name = "zerotrie"
version = "0.2.3" version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"yoke", "yoke",
...@@ -8431,9 +8277,9 @@ dependencies = [ ...@@ -8431,9 +8277,9 @@ dependencies = [
[[package]] [[package]]
name = "zerovec" name = "zerovec"
version = "0.11.5" version = "0.11.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239"
dependencies = [ dependencies = [
"yoke", "yoke",
"zerofrom", "zerofrom",
...@@ -8442,9 +8288,9 @@ dependencies = [ ...@@ -8442,9 +8288,9 @@ dependencies = [
[[package]] [[package]]
name = "zerovec-derive" name = "zerovec-derive"
version = "0.11.2" version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
...@@ -8462,7 +8308,7 @@ dependencies = [ ...@@ -8462,7 +8308,7 @@ dependencies = [
"crossbeam-utils", "crossbeam-utils",
"displaydoc", "displaydoc",
"flate2", "flate2",
"indexmap 2.13.0", "indexmap 2.13.1",
"memchr", "memchr",
"thiserror 2.0.18", "thiserror 2.0.18",
"zopfli", "zopfli",
...@@ -8477,7 +8323,7 @@ dependencies = [ ...@@ -8477,7 +8323,7 @@ dependencies = [
"arbitrary", "arbitrary",
"crc32fast", "crc32fast",
"flate2", "flate2",
"indexmap 2.13.0", "indexmap 2.13.1",
"memchr", "memchr",
"zopfli", "zopfli",
] ]
...@@ -8545,9 +8391,9 @@ dependencies = [ ...@@ -8545,9 +8391,9 @@ dependencies = [
[[package]] [[package]]
name = "zune-jpeg" name = "zune-jpeg"
version = "0.5.13" version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec5f41c76397b7da451efd19915684f727d7e1d516384ca6bd0ec43ec94de23c" checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
dependencies = [ dependencies = [
"zune-core", "zune-core",
] ]
...@@ -17,7 +17,7 @@ default = [] ...@@ -17,7 +17,7 @@ default = []
metrics = ["dep:prometheus"] metrics = ["dep:prometheus"]
runtime-protocols = ["dep:dynamo-runtime"] runtime-protocols = ["dep:dynamo-runtime"]
bench = [] bench = []
standalone-indexer = ["dep:axum", "dep:bytes", "dep:zeromq", "dep:serde_json", "dep:reqwest"] standalone-indexer = ["dep:axum", "dep:serde_json", "dep:reqwest", "dep:zmq"]
indexer-runtime = ["metrics", "runtime-protocols", "standalone-indexer"] indexer-runtime = ["metrics", "runtime-protocols", "standalone-indexer"]
[dependencies] [dependencies]
...@@ -40,6 +40,7 @@ thiserror = { workspace = true } ...@@ -40,6 +40,7 @@ thiserror = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
tokio-util = { workspace = true } tokio-util = { workspace = true }
tracing = { workspace = true } tracing = { workspace = true }
zmq = { version = "0.10", optional = true }
uuid = { workspace = true } uuid = { workspace = true }
validator = { workspace = true } validator = { workspace = true }
xxhash-rust = { workspace = true } xxhash-rust = { workspace = true }
...@@ -53,9 +54,7 @@ rustc-hash = "2.1.1" ...@@ -53,9 +54,7 @@ rustc-hash = "2.1.1"
# standalone-indexer (optional) # standalone-indexer (optional)
axum = { workspace = true, optional = true } axum = { workspace = true, optional = true }
bytes = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true } reqwest = { workspace = true, optional = true }
zeromq = { version = "0.4.1", optional = true }
[dev-dependencies] [dev-dependencies]
rstest = "0.18.2" rstest = "0.18.2"
......
...@@ -3,13 +3,10 @@ ...@@ -3,13 +3,10 @@
use std::sync::Arc; use std::sync::Arc;
use std::sync::atomic::{AtomicU32, AtomicU64, Ordering}; use std::sync::atomic::{AtomicU32, AtomicU64, Ordering};
use std::time::Duration;
use bytes::Bytes;
use rmp_serde as rmps; use rmp_serde as rmps;
use tokio::sync::watch; use tokio::sync::watch;
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use zeromq::{DealerSocket, Socket, SocketRecv, SocketSend, SubSocket};
use crate::protocols::{WorkerId, WorkerWithDpRank}; use crate::protocols::{WorkerId, WorkerWithDpRank};
use crate::recovery::{CursorObservation, CursorState}; use crate::recovery::{CursorObservation, CursorState};
...@@ -17,18 +14,10 @@ use crate::zmq_wire::{KvEventBatch, convert_event}; ...@@ -17,18 +14,10 @@ use crate::zmq_wire::{KvEventBatch, convert_event};
use super::indexer::Indexer; use super::indexer::Indexer;
use super::registry::ListenerRecord; use super::registry::ListenerRecord;
use super::zmq::{
const INITIAL_BACKOFF_MS: u64 = 10; MultipartMessage, SharedSocket, connect_dealer_socket, connect_sub_socket, recv_multipart,
const MAX_BACKOFF_MS: u64 = 5000; send_multipart,
const MAX_CONSECUTIVE_ERRORS: u32 = 10; };
const MAX_BACKOFF_EXPONENT: u32 = 8;
fn calculate_backoff_ms(consecutive_errors: u32) -> u64 {
std::cmp::min(
INITIAL_BACKOFF_MS * 2_u64.pow(consecutive_errors.min(MAX_BACKOFF_EXPONENT)),
MAX_BACKOFF_MS,
)
}
const WATERMARK_UNSET: u64 = u64::MAX; const WATERMARK_UNSET: u64 = u64::MAX;
...@@ -46,11 +35,10 @@ struct ListenerLoop { ...@@ -46,11 +35,10 @@ struct ListenerLoop {
block_size: u32, block_size: u32,
indexer: Indexer, indexer: Indexer,
cancel: CancellationToken, cancel: CancellationToken,
socket: SubSocket, live_socket: SharedSocket,
replay_socket: Option<DealerSocket>, replay_socket: Option<SharedSocket>,
watermark: Arc<AtomicU64>, watermark: Arc<AtomicU64>,
warning_count: Arc<AtomicU32>, warning_count: Arc<AtomicU32>,
consecutive_errors: u32,
messages_processed: u64, messages_processed: u64,
} }
...@@ -62,8 +50,8 @@ impl ListenerLoop { ...@@ -62,8 +50,8 @@ impl ListenerLoop {
block_size: u32, block_size: u32,
indexer: Indexer, indexer: Indexer,
cancel: CancellationToken, cancel: CancellationToken,
socket: SubSocket, live_socket: SharedSocket,
replay_socket: Option<DealerSocket>, replay_socket: Option<SharedSocket>,
watermark: Arc<AtomicU64>, watermark: Arc<AtomicU64>,
) -> Self { ) -> Self {
Self { Self {
...@@ -72,11 +60,10 @@ impl ListenerLoop { ...@@ -72,11 +60,10 @@ impl ListenerLoop {
block_size, block_size,
indexer, indexer,
cancel, cancel,
socket, live_socket,
replay_socket, replay_socket,
watermark, watermark,
warning_count: Arc::new(AtomicU32::new(0)), warning_count: Arc::new(AtomicU32::new(0)),
consecutive_errors: 0,
messages_processed: 0, messages_processed: 0,
} }
} }
...@@ -94,7 +81,7 @@ impl ListenerLoop { ...@@ -94,7 +81,7 @@ impl ListenerLoop {
"Requesting replay from engine" "Requesting replay from engine"
); );
let Some(replay_socket) = self.replay_socket.as_mut() else { let Some(replay_socket) = self.replay_socket.as_ref() else {
tracing::warn!( tracing::warn!(
self.worker_id, self.worker_id,
self.dp_rank, self.dp_rank,
...@@ -111,21 +98,25 @@ impl ListenerLoop { ...@@ -111,21 +98,25 @@ impl ListenerLoop {
let warning_count = &self.warning_count; let warning_count = &self.warning_count;
let watermark = &self.watermark; let watermark = &self.watermark;
let req_frames = vec![Bytes::new(), Bytes::from(start_seq.to_be_bytes().to_vec())]; let req_frames = vec![Vec::new(), start_seq.to_be_bytes().to_vec()];
let Ok(req_msg) = zeromq::ZmqMessage::try_from(req_frames) else { if let Err(error) = send_multipart(replay_socket, req_frames).await {
tracing::error!(worker_id, dp_rank, "Failed to build replay request");
return 0;
};
if let Err(error) = replay_socket.send(req_msg).await {
tracing::error!(worker_id, dp_rank, error = %error, "Failed to send replay request"); tracing::error!(worker_id, dp_rank, error = %error, "Failed to send replay request");
return 0; return 0;
} }
let mut replayed = 0u64; let mut replayed = 0u64;
loop { loop {
let Ok(msg) = replay_socket.recv().await else { let msg = tokio::select! {
tracing::error!(worker_id, dp_rank, "Replay recv error"); _ = self.cancel.cancelled() => break,
break; result = recv_multipart(replay_socket) => {
match result {
Ok(msg) => msg,
Err(error) => {
tracing::error!(worker_id, dp_rank, error = %error, "Replay recv error");
break;
}
}
}
}; };
if msg.len() < 3 { if msg.len() < 3 {
tracing::warn!( tracing::warn!(
...@@ -251,7 +242,7 @@ impl ListenerLoop { ...@@ -251,7 +242,7 @@ impl ListenerLoop {
self.watermark.store(seq, Ordering::Release); self.watermark.store(seq, Ordering::Release);
} }
async fn handle_message(&mut self, msg: zeromq::ZmqMessage) { async fn handle_message(&mut self, msg: MultipartMessage) {
if msg.len() != 3 { if msg.len() != 3 {
tracing::warn!( tracing::warn!(
self.worker_id, self.worker_id,
...@@ -299,34 +290,15 @@ impl ListenerLoop { ...@@ -299,34 +290,15 @@ impl ListenerLoop {
return Ok(()); return Ok(());
} }
msg_result = self.socket.recv() => { result = recv_multipart(&self.live_socket) => {
match msg_result { match result {
Ok(msg) => { Ok(msg) => msg,
self.consecutive_errors = 0;
msg
}
Err(error) => { Err(error) => {
self.consecutive_errors += 1; return Err(format!(
"ZMQ recv failed for worker {} dp_rank {}: {error}",
if self.consecutive_errors >= MAX_CONSECUTIVE_ERRORS { self.worker_id,
return Err(format!( self.dp_rank,
"too many consecutive ZMQ recv errors for worker {} dp_rank {}: {error}", ));
self.worker_id,
self.dp_rank,
));
}
let backoff_ms = calculate_backoff_ms(self.consecutive_errors);
tracing::warn!(
error = %error,
consecutive_errors = self.consecutive_errors,
backoff_ms,
worker_id = self.worker_id,
dp_rank = self.dp_rank,
"ZMQ recv error, backing off"
);
tokio::time::sleep(Duration::from_millis(backoff_ms)).await;
continue;
} }
} }
} }
...@@ -382,18 +354,8 @@ async fn run_listener( ...@@ -382,18 +354,8 @@ async fn run_listener(
return Ok(()); return Ok(());
} }
let mut socket = SubSocket::new(); let socket = connect_sub_socket(&endpoint)
socket .map_err(|e| format!("failed to connect ZMQ SUB socket to {endpoint}: {e}"))?;
.subscribe("")
.await
.map_err(|e| format!("failed to subscribe on ZMQ socket: {e}"))?;
tokio::select! {
_ = cancel.cancelled() => return Ok(()),
result = socket.connect(&endpoint) => {
result.map_err(|e| format!("failed to connect ZMQ SUB socket to {endpoint}: {e}"))?;
}
}
tokio::select! { tokio::select! {
_ = cancel.cancelled() => return Ok(()), _ = cancel.cancelled() => return Ok(()),
...@@ -438,33 +400,31 @@ async fn connect_replay_socket( ...@@ -438,33 +400,31 @@ async fn connect_replay_socket(
dp_rank: u32, dp_rank: u32,
replay_endpoint: Option<&str>, replay_endpoint: Option<&str>,
cancel: &CancellationToken, cancel: &CancellationToken,
) -> Option<DealerSocket> { ) -> Option<SharedSocket> {
let endpoint = replay_endpoint?; let endpoint = replay_endpoint?;
let mut socket = DealerSocket::new(); if cancel.is_cancelled() {
tokio::select! { return None;
_ = cancel.cancelled() => None, }
result = socket.connect(endpoint) => {
match result { match connect_dealer_socket(endpoint) {
Ok(()) => { Ok(socket) => {
tracing::info!( tracing::info!(
worker_id, worker_id,
dp_rank, dp_rank,
replay_endpoint = endpoint, replay_endpoint = endpoint,
"Replay socket connected" "Replay socket connected"
); );
Some(socket) Some(socket)
} }
Err(e) => { Err(error) => {
tracing::error!( tracing::error!(
worker_id, worker_id,
dp_rank, dp_rank,
error = %e, error = %error,
"Failed to connect replay socket to {endpoint}" "Failed to connect replay socket to {endpoint}"
); );
None None
}
}
} }
} }
} }
...@@ -473,7 +433,9 @@ async fn connect_replay_socket( ...@@ -473,7 +433,9 @@ async fn connect_replay_socket(
mod tests { mod tests {
use super::{WATERMARK_UNSET, cursor_from_watermark}; use super::{WATERMARK_UNSET, cursor_from_watermark};
use crate::recovery::CursorObservation; use crate::recovery::CursorObservation;
use zeromq::{PubSocket, Socket, SocketRecv, SocketSend, SubSocket}; use crate::standalone_indexer::zmq::{
SharedSocket, bind_pub_socket, connect_sub_socket, recv_multipart, send_multipart,
};
#[test] #[test]
fn initial_gap_replays_from_zero_and_replayed_seq_becomes_stale() { fn initial_gap_replays_from_zero_and_replayed_seq_becomes_stale() {
...@@ -494,23 +456,27 @@ mod tests { ...@@ -494,23 +456,27 @@ mod tests {
#[tokio::test(flavor = "multi_thread", worker_threads = 2)] #[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn zmq_buffers_messages_during_brief_delay() { async fn zmq_buffers_messages_during_brief_delay() {
let mut pub_socket = PubSocket::new(); let reserved_listener = reserve_open_port();
let bound_endpoint = pub_socket.bind("tcp://127.0.0.1:0").await.unwrap(); let endpoint = format!(
"tcp://127.0.0.1:{}",
let mut sub_socket = SubSocket::new(); reserved_listener
sub_socket.subscribe("").await.unwrap(); .local_addr()
sub_socket .expect("failed to read reserved listener address")
.connect(&bound_endpoint.to_string()) .port()
.await );
.unwrap(); drop(reserved_listener);
let pub_socket = bind_pub_socket(&endpoint).unwrap();
let mut sub_socket = connect_sub_socket(&endpoint).unwrap();
let (tx, mut rx) = tokio::sync::mpsc::channel::<SubSocket>(1); let (tx, mut rx) = tokio::sync::mpsc::channel::<SharedSocket>(1);
tokio::spawn(async move { tokio::spawn(async move {
let _ = sub_socket.recv().await.unwrap(); let _ = recv_multipart(&sub_socket).await.unwrap();
let _ = tx.send(sub_socket).await; let _ = tx.send(sub_socket).await;
}); });
loop { loop {
pub_socket.send("probe".into()).await.unwrap(); send_multipart(&pub_socket, vec![b"probe".to_vec()])
.await
.unwrap();
tokio::time::sleep(std::time::Duration::from_millis(50)).await; tokio::time::sleep(std::time::Duration::from_millis(50)).await;
if let Ok(sub) = rx.try_recv() { if let Ok(sub) = rx.try_recv() {
sub_socket = sub; sub_socket = sub;
...@@ -521,8 +487,7 @@ mod tests { ...@@ -521,8 +487,7 @@ mod tests {
let num_messages = 10u64; let num_messages = 10u64;
for i in 0..num_messages { for i in 0..num_messages {
pub_socket send_multipart(&pub_socket, vec![i.to_le_bytes().to_vec()])
.send(i.to_le_bytes().to_vec().into())
.await .await
.unwrap(); .unwrap();
} }
...@@ -530,14 +495,55 @@ mod tests { ...@@ -530,14 +495,55 @@ mod tests {
tokio::time::sleep(std::time::Duration::from_millis(500)).await; tokio::time::sleep(std::time::Duration::from_millis(500)).await;
for i in 0u64..num_messages { for i in 0u64..num_messages {
let msg = tokio::time::timeout(std::time::Duration::from_secs(5), sub_socket.recv()) let msg = tokio::time::timeout(
.await std::time::Duration::from_secs(5),
.expect("timed out waiting for ZMQ message") recv_multipart(&sub_socket),
.expect("ZMQ recv error"); )
.await
.expect("timed out waiting for ZMQ message")
.unwrap();
let payload = msg.get(0).unwrap(); let payload = msg.first().unwrap();
let received = u64::from_le_bytes(payload[..8].try_into().unwrap()); let received = u64::from_le_bytes(payload[..8].try_into().unwrap());
assert_eq!(received, i, "message {i} arrived out of order"); assert_eq!(received, i, "message {i} arrived out of order");
} }
} }
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn zmq_subscriber_connects_before_publisher_bind() {
let reserved_listener = reserve_open_port();
let endpoint = format!(
"tcp://127.0.0.1:{}",
reserved_listener
.local_addr()
.expect("failed to read reserved listener address")
.port()
);
drop(reserved_listener);
let sub_socket = connect_sub_socket(&endpoint).unwrap();
tokio::time::sleep(std::time::Duration::from_millis(100)).await;
let pub_socket = bind_pub_socket(&endpoint).unwrap();
for _ in 0..5 {
send_multipart(&pub_socket, vec![b"probe".to_vec()])
.await
.unwrap();
tokio::time::sleep(std::time::Duration::from_millis(50)).await;
}
let msg = tokio::time::timeout(
std::time::Duration::from_secs(5),
recv_multipart(&sub_socket),
)
.await
.expect("timed out waiting for ZMQ message")
.unwrap();
assert_eq!(msg, vec![b"probe".to_vec()]);
}
fn reserve_open_port() -> std::net::TcpListener {
std::net::TcpListener::bind("127.0.0.1:0").expect("failed to bind probe listener")
}
} }
...@@ -9,6 +9,7 @@ pub mod registry; ...@@ -9,6 +9,7 @@ pub mod registry;
#[cfg(feature = "indexer-runtime")] #[cfg(feature = "indexer-runtime")]
pub mod runtime; pub mod runtime;
pub mod server; pub mod server;
mod zmq;
use std::sync::Arc; use std::sync::Arc;
use std::time::Duration; use std::time::Duration;
...@@ -38,10 +39,39 @@ pub struct RuntimeConfig { ...@@ -38,10 +39,39 @@ pub struct RuntimeConfig {
} }
pub(super) fn validate_zmq_endpoint(endpoint: &str) -> anyhow::Result<()> { pub(super) fn validate_zmq_endpoint(endpoint: &str) -> anyhow::Result<()> {
endpoint let (scheme, address) = endpoint
.parse::<zeromq::Endpoint>() .split_once("://")
.map(|_| ()) .ok_or_else(|| anyhow::anyhow!("invalid ZMQ endpoint `{endpoint}`: missing scheme"))?;
.map_err(|error| anyhow::anyhow!("invalid ZMQ endpoint `{endpoint}`: {error}"))
if address.is_empty() {
anyhow::bail!("invalid ZMQ endpoint `{endpoint}`: missing address");
}
match scheme {
"tcp" => {
let (host, port) = address.rsplit_once(':').ok_or_else(|| {
anyhow::anyhow!("invalid ZMQ endpoint `{endpoint}`: missing TCP port")
})?;
if host.is_empty() {
anyhow::bail!("invalid ZMQ endpoint `{endpoint}`: missing TCP host");
}
if host.starts_with('[') {
if !host.ends_with(']') {
anyhow::bail!("invalid ZMQ endpoint `{endpoint}`: missing closing `]`");
}
} else if host.contains(':') {
anyhow::bail!("invalid ZMQ endpoint `{endpoint}`: missing TCP port");
}
port.parse::<u16>().map_err(|error| {
anyhow::anyhow!("invalid ZMQ endpoint `{endpoint}`: invalid TCP port: {error}")
})?;
Ok(())
}
"ipc" | "inproc" => Ok(()),
other => Err(anyhow::anyhow!(
"invalid ZMQ endpoint `{endpoint}`: unsupported scheme `{other}`"
)),
}
} }
pub(super) fn validate_listener_endpoints( pub(super) fn validate_listener_endpoints(
...@@ -326,4 +356,20 @@ mod tests { ...@@ -326,4 +356,20 @@ mod tests {
let error = parse_workers("1").unwrap_err().to_string(); let error = parse_workers("1").unwrap_err().to_string();
assert!(error.contains("invalid worker entry")); assert!(error.contains("invalid worker entry"));
} }
#[test]
fn test_validate_zmq_endpoint_allows_wildcard_tcp_bind() {
validate_zmq_endpoint("tcp://*:5558").unwrap();
validate_zmq_endpoint("tcp://127.0.0.1:0").unwrap();
validate_zmq_endpoint("inproc://listener").unwrap();
validate_zmq_endpoint("ipc:///tmp/dynamo.sock").unwrap();
}
#[test]
fn test_validate_zmq_endpoint_rejects_invalid_values() {
assert!(validate_zmq_endpoint("tcp://host").is_err());
assert!(validate_zmq_endpoint("tcp://:5558").is_err());
assert!(validate_zmq_endpoint("udp://host:5558").is_err());
assert!(validate_zmq_endpoint("not-an-endpoint").is_err());
}
} }
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
use std::collections::VecDeque;
use std::future::poll_fn;
use std::os::unix::io::{AsRawFd, RawFd};
use std::sync::Arc;
use std::task::{Context, Poll, ready};
use anyhow::{Result, anyhow};
use tokio::{io::unix::AsyncFd, sync::Mutex};
pub(super) type MultipartMessage = Vec<Vec<u8>>;
pub(super) type SharedSocket = Arc<Mutex<ZmqSocket>>;
const ZMQ_RCVTIMEOUT_MS: i32 = 100;
const ZMQ_SNDTIMEOUT_MS: i32 = 0;
const ZMQ_RECONNECT_IVL_MS: i32 = 100;
const ZMQ_RECONNECT_IVL_MAX_MS: i32 = 5000;
const ZMQ_TCP_KEEPALIVE: i32 = 1;
const ZMQ_HEARTBEAT_IVL_MS: i32 = 5000;
const ZMQ_HEARTBEAT_TIMEOUT_MS: i32 = 15000;
const ZMQ_HEARTBEAT_TTL_MS: i32 = 15000;
const ZMQ_LINGER_MS: i32 = 0;
struct SocketWrapper {
socket: zmq::Socket,
fd: RawFd,
}
impl SocketWrapper {
fn new(socket: zmq::Socket) -> Result<Self> {
Ok(Self {
fd: socket.get_fd()?,
socket,
})
}
}
impl AsRawFd for SocketWrapper {
fn as_raw_fd(&self) -> RawFd {
self.fd
}
}
pub(super) struct ZmqSocket(AsyncFd<SocketWrapper>);
impl ZmqSocket {
fn new(socket: zmq::Socket) -> Result<Self> {
Ok(Self(AsyncFd::new(SocketWrapper::new(socket)?)?))
}
fn socket(&self) -> &zmq::Socket {
&self.0.get_ref().socket
}
fn poll_socket_event(
&mut self,
cx: &mut Context<'_>,
event: zmq::PollEvents,
) -> Poll<Result<()>> {
if self.socket().get_events()?.contains(event) {
Poll::Ready(Ok(()))
} else {
self.clear_read_ready(cx)?;
Poll::Pending
}
}
fn clear_read_ready(&mut self, cx: &mut Context<'_>) -> Result<()> {
if let Poll::Ready(mut guard) = self.0.poll_read_ready(cx)? {
guard.clear_ready();
cx.waker().wake_by_ref();
}
Ok(())
}
fn poll_recv_multipart(&mut self, cx: &mut Context<'_>) -> Poll<Result<MultipartMessage>> {
ready!(self.poll_socket_event(cx, zmq::POLLIN))?;
let mut frames = Vec::new();
loop {
let mut msg = zmq::Message::new();
match self.socket().recv(&mut msg, zmq::DONTWAIT) {
Ok(_) => {
let more = msg.get_more();
frames.push(msg.to_vec());
if !more {
return Poll::Ready(Ok(frames));
}
}
Err(zmq::Error::EAGAIN) if frames.is_empty() => {
self.clear_read_ready(cx)?;
return Poll::Pending;
}
Err(zmq::Error::EAGAIN) => {
return Poll::Ready(Err(anyhow!(
"multipart receive interrupted after {} frames",
frames.len()
)));
}
Err(error) => return Poll::Ready(Err(error.into())),
}
}
}
fn poll_send_multipart(
&mut self,
cx: &mut Context<'_>,
buffer: &mut VecDeque<zmq::Message>,
) -> Poll<Result<()>> {
while !buffer.is_empty() {
ready!(self.poll_socket_event(cx, zmq::POLLOUT))?;
while let Some(frame) = buffer.pop_front() {
let mut flags = zmq::DONTWAIT;
if !buffer.is_empty() {
flags |= zmq::SNDMORE;
}
match self.socket().send(&*frame, flags) {
Ok(_) => {}
Err(zmq::Error::EAGAIN) => {
buffer.push_front(frame);
self.clear_read_ready(cx)?;
return Poll::Pending;
}
Err(error) => return Poll::Ready(Err(error.into())),
}
}
}
Poll::Ready(Ok(()))
}
}
fn configure_common_socket(socket: &zmq::Socket) -> Result<()> {
socket.set_linger(ZMQ_LINGER_MS)?;
socket.set_reconnect_ivl(ZMQ_RECONNECT_IVL_MS)?;
socket.set_reconnect_ivl_max(ZMQ_RECONNECT_IVL_MAX_MS)?;
socket.set_tcp_keepalive(ZMQ_TCP_KEEPALIVE)?;
socket.set_heartbeat_ivl(ZMQ_HEARTBEAT_IVL_MS)?;
socket.set_heartbeat_timeout(ZMQ_HEARTBEAT_TIMEOUT_MS)?;
socket.set_heartbeat_ttl(ZMQ_HEARTBEAT_TTL_MS)?;
Ok(())
}
fn configure_receive_socket(socket: &zmq::Socket) -> Result<()> {
configure_common_socket(socket)?;
socket.set_rcvtimeo(ZMQ_RCVTIMEOUT_MS)?;
Ok(())
}
fn configure_bidirectional_socket(socket: &zmq::Socket) -> Result<()> {
configure_receive_socket(socket)?;
socket.set_sndtimeo(ZMQ_SNDTIMEOUT_MS)?;
Ok(())
}
#[cfg(test)]
fn configure_send_socket(socket: &zmq::Socket) -> Result<()> {
configure_common_socket(socket)?;
socket.set_sndtimeo(ZMQ_SNDTIMEOUT_MS)?;
Ok(())
}
fn build_socket<F>(socket_type: zmq::SocketType, configure: F) -> Result<ZmqSocket>
where
F: FnOnce(&zmq::Socket) -> Result<()>,
{
let context = zmq::Context::new();
let socket = context.socket(socket_type)?;
configure(&socket)?;
ZmqSocket::new(socket)
}
pub(super) fn connect_sub_socket(endpoint: &str) -> Result<SharedSocket> {
Ok(Arc::new(Mutex::new(build_socket(zmq::SUB, |socket| {
configure_receive_socket(socket)?;
socket.set_subscribe(b"")?;
socket.connect(endpoint)?;
Ok(())
})?)))
}
pub(super) fn connect_dealer_socket(endpoint: &str) -> Result<SharedSocket> {
Ok(Arc::new(Mutex::new(build_socket(zmq::DEALER, |socket| {
configure_bidirectional_socket(socket)?;
socket.connect(endpoint)?;
Ok(())
})?)))
}
#[cfg(test)]
pub(super) fn bind_pub_socket(endpoint: &str) -> Result<SharedSocket> {
Ok(Arc::new(Mutex::new(build_socket(zmq::PUB, |socket| {
configure_send_socket(socket)?;
socket.bind(endpoint)?;
Ok(())
})?)))
}
pub(super) async fn recv_multipart(socket: &SharedSocket) -> Result<MultipartMessage> {
let mut socket = socket.lock().await;
poll_fn(|cx| socket.poll_recv_multipart(cx)).await
}
pub(super) async fn send_multipart(socket: &SharedSocket, frames: MultipartMessage) -> Result<()> {
let mut socket = socket.lock().await;
let mut buffer = frames
.into_iter()
.map(zmq::Message::from)
.collect::<VecDeque<_>>();
poll_fn(|cx| socket.poll_send_multipart(cx, &mut buffer)).await
}
...@@ -167,7 +167,6 @@ tokio-rayon = {version = "2" } ...@@ -167,7 +167,6 @@ tokio-rayon = {version = "2" }
ndarray = { version = "0.16" } ndarray = { version = "0.16" }
# Publishers # Publishers
zeromq = "0.4.1"
rmp-serde = "1.3" rmp-serde = "1.3"
[dev-dependencies] [dev-dependencies]
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
use super::*; use super::*;
use super::zmq::*;
use utils::*; use utils::*;
use zmq::*;
use derive_builder::Builder; use derive_builder::Builder;
use std::sync::Arc; use std::sync::Arc;
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
use super::*; use super::*;
use super::zmq::*;
use futures::future::try_join_all; use futures::future::try_join_all;
use nixl_sys::NixlDescriptor; use nixl_sys::NixlDescriptor;
use utils::*; use utils::*;
use zmq::*;
use BlockTransferPool::*; use BlockTransferPool::*;
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
use super::*; use super::*;
use super::zmq::*;
use async_trait::async_trait; use async_trait::async_trait;
use transfer::*; use transfer::*;
use utils::*; use utils::*;
use zmq::*;
use crate::block_manager::{ use crate::block_manager::{
BasicMetadata, BlockMetadata, LayoutConfigBuilder, NixlLayout, Storage, BasicMetadata, BlockMetadata, LayoutConfigBuilder, NixlLayout, Storage,
......
...@@ -14,9 +14,9 @@ use std::sync::Arc; ...@@ -14,9 +14,9 @@ use std::sync::Arc;
use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::atomic::{AtomicU64, Ordering};
use tokio::sync::RwLock; use tokio::sync::RwLock;
use tokio::task::JoinHandle; use tokio::task::JoinHandle;
use zeromq::{PubSocket, Socket, SocketSend};
use super::tracker::{CacheStatusTracker, ConsolidatedEvent}; use super::tracker::{CacheStatusTracker, ConsolidatedEvent};
use crate::utils::zmq::{bind_pub_socket, send_multipart};
/// Event batch structure matching vLLM's format (array_like=True) /// Event batch structure matching vLLM's format (array_like=True)
/// Format: [timestamp, [events], data_parallel_rank] /// Format: [timestamp, [events], data_parallel_rank]
...@@ -183,9 +183,7 @@ impl KvEventConsolidatorPublisher { ...@@ -183,9 +183,7 @@ impl KvEventConsolidatorPublisher {
tracing::info!("Starting consolidated event publisher on {}", endpoint); tracing::info!("Starting consolidated event publisher on {}", endpoint);
// Create ZMQ PUB socket and bind // Create ZMQ PUB socket and bind
let mut socket = PubSocket::new(); let socket = bind_pub_socket(&endpoint)
socket
.bind(&endpoint)
.await .await
.with_context(|| format!("Failed to bind publisher to {}", endpoint))?; .with_context(|| format!("Failed to bind publisher to {}", endpoint))?;
...@@ -258,16 +256,9 @@ impl KvEventConsolidatorPublisher { ...@@ -258,16 +256,9 @@ impl KvEventConsolidatorPublisher {
Bytes::from(seq_bytes.to_vec()), Bytes::from(seq_bytes.to_vec()),
Bytes::from(payload), Bytes::from(payload),
]; ];
let frames = frames.into_iter().map(|frame| frame.to_vec()).collect();
let msg = match zeromq::ZmqMessage::try_from(frames) { if let Err(e) = send_multipart(&socket, frames).await {
Ok(m) => m,
Err(e) => {
tracing::error!("Failed to create multipart ZMQ message: {:?}", e);
continue;
}
};
if let Err(e) = socket.send(msg).await {
tracing::error!("Failed to send consolidated events: {}", e); tracing::error!("Failed to send consolidated events: {}", e);
} else { } else {
tracing::debug!( tracing::debug!(
......
...@@ -6,17 +6,18 @@ ...@@ -6,17 +6,18 @@
//! This is a simplified subscriber that deserializes raw vLLM/TensorRT-LLM events. //! This is a simplified subscriber that deserializes raw vLLM/TensorRT-LLM events.
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use futures::StreamExt;
use rmp_serde::Deserializer; use rmp_serde::Deserializer;
use serde::Deserialize; use serde::Deserialize;
use std::sync::Arc; use std::sync::Arc;
use tokio::sync::RwLock; use tokio::sync::RwLock;
use tokio::task::JoinHandle; use tokio::task::JoinHandle;
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use zeromq::{Socket, SocketRecv, SubSocket};
use dynamo_kv_router::zmq_wire::RawKvEvent; use dynamo_kv_router::zmq_wire::RawKvEvent;
use super::tracker::{CacheStatusTracker, EventSource, StorageTier}; use super::tracker::{CacheStatusTracker, EventSource, StorageTier};
use crate::utils::zmq::{connect_sub_socket, multipart_message};
/// Event batch received from vLLM/TensorRT-LLM (array format) /// Event batch received from vLLM/TensorRT-LLM (array format)
/// Format: [timestamp, [events], data_parallel_rank] /// Format: [timestamp, [events], data_parallel_rank]
...@@ -73,15 +74,10 @@ async fn run_listener_loop( ...@@ -73,15 +74,10 @@ async fn run_listener_loop(
endpoint endpoint
); );
let mut socket = SubSocket::new(); let socket = connect_sub_socket(&endpoint, None)
socket
.connect(&endpoint)
.await .await
.context("Failed to connect to ZMQ endpoint")?; .with_context(|| format!("Failed to connect to ZMQ endpoint {endpoint}"))?;
socket let mut socket = socket;
.subscribe("")
.await
.context("Failed to subscribe to ZMQ topics")?;
tracing::info!( tracing::info!(
"KV event consolidator ZMQ listener successfully connected to {}", "KV event consolidator ZMQ listener successfully connected to {}",
...@@ -97,18 +93,19 @@ async fn run_listener_loop( ...@@ -97,18 +93,19 @@ async fn run_listener_loop(
break; break;
} }
msg_result = socket.recv() => { msg_result = socket.next() => {
let Ok(msg) = msg_result else { let frames = match msg_result {
tracing::warn!("Error receiving ZMQ message: {:?}", msg_result.unwrap_err()); Some(Ok(frames)) => multipart_message(frames),
tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; Some(Err(error)) => {
continue; tracing::error!("Error receiving ZMQ message: {error}");
break;
}
None => break,
}; };
// Parse multipart message: supports both formats // Parse multipart message: supports both formats
// - 2 frames: [topic, payload] // - 2 frames: [topic, payload]
// - 3 frames: [topic, sequence, payload] // - 3 frames: [topic, sequence, payload]
let frames: Vec<Vec<u8>> = msg.into_vec().into_iter().map(|f| f.to_vec()).collect();
let payload = match frames.len() { let payload = match frames.len() {
2 => &frames[1], // [topic, payload] 2 => &frames[1], // [topic, payload]
3 => &frames[2], // [topic, sequence, payload] 3 => &frames[2], // [topic, sequence, payload]
......
...@@ -11,19 +11,17 @@ ...@@ -11,19 +11,17 @@
//! [`crate::kv_router::publisher::KvEventPublisher`], but is much simpler: //! [`crate::kv_router::publisher::KvEventPublisher`], but is much simpler:
//! no event transformation, no batching, no local indexer — just raw byte relay. //! no event transformation, no batching, no local indexer — just raw byte relay.
use std::time::Duration;
use anyhow::Result; use anyhow::Result;
use futures::StreamExt;
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use zeromq::SocketRecv;
use crate::utils::zmq::connect_sub_socket_with_retry;
use dynamo_runtime::component::Component; use dynamo_runtime::component::Component;
use dynamo_runtime::traits::DistributedRuntimeProvider; use dynamo_runtime::traits::DistributedRuntimeProvider;
use dynamo_runtime::transports::event_plane::EventPublisher; use dynamo_runtime::transports::event_plane::EventPublisher;
use crate::utils::zmq::{connect_sub_socket, multipart_message};
const FPM_TOPIC: &str = "forward-pass-metrics"; const FPM_TOPIC: &str = "forward-pass-metrics";
const MAX_CONSECUTIVE_ERRORS: u32 = 10;
/// A relay that bridges ForwardPassMetrics from a local raw ZMQ PUB socket /// A relay that bridges ForwardPassMetrics from a local raw ZMQ PUB socket
/// to the Dynamo event plane. /// to the Dynamo event plane.
...@@ -62,15 +60,16 @@ impl FpmEventRelay { ...@@ -62,15 +60,16 @@ impl FpmEventRelay {
publisher: EventPublisher, publisher: EventPublisher,
cancel: CancellationToken, cancel: CancellationToken,
) { ) {
let Some(mut socket) = let socket = match connect_sub_socket(&zmq_endpoint, None).await {
connect_sub_socket_with_retry(&zmq_endpoint, None, &cancel, "FPM relay").await Ok(socket) => socket,
else { Err(error) => {
return; tracing::error!(endpoint = %zmq_endpoint, error = %error, "FPM relay: failed to connect");
return;
}
}; };
let mut socket = socket;
tracing::info!("FPM relay: connected to {zmq_endpoint}"); tracing::info!("FPM relay: connected to {zmq_endpoint}");
let mut consecutive_errors: u32 = 0;
loop { loop {
tokio::select! { tokio::select! {
biased; biased;
...@@ -78,16 +77,11 @@ impl FpmEventRelay { ...@@ -78,16 +77,11 @@ impl FpmEventRelay {
tracing::info!("FPM relay: shutting down"); tracing::info!("FPM relay: shutting down");
break; break;
} }
result = socket.recv() => { result = socket.next() => {
match result { match result {
Ok(msg) => { Some(Ok(frames)) => {
consecutive_errors = 0; let mut frames = multipart_message(frames);
// ZMQ multipart: [topic, seq, payload] // ZMQ multipart: [topic, seq, payload]
let mut frames: Vec<Vec<u8>> = msg
.into_vec()
.into_iter()
.map(|f| f.to_vec())
.collect();
if frames.len() == 3 { if frames.len() == 3 {
let payload = frames.swap_remove(2); let payload = frames.swap_remove(2);
if let Err(e) = publisher.publish_bytes(payload).await { if let Err(e) = publisher.publish_bytes(payload).await {
...@@ -97,19 +91,16 @@ impl FpmEventRelay { ...@@ -97,19 +91,16 @@ impl FpmEventRelay {
tracing::warn!( tracing::warn!(
"FPM relay: unexpected ZMQ frame count: expected 3, got {}", "FPM relay: unexpected ZMQ frame count: expected 3, got {}",
frames.len() frames.len()
);
}
}
Err(e) => {
consecutive_errors += 1;
tracing::warn!(
"FPM relay: ZMQ recv error ({consecutive_errors}/{MAX_CONSECUTIVE_ERRORS}): {e}"
); );
if consecutive_errors >= MAX_CONSECUTIVE_ERRORS {
tracing::error!("FPM relay: too many consecutive errors, exiting");
break;
} }
tokio::time::sleep(Duration::from_millis(100)).await; }
Some(Err(e)) => {
tracing::error!("FPM relay: ZMQ recv failed: {e}");
break;
}
None => {
tracing::error!("FPM relay: ZMQ stream ended");
break;
} }
} }
} }
......
...@@ -40,11 +40,6 @@ use event_processor::{ ...@@ -40,11 +40,6 @@ use event_processor::{
}; };
pub use worker_metrics::WorkerMetricsPublisher; pub use worker_metrics::WorkerMetricsPublisher;
use zmq_listener::start_zmq_listener; use zmq_listener::start_zmq_listener;
#[cfg(test)]
use zmq_listener::{
INITIAL_BACKOFF_MS, MAX_BACKOFF_EXPONENT, MAX_BACKOFF_MS, MAX_CONSECUTIVE_ERRORS,
calculate_backoff_ms,
};
const MAX_BATCHING_TIMEOUT_MS: u64 = 15_000; const MAX_BATCHING_TIMEOUT_MS: u64 = 15_000;
pub const DEFAULT_BATCHING_TIMEOUT_MS: Option<u64> = None; pub const DEFAULT_BATCHING_TIMEOUT_MS: Option<u64> = None;
......
...@@ -13,8 +13,6 @@ use std::future::Future; ...@@ -13,8 +13,6 @@ use std::future::Future;
#[allow(unused_imports)] #[allow(unused_imports)]
use std::sync::atomic::{AtomicU32, AtomicU64, Ordering}; use std::sync::atomic::{AtomicU32, AtomicU64, Ordering};
use std::time::Duration; use std::time::Duration;
#[allow(unused_imports)]
use zeromq::{PubSocket, Socket, SocketSend, ZmqMessage};
#[cfg(test)] #[cfg(test)]
mod test_event_processing { mod test_event_processing {
...@@ -430,11 +428,11 @@ mod test_event_processing { ...@@ -430,11 +428,11 @@ mod test_event_processing {
#[cfg(test)] #[cfg(test)]
mod tests_startup_helpers { mod tests_startup_helpers {
use super::*; use super::*;
use crate::utils::zmq::{bind_pub_socket, send_multipart};
use bytes::Bytes; use bytes::Bytes;
use dynamo_kv_router::indexer::{GetWorkersRequest, KvIndexer, KvIndexerInterface}; use dynamo_kv_router::indexer::{GetWorkersRequest, KvIndexer, KvIndexerInterface};
use dynamo_kv_router::protocols::{ExternalSequenceBlockHash, LocalBlockHash}; use dynamo_kv_router::protocols::{ExternalSequenceBlockHash, LocalBlockHash};
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use zeromq::{PubSocket, Socket, SocketSend, ZmqMessage};
// Type alias to resolve clippy::type_complexity warning // Type alias to resolve clippy::type_complexity warning
type PublishedEvents = Arc<Mutex<Vec<(String, Vec<u8>)>>>; type PublishedEvents = Arc<Mutex<Vec<(String, Vec<u8>)>>>;
...@@ -828,13 +826,20 @@ mod tests_startup_helpers { ...@@ -828,13 +826,20 @@ mod tests_startup_helpers {
// Prepare channel that listener should fill // Prepare channel that listener should fill
let (tx, mut rx) = mpsc::unbounded_channel::<PlacementEvent>(); let (tx, mut rx) = mpsc::unbounded_channel::<PlacementEvent>();
// ZMQ TCP endpoint using localhost with fixed port // ZMQ TCP endpoint using localhost with an ephemeral port
let endpoint = "tcp://127.0.0.1:15555"; let reserved_listener = reserve_open_port();
let endpoint = format!(
"tcp://127.0.0.1:{}",
reserved_listener
.local_addr()
.expect("failed to read reserved listener address")
.port()
);
drop(reserved_listener);
let topic = "".to_string(); // subscribe to all let topic = "".to_string(); // subscribe to all
// Publisher side - set up first // Publisher side - set up first
let mut pub_socket = PubSocket::new(); let pub_socket = bind_pub_socket(&endpoint).await.unwrap();
pub_socket.bind(endpoint).await.unwrap();
// Cancellation token so we can stop the listener // Cancellation token so we can stop the listener
let token = dynamo_runtime::CancellationToken::new(); let token = dynamo_runtime::CancellationToken::new();
...@@ -873,16 +878,13 @@ mod tests_startup_helpers { ...@@ -873,16 +878,13 @@ mod tests_startup_helpers {
let payload = Bytes::from(rmps::to_vec(&batch).unwrap()); let payload = Bytes::from(rmps::to_vec(&batch).unwrap());
let frames = vec![ let frames = vec![
Bytes::from(""), Bytes::from("").to_vec(),
Bytes::from(seq.to_be_bytes().to_vec()), Bytes::from(seq.to_be_bytes().to_vec()).to_vec(),
payload.clone(), payload.clone().to_vec(),
]; ];
// Create a proper multipart message
let msg = ZmqMessage::try_from(frames).expect("Failed to create ZmqMessage");
// Send the multipart message // Send the multipart message
pub_socket.send(msg).await.unwrap(); send_multipart(&pub_socket, frames).await.unwrap();
// Wait for message to be received // Wait for message to be received
tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; tokio::time::sleep(tokio::time::Duration::from_millis(100)).await;
...@@ -907,6 +909,75 @@ mod tests_startup_helpers { ...@@ -907,6 +909,75 @@ mod tests_startup_helpers {
let _ = listener_handle.await; let _ = listener_handle.await;
} }
#[tokio::test]
async fn test_start_zmq_listener_connects_before_publisher_bind() {
let (tx, mut rx) = mpsc::unbounded_channel::<PlacementEvent>();
let reserved_listener = reserve_open_port();
let endpoint = format!(
"tcp://127.0.0.1:{}",
reserved_listener
.local_addr()
.expect("failed to read reserved listener address")
.port()
);
drop(reserved_listener);
let topic = String::new();
let token = dynamo_runtime::CancellationToken::new();
let next_event_id = Arc::new(AtomicU64::new(0));
let listener_handle = tokio::spawn({
let token = token.clone();
let endpoint = endpoint.clone();
start_zmq_listener(endpoint, topic, 1, tx, token, 4, next_event_id)
});
tokio::time::sleep(tokio::time::Duration::from_millis(150)).await;
let pub_socket = bind_pub_socket(&endpoint).await.unwrap();
let batch = KvEventBatch {
ts: 0.0,
events: vec![RawKvEvent::BlockStored {
block_hashes: vec![BlockHashValue::Unsigned(64)],
parent_block_hash: None,
token_ids: vec![4, 5, 6, 7],
block_size: 4,
medium: None,
lora_name: None,
block_mm_infos: None,
is_eagle: None,
}],
data_parallel_rank: Some(0),
};
let payload = rmps::to_vec(&batch).unwrap();
for _ in 0..5 {
send_multipart(
&pub_socket,
vec![Vec::new(), 12u64.to_be_bytes().to_vec(), payload.clone()],
)
.await
.unwrap();
tokio::time::sleep(tokio::time::Duration::from_millis(50)).await;
}
let event = tokio::time::timeout(tokio::time::Duration::from_secs(5), rx.recv())
.await
.expect("timed out waiting for listener event")
.expect("listener channel closed")
.event;
let KvCacheEventData::Stored(KvCacheStoreData { blocks, .. }) = event.data else {
panic!("expected KvCacheStoreData");
};
assert_eq!(blocks[0].block_hash.0, 64);
token.cancel();
let _ = listener_handle.await;
}
fn reserve_open_port() -> std::net::TcpListener {
std::net::TcpListener::bind("127.0.0.1:0").expect("failed to bind probe listener")
}
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// Test distributed recovery: Router queries worker's LocalKvIndexer after outage // Test distributed recovery: Router queries worker's LocalKvIndexer after outage
//-------------------------------------------------------------------- //--------------------------------------------------------------------
...@@ -1120,55 +1191,6 @@ mod tests_startup_helpers { ...@@ -1120,55 +1191,6 @@ mod tests_startup_helpers {
} }
} }
#[cfg(test)]
mod test_exponential_backoff {
use super::*;
#[test]
fn test_backoff_calculation_progression() {
// Test the exponential progression
assert_eq!(calculate_backoff_ms(0), 10); // 10 * 2^0 = 10
assert_eq!(calculate_backoff_ms(1), 20); // 10 * 2^1 = 20
assert_eq!(calculate_backoff_ms(2), 40); // 10 * 2^2 = 40
assert_eq!(calculate_backoff_ms(3), 80); // 10 * 2^3 = 80
assert_eq!(calculate_backoff_ms(4), 160); // 10 * 2^4 = 160
assert_eq!(calculate_backoff_ms(5), 320); // 10 * 2^5 = 320
assert_eq!(calculate_backoff_ms(6), 640); // 10 * 2^6 = 640
assert_eq!(calculate_backoff_ms(7), 1280); // 10 * 2^7 = 1280
assert_eq!(calculate_backoff_ms(8), 2560); // 10 * 2^8 = 2560
}
#[test]
fn test_backoff_caps_at_max_exponent() {
// After MAX_BACKOFF_EXPONENT, should stay at 2^8 = 2560ms
assert_eq!(calculate_backoff_ms(8), 2560);
assert_eq!(calculate_backoff_ms(9), 2560); // Same as 8
assert_eq!(calculate_backoff_ms(100), 2560); // Same as 8
}
#[test]
fn test_backoff_never_exceeds_max() {
// Even if we somehow had a huge exponent, never exceed MAX_BACKOFF_MS
for i in 0..20 {
assert!(calculate_backoff_ms(i) <= MAX_BACKOFF_MS);
}
}
#[test]
#[expect(clippy::assertions_on_constants)]
fn test_backoff_constants_are_sane() {
// Verify our constants make sense together
assert!(INITIAL_BACKOFF_MS > 0);
assert!(MAX_BACKOFF_MS > INITIAL_BACKOFF_MS);
assert!(MAX_BACKOFF_EXPONENT <= 10); // Prevent crazy exponents
assert!(MAX_CONSECUTIVE_ERRORS > 0);
// Max calculated value should be less than MAX_BACKOFF_MS
let max_calculated = INITIAL_BACKOFF_MS * 2_u64.pow(MAX_BACKOFF_EXPONENT);
assert!(max_calculated <= MAX_BACKOFF_MS);
}
}
#[cfg(all(test, feature = "integration"))] #[cfg(all(test, feature = "integration"))]
mod test_integration_publisher { mod test_integration_publisher {
use super::*; use super::*;
......
...@@ -3,28 +3,16 @@ ...@@ -3,28 +3,16 @@
use std::sync::Arc; use std::sync::Arc;
use std::sync::atomic::{AtomicU32, AtomicU64, Ordering}; use std::sync::atomic::{AtomicU32, AtomicU64, Ordering};
use std::time::Duration;
use futures::StreamExt;
use rmp_serde as rmps; use rmp_serde as rmps;
use tokio::sync::mpsc; use tokio::sync::mpsc;
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use zeromq::SocketRecv;
use crate::utils::zmq::connect_sub_socket_with_retry;
use dynamo_kv_router::protocols::*; use dynamo_kv_router::protocols::*;
use dynamo_kv_router::zmq_wire::*; use dynamo_kv_router::zmq_wire::*;
pub(super) const INITIAL_BACKOFF_MS: u64 = 10; use crate::utils::zmq::{connect_sub_socket, multipart_message};
pub(super) const MAX_BACKOFF_MS: u64 = 5000;
pub(super) const MAX_CONSECUTIVE_ERRORS: u32 = 10;
pub(super) const MAX_BACKOFF_EXPONENT: u32 = 8;
pub(super) fn calculate_backoff_ms(consecutive_errors: u32) -> u64 {
std::cmp::min(
INITIAL_BACKOFF_MS * 2_u64.pow(consecutive_errors.min(MAX_BACKOFF_EXPONENT)),
MAX_BACKOFF_MS,
)
}
pub(super) async fn start_zmq_listener( pub(super) async fn start_zmq_listener(
zmq_endpoint: String, zmq_endpoint: String,
...@@ -42,63 +30,40 @@ pub(super) async fn start_zmq_listener( ...@@ -42,63 +30,40 @@ pub(super) async fn start_zmq_listener(
); );
let warning_count = Arc::new(AtomicU32::new(0)); let warning_count = Arc::new(AtomicU32::new(0));
let Some(mut socket) = connect_sub_socket_with_retry( let socket = match connect_sub_socket(&zmq_endpoint, Some(&zmq_topic)).await {
&zmq_endpoint, Ok(socket) => socket,
Some(&zmq_topic), Err(error) => {
&cancellation_token, tracing::error!(endpoint = %zmq_endpoint, topic = %zmq_topic, error = %error, "ZMQ listener failed to connect");
"ZMQ listener", return;
) }
.await
else {
return;
}; };
let mut socket = socket;
if cancellation_token.is_cancelled() {
return;
}
let mut consecutive_errors = 0u32;
#[expect(unused_assignments)]
let mut exit_reason = "unknown";
let mut messages_processed = 0u64; let mut messages_processed = 0u64;
'main: loop { let exit_reason = 'main: loop {
tokio::select! { tokio::select! {
biased; biased;
_ = cancellation_token.cancelled() => { _ = cancellation_token.cancelled() => {
tracing::debug!("ZMQ listener received cancellation signal"); tracing::debug!("ZMQ listener received cancellation signal");
exit_reason = "cancellation token cancelled"; break 'main String::from("cancellation token cancelled");
break 'main;
} }
msg_result = socket.recv() => { msg_result = socket.next() => {
let Ok(msg) = msg_result else { let frames = match msg_result {
let e = msg_result.unwrap_err(); Some(Ok(frames)) => multipart_message(frames),
consecutive_errors += 1; Some(Err(error)) => {
tracing::error!(endpoint = %zmq_endpoint, error = %error, "ZMQ listener recv failed");
if consecutive_errors >= MAX_CONSECUTIVE_ERRORS { break 'main format!("ZMQ recv failed: {error}");
tracing::error!(
error=%e,
consecutive_errors=%consecutive_errors,
"Too many consecutive ZMQ errors, terminating listener"
);
exit_reason = "too many consecutive errors";
break 'main;
} }
None => break 'main String::from("ZMQ stream ended"),
let backoff_ms = calculate_backoff_ms(consecutive_errors);
tracing::warn!(
error=%e,
consecutive_errors=%consecutive_errors,
backoff_ms=%backoff_ms,
"Error reading from ZMQ socket, applying exponential backoff"
);
tokio::time::sleep(Duration::from_millis(backoff_ms)).await;
continue;
}; };
consecutive_errors = 0; let mut frames = frames;
let mut frames: Vec<Vec<u8>> =
msg.into_vec().into_iter().map(|frame| frame.to_vec()).collect();
if frames.len() != 3 { if frames.len() != 3 {
tracing::warn!( tracing::warn!(
...@@ -144,14 +109,13 @@ pub(super) async fn start_zmq_listener( ...@@ -144,14 +109,13 @@ pub(super) async fn start_zmq_listener(
convert_event(raw_event, event_id, kv_block_size, worker, &warning_count); convert_event(raw_event, event_id, kv_block_size, worker, &warning_count);
if tx.send(event).is_err() { if tx.send(event).is_err() {
tracing::warn!("Failed to send message to channel - receiver dropped"); tracing::warn!("Failed to send message to channel - receiver dropped");
exit_reason = "channel receiver dropped"; break 'main String::from("channel receiver dropped");
break 'main;
} }
messages_processed += 1; messages_processed += 1;
} }
} }
} }
} };
tracing::debug!( tracing::debug!(
"ZMQ listener exiting, reason: {}, messages processed: {}", "ZMQ listener exiting, reason: {}, messages processed: {}",
......
...@@ -41,7 +41,10 @@ use tokio::sync::{Notify, OnceCell, mpsc}; ...@@ -41,7 +41,10 @@ use tokio::sync::{Notify, OnceCell, mpsc};
use tokio_stream::wrappers::UnboundedReceiverStream; use tokio_stream::wrappers::UnboundedReceiverStream;
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use uuid::Uuid; use uuid::Uuid;
use zeromq::{Socket, SocketRecv, SocketSend};
use crate::utils::zmq::{
bind_pub_socket, bind_router_socket, multipart_message, send_multipart, send_multipart_direct,
};
pub const MOCKER_COMPONENT: &str = "mocker"; pub const MOCKER_COMPONENT: &str = "mocker";
...@@ -90,21 +93,16 @@ impl ZmqKvEventSink { ...@@ -90,21 +93,16 @@ impl ZmqKvEventSink {
) -> Result<Self> { ) -> Result<Self> {
let (tx, mut rx) = mpsc::unbounded_channel::<RawKvEvent>(); let (tx, mut rx) = mpsc::unbounded_channel::<RawKvEvent>();
// Bind the PUB socket before returning so that any SUB connect()
// that follows is guaranteed to find the endpoint already listening.
let mut pub_socket = zeromq::PubSocket::new();
let endpoint = format!("tcp://0.0.0.0:{port}"); let endpoint = format!("tcp://0.0.0.0:{port}");
pub_socket let pub_socket = bind_pub_socket(&endpoint)
.bind(&endpoint)
.await .await
.map_err(|e| anyhow::anyhow!("ZMQ PUB bind to {endpoint} failed: {e}"))?; .map_err(|e| anyhow::anyhow!("ZMQ PUB bind to {endpoint} failed: {e}"))?;
tracing::info!("ZmqKvEventSink bound to {endpoint} for dp_rank {dp_rank}"); tracing::info!("ZmqKvEventSink bound to {endpoint} for dp_rank {dp_rank}");
// Optionally bind ROUTER socket for replay // Optionally bind ROUTER socket for replay
let mut router_socket = if let Some(rp) = replay_port { let mut router_socket = if let Some(rp) = replay_port {
let mut sock = zeromq::RouterSocket::new();
let replay_ep = format!("tcp://0.0.0.0:{rp}"); let replay_ep = format!("tcp://0.0.0.0:{rp}");
sock.bind(&replay_ep) let sock = bind_router_socket(&replay_ep)
.await .await
.map_err(|e| anyhow::anyhow!("ZMQ ROUTER bind to {replay_ep} failed: {e}"))?; .map_err(|e| anyhow::anyhow!("ZMQ ROUTER bind to {replay_ep} failed: {e}"))?;
tracing::info!( tracing::info!(
...@@ -114,7 +112,6 @@ impl ZmqKvEventSink { ...@@ -114,7 +112,6 @@ impl ZmqKvEventSink {
} else { } else {
None None
}; };
tokio::spawn(async move { tokio::spawn(async move {
let mut seq_num: u64 = 0; let mut seq_num: u64 = 0;
// Store Bytes (ref-counted) to avoid memcpy on both PUB and buffer paths. // Store Bytes (ref-counted) to avoid memcpy on both PUB and buffer paths.
...@@ -128,20 +125,29 @@ impl ZmqKvEventSink { ...@@ -128,20 +125,29 @@ impl ZmqKvEventSink {
// to prevent starvation under sustained KV event load. // to prevent starvation under sustained KV event load.
replay_result = async { replay_result = async {
match router_socket.as_mut() { match router_socket.as_mut() {
Some(sock) => sock.recv().await, Some(socket) => socket.next().await,
None => std::future::pending().await, None => std::future::pending().await,
} }
} => { } => {
let Ok(req_msg) = replay_result else { let req_msg = match replay_result {
tracing::warn!("Replay ROUTER recv error"); Some(Ok(req_msg)) => multipart_message(req_msg),
continue; Some(Err(error)) => {
tracing::warn!("Replay ROUTER recv error: {error}");
router_socket = None;
continue;
}
None => {
tracing::warn!("Replay ROUTER stream ended");
router_socket = None;
continue;
}
}; };
if req_msg.len() < 3 { if req_msg.len() < 3 {
tracing::warn!("Unexpected replay request frame count: {}", req_msg.len()); tracing::warn!("Unexpected replay request frame count: {}", req_msg.len());
continue; continue;
} }
let identity: Bytes = Bytes::copy_from_slice(req_msg.get(0).unwrap()); let identity: Bytes = Bytes::copy_from_slice(req_msg.first().unwrap());
let start_seq_bytes = req_msg.get(2).unwrap(); let start_seq_bytes = req_msg.get(2).unwrap();
if start_seq_bytes.len() != 8 { if start_seq_bytes.len() != 8 {
tracing::warn!("Invalid replay start_seq length: {}", start_seq_bytes.len()); tracing::warn!("Invalid replay start_seq length: {}", start_seq_bytes.len());
...@@ -160,28 +166,24 @@ impl ZmqKvEventSink { ...@@ -160,28 +166,24 @@ impl ZmqKvEventSink {
let sock = router_socket.as_mut().unwrap(); let sock = router_socket.as_mut().unwrap();
for (seq, payload) in ring_buffer.iter().skip(start_idx) { for (seq, payload) in ring_buffer.iter().skip(start_idx) {
let frames = vec![ let frames = vec![
identity.clone(), identity.clone().to_vec(),
Bytes::new(), Vec::new(),
Bytes::from(seq.to_be_bytes().to_vec()), seq.to_be_bytes().to_vec(),
payload.clone(), // ref-count bump payload.to_vec(),
]; ];
let reply = zeromq::ZmqMessage::try_from(frames) if let Err(e) = send_multipart_direct(sock, frames).await {
.expect("replay frame");
if let Err(e) = sock.send(reply).await {
tracing::warn!("Replay send error: {e}"); tracing::warn!("Replay send error: {e}");
break; break;
} }
} }
// Sentinel: empty payload signals end of replay // Sentinel: empty payload signals end of replay
let sentinel_frames = vec![ let sentinel_frames = vec![
identity, identity.to_vec(),
Bytes::new(), Vec::new(),
Bytes::from((-1i64).to_be_bytes().to_vec()), (-1i64).to_be_bytes().to_vec(),
Bytes::new(), Vec::new(),
]; ];
let sentinel = zeromq::ZmqMessage::try_from(sentinel_frames) let _ = send_multipart_direct(sock, sentinel_frames).await;
.expect("sentinel frame");
let _ = sock.send(sentinel).await;
} }
msg_opt = rx.recv() => { msg_opt = rx.recv() => {
...@@ -211,24 +213,21 @@ impl ZmqKvEventSink { ...@@ -211,24 +213,21 @@ impl ZmqKvEventSink {
} }
}; };
let frames = vec![
Bytes::from(""),
Bytes::from(seq_num.to_be_bytes().to_vec()),
payload.clone(), // ref-count bump, not memcpy
];
let zmq_msg = zeromq::ZmqMessage::try_from(frames)
.expect("Failed to create ZMQ multipart message");
if router_socket.is_some() { if router_socket.is_some() {
if ring_buffer.len() >= REPLAY_BUFFER_CAPACITY { if ring_buffer.len() >= REPLAY_BUFFER_CAPACITY {
ring_buffer.pop_front(); ring_buffer.pop_front();
} }
ring_buffer.push_back((seq_num, payload)); ring_buffer.push_back((seq_num, payload.clone()));
} }
// Record the batch for replay before live publish so listeners // Record the batch for replay before live publish so listeners
// can recover even if the PUB send is missed or fails. // can recover even if the PUB send is missed or fails.
if let Err(e) = pub_socket.send(zmq_msg).await { let frames = vec![
Vec::new(),
seq_num.to_be_bytes().to_vec(),
payload.to_vec(),
];
if let Err(e) = send_multipart(&pub_socket, frames).await {
tracing::warn!("Failed to send ZMQ KV event: {e}"); tracing::warn!("Failed to send ZMQ KV event: {e}");
} }
......
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