├── .gitignore ├── .vscode └── settings.json ├── Cargo.lock ├── Cargo.toml ├── README.md └── src ├── lib.rs └── main.rs /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "ALPN" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "acto" 7 | version = "0.7.3" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "52632fc65e2b2dac7eb4f62e94c494a48ceecc8d2b81c5748dd19694850b548b" 10 | dependencies = [ 11 | "parking_lot", 12 | "pin-project-lite", 13 | "rustc_version", 14 | "smol_str", 15 | "tokio", 16 | "tracing", 17 | ] 18 | 19 | [[package]] 20 | name = "addr2line" 21 | version = "0.24.2" 22 | source = "registry+https://github.com/rust-lang/crates.io-index" 23 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 24 | dependencies = [ 25 | "gimli", 26 | ] 27 | 28 | [[package]] 29 | name = "adler2" 30 | version = "2.0.0" 31 | source = "registry+https://github.com/rust-lang/crates.io-index" 32 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 33 | 34 | [[package]] 35 | name = "aead" 36 | version = "0.5.2" 37 | source = "registry+https://github.com/rust-lang/crates.io-index" 38 | checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" 39 | dependencies = [ 40 | "bytes", 41 | "crypto-common", 42 | "generic-array", 43 | ] 44 | 45 | [[package]] 46 | name = "ahash" 47 | version = "0.8.11" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 50 | dependencies = [ 51 | "cfg-if", 52 | "getrandom 0.2.15", 53 | "once_cell", 54 | "version_check", 55 | "zerocopy", 56 | ] 57 | 58 | [[package]] 59 | name = "aho-corasick" 60 | version = "1.1.3" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 63 | dependencies = [ 64 | "memchr", 65 | ] 66 | 67 | [[package]] 68 | name = "allocator-api2" 69 | version = "0.2.21" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 72 | 73 | [[package]] 74 | name = "android-tzdata" 75 | version = "0.1.1" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 78 | 79 | [[package]] 80 | name = "android_system_properties" 81 | version = "0.1.5" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 84 | dependencies = [ 85 | "libc", 86 | ] 87 | 88 | [[package]] 89 | name = "anstream" 90 | version = "0.6.18" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" 93 | dependencies = [ 94 | "anstyle", 95 | "anstyle-parse", 96 | "anstyle-query", 97 | "anstyle-wincon", 98 | "colorchoice", 99 | "is_terminal_polyfill", 100 | "utf8parse", 101 | ] 102 | 103 | [[package]] 104 | name = "anstyle" 105 | version = "1.0.10" 106 | source = "registry+https://github.com/rust-lang/crates.io-index" 107 | checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" 108 | 109 | [[package]] 110 | name = "anstyle-parse" 111 | version = "0.2.6" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" 114 | dependencies = [ 115 | "utf8parse", 116 | ] 117 | 118 | [[package]] 119 | name = "anstyle-query" 120 | version = "1.1.2" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" 123 | dependencies = [ 124 | "windows-sys 0.59.0", 125 | ] 126 | 127 | [[package]] 128 | name = "anstyle-wincon" 129 | version = "3.0.6" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" 132 | dependencies = [ 133 | "anstyle", 134 | "windows-sys 0.59.0", 135 | ] 136 | 137 | [[package]] 138 | name = "anyhow" 139 | version = "1.0.94" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" 142 | 143 | [[package]] 144 | name = "append-only-bytes" 145 | version = "0.1.12" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "ac436601d6bdde674a0d7fb593e829ffe7b3387c351b356dd20e2d40f5bf3ee5" 148 | 149 | [[package]] 150 | name = "arbitrary" 151 | version = "1.4.1" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" 154 | dependencies = [ 155 | "derive_arbitrary", 156 | ] 157 | 158 | [[package]] 159 | name = "arrayvec" 160 | version = "0.7.6" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 163 | 164 | [[package]] 165 | name = "arref" 166 | version = "0.1.0" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "2ccd462b64c3c72f1be8305905a85d85403d768e8690c9b8bd3b9009a5761679" 169 | 170 | [[package]] 171 | name = "asn1-rs" 172 | version = "0.6.2" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" 175 | dependencies = [ 176 | "asn1-rs-derive", 177 | "asn1-rs-impl", 178 | "displaydoc", 179 | "nom", 180 | "num-traits", 181 | "rusticata-macros", 182 | "thiserror 1.0.69", 183 | "time", 184 | ] 185 | 186 | [[package]] 187 | name = "asn1-rs-derive" 188 | version = "0.5.1" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" 191 | dependencies = [ 192 | "proc-macro2", 193 | "quote", 194 | "syn 2.0.90", 195 | "synstructure", 196 | ] 197 | 198 | [[package]] 199 | name = "asn1-rs-impl" 200 | version = "0.2.0" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" 203 | dependencies = [ 204 | "proc-macro2", 205 | "quote", 206 | "syn 2.0.90", 207 | ] 208 | 209 | [[package]] 210 | name = "async-broadcast" 211 | version = "0.7.1" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" 214 | dependencies = [ 215 | "event-listener", 216 | "event-listener-strategy", 217 | "futures-core", 218 | "pin-project-lite", 219 | ] 220 | 221 | [[package]] 222 | name = "async-channel" 223 | version = "2.3.1" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 226 | dependencies = [ 227 | "concurrent-queue", 228 | "event-listener-strategy", 229 | "futures-core", 230 | "pin-project-lite", 231 | ] 232 | 233 | [[package]] 234 | name = "async-recursion" 235 | version = "1.1.1" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" 238 | dependencies = [ 239 | "proc-macro2", 240 | "quote", 241 | "syn 2.0.90", 242 | ] 243 | 244 | [[package]] 245 | name = "async-trait" 246 | version = "0.1.83" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 249 | dependencies = [ 250 | "proc-macro2", 251 | "quote", 252 | "syn 2.0.90", 253 | ] 254 | 255 | [[package]] 256 | name = "atomic-polyfill" 257 | version = "1.0.3" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" 260 | dependencies = [ 261 | "critical-section", 262 | ] 263 | 264 | [[package]] 265 | name = "atomic-waker" 266 | version = "1.1.2" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 269 | 270 | [[package]] 271 | name = "attohttpc" 272 | version = "0.24.1" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" 275 | dependencies = [ 276 | "http 0.2.12", 277 | "log", 278 | "url", 279 | ] 280 | 281 | [[package]] 282 | name = "autocfg" 283 | version = "1.4.0" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 286 | 287 | [[package]] 288 | name = "backon" 289 | version = "1.5.0" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | checksum = "fd0b50b1b78dbadd44ab18b3c794e496f3a139abb9fbc27d9c94c4eebbb96496" 292 | dependencies = [ 293 | "fastrand", 294 | "gloo-timers", 295 | "tokio", 296 | ] 297 | 298 | [[package]] 299 | name = "backtrace" 300 | version = "0.3.74" 301 | source = "registry+https://github.com/rust-lang/crates.io-index" 302 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 303 | dependencies = [ 304 | "addr2line", 305 | "cfg-if", 306 | "libc", 307 | "miniz_oxide", 308 | "object", 309 | "rustc-demangle", 310 | "windows-targets 0.52.6", 311 | ] 312 | 313 | [[package]] 314 | name = "base16ct" 315 | version = "0.2.0" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 318 | 319 | [[package]] 320 | name = "base64" 321 | version = "0.22.1" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 324 | 325 | [[package]] 326 | name = "base64ct" 327 | version = "1.6.0" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 330 | 331 | [[package]] 332 | name = "bitflags" 333 | version = "1.3.2" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 336 | 337 | [[package]] 338 | name = "bitflags" 339 | version = "2.6.0" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 342 | 343 | [[package]] 344 | name = "bitmaps" 345 | version = "2.1.0" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" 348 | dependencies = [ 349 | "typenum", 350 | ] 351 | 352 | [[package]] 353 | name = "block-buffer" 354 | version = "0.10.4" 355 | source = "registry+https://github.com/rust-lang/crates.io-index" 356 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 357 | dependencies = [ 358 | "generic-array", 359 | ] 360 | 361 | [[package]] 362 | name = "bounded-integer" 363 | version = "0.5.7" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "78a6932c88f1d2c29533a3b8a5f5a2f84cc19c3339b431677c3160c5c2e6ca85" 366 | 367 | [[package]] 368 | name = "bumpalo" 369 | version = "3.16.0" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 372 | 373 | [[package]] 374 | name = "byteorder" 375 | version = "1.5.0" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 378 | 379 | [[package]] 380 | name = "bytes" 381 | version = "1.9.0" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" 384 | 385 | [[package]] 386 | name = "cc" 387 | version = "1.2.2" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" 390 | dependencies = [ 391 | "shlex", 392 | ] 393 | 394 | [[package]] 395 | name = "cfg-if" 396 | version = "1.0.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 399 | 400 | [[package]] 401 | name = "cfg_aliases" 402 | version = "0.2.1" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 405 | 406 | [[package]] 407 | name = "chacha20" 408 | version = "0.9.1" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" 411 | dependencies = [ 412 | "cfg-if", 413 | "cipher", 414 | "cpufeatures", 415 | ] 416 | 417 | [[package]] 418 | name = "chrono" 419 | version = "0.4.38" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 422 | dependencies = [ 423 | "android-tzdata", 424 | "iana-time-zone", 425 | "num-traits", 426 | "serde", 427 | "windows-targets 0.52.6", 428 | ] 429 | 430 | [[package]] 431 | name = "cipher" 432 | version = "0.4.4" 433 | source = "registry+https://github.com/rust-lang/crates.io-index" 434 | checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 435 | dependencies = [ 436 | "crypto-common", 437 | "inout", 438 | "zeroize", 439 | ] 440 | 441 | [[package]] 442 | name = "clap" 443 | version = "4.5.22" 444 | source = "registry+https://github.com/rust-lang/crates.io-index" 445 | checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" 446 | dependencies = [ 447 | "clap_builder", 448 | "clap_derive", 449 | ] 450 | 451 | [[package]] 452 | name = "clap_builder" 453 | version = "4.5.22" 454 | source = "registry+https://github.com/rust-lang/crates.io-index" 455 | checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" 456 | dependencies = [ 457 | "anstream", 458 | "anstyle", 459 | "clap_lex", 460 | "strsim", 461 | ] 462 | 463 | [[package]] 464 | name = "clap_derive" 465 | version = "4.5.18" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" 468 | dependencies = [ 469 | "heck 0.5.0", 470 | "proc-macro2", 471 | "quote", 472 | "syn 2.0.90", 473 | ] 474 | 475 | [[package]] 476 | name = "clap_lex" 477 | version = "0.7.3" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" 480 | 481 | [[package]] 482 | name = "cobs" 483 | version = "0.2.3" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" 486 | 487 | [[package]] 488 | name = "colorchoice" 489 | version = "1.0.3" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" 492 | 493 | [[package]] 494 | name = "concurrent-queue" 495 | version = "2.5.0" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 498 | dependencies = [ 499 | "crossbeam-utils", 500 | ] 501 | 502 | [[package]] 503 | name = "const-oid" 504 | version = "0.9.6" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 507 | 508 | [[package]] 509 | name = "cordyceps" 510 | version = "0.3.2" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "ec10f0a762d93c4498d2e97a333805cb6250d60bead623f71d8034f9a4152ba3" 513 | dependencies = [ 514 | "loom 0.5.6", 515 | "tracing", 516 | ] 517 | 518 | [[package]] 519 | name = "core-foundation" 520 | version = "0.9.4" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 523 | dependencies = [ 524 | "core-foundation-sys", 525 | "libc", 526 | ] 527 | 528 | [[package]] 529 | name = "core-foundation-sys" 530 | version = "0.8.7" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 533 | 534 | [[package]] 535 | name = "cpufeatures" 536 | version = "0.2.16" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" 539 | dependencies = [ 540 | "libc", 541 | ] 542 | 543 | [[package]] 544 | name = "crc" 545 | version = "3.2.1" 546 | source = "registry+https://github.com/rust-lang/crates.io-index" 547 | checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" 548 | dependencies = [ 549 | "crc-catalog", 550 | ] 551 | 552 | [[package]] 553 | name = "crc-catalog" 554 | version = "2.4.0" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 557 | 558 | [[package]] 559 | name = "critical-section" 560 | version = "1.2.0" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 563 | 564 | [[package]] 565 | name = "crossbeam-channel" 566 | version = "0.5.15" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 569 | dependencies = [ 570 | "crossbeam-utils", 571 | ] 572 | 573 | [[package]] 574 | name = "crossbeam-epoch" 575 | version = "0.9.18" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 578 | dependencies = [ 579 | "crossbeam-utils", 580 | ] 581 | 582 | [[package]] 583 | name = "crossbeam-utils" 584 | version = "0.8.20" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 587 | 588 | [[package]] 589 | name = "crypto-bigint" 590 | version = "0.5.5" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" 593 | dependencies = [ 594 | "generic-array", 595 | "rand_core 0.6.4", 596 | "subtle", 597 | "zeroize", 598 | ] 599 | 600 | [[package]] 601 | name = "crypto-common" 602 | version = "0.1.6" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 605 | dependencies = [ 606 | "generic-array", 607 | "rand_core 0.6.4", 608 | "typenum", 609 | ] 610 | 611 | [[package]] 612 | name = "crypto_box" 613 | version = "0.9.1" 614 | source = "registry+https://github.com/rust-lang/crates.io-index" 615 | checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009" 616 | dependencies = [ 617 | "aead", 618 | "chacha20", 619 | "crypto_secretbox", 620 | "curve25519-dalek", 621 | "salsa20", 622 | "serdect", 623 | "subtle", 624 | "zeroize", 625 | ] 626 | 627 | [[package]] 628 | name = "crypto_secretbox" 629 | version = "0.1.1" 630 | source = "registry+https://github.com/rust-lang/crates.io-index" 631 | checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" 632 | dependencies = [ 633 | "aead", 634 | "chacha20", 635 | "cipher", 636 | "generic-array", 637 | "poly1305", 638 | "salsa20", 639 | "subtle", 640 | "zeroize", 641 | ] 642 | 643 | [[package]] 644 | name = "curve25519-dalek" 645 | version = "4.1.3" 646 | source = "registry+https://github.com/rust-lang/crates.io-index" 647 | checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" 648 | dependencies = [ 649 | "cfg-if", 650 | "cpufeatures", 651 | "curve25519-dalek-derive", 652 | "digest", 653 | "fiat-crypto", 654 | "rand_core 0.6.4", 655 | "rustc_version", 656 | "serde", 657 | "subtle", 658 | "zeroize", 659 | ] 660 | 661 | [[package]] 662 | name = "curve25519-dalek-derive" 663 | version = "0.1.1" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" 666 | dependencies = [ 667 | "proc-macro2", 668 | "quote", 669 | "syn 2.0.90", 670 | ] 671 | 672 | [[package]] 673 | name = "darling" 674 | version = "0.20.10" 675 | source = "registry+https://github.com/rust-lang/crates.io-index" 676 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 677 | dependencies = [ 678 | "darling_core", 679 | "darling_macro", 680 | ] 681 | 682 | [[package]] 683 | name = "darling_core" 684 | version = "0.20.10" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 687 | dependencies = [ 688 | "fnv", 689 | "ident_case", 690 | "proc-macro2", 691 | "quote", 692 | "strsim", 693 | "syn 2.0.90", 694 | ] 695 | 696 | [[package]] 697 | name = "darling_macro" 698 | version = "0.20.10" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 701 | dependencies = [ 702 | "darling_core", 703 | "quote", 704 | "syn 2.0.90", 705 | ] 706 | 707 | [[package]] 708 | name = "data-encoding" 709 | version = "2.6.0" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" 712 | 713 | [[package]] 714 | name = "der" 715 | version = "0.7.9" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" 718 | dependencies = [ 719 | "const-oid", 720 | "der_derive", 721 | "pem-rfc7468", 722 | "zeroize", 723 | ] 724 | 725 | [[package]] 726 | name = "der-parser" 727 | version = "9.0.0" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" 730 | dependencies = [ 731 | "asn1-rs", 732 | "displaydoc", 733 | "nom", 734 | "num-bigint", 735 | "num-traits", 736 | "rusticata-macros", 737 | ] 738 | 739 | [[package]] 740 | name = "der_derive" 741 | version = "0.7.3" 742 | source = "registry+https://github.com/rust-lang/crates.io-index" 743 | checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" 744 | dependencies = [ 745 | "proc-macro2", 746 | "quote", 747 | "syn 2.0.90", 748 | ] 749 | 750 | [[package]] 751 | name = "deranged" 752 | version = "0.3.11" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 755 | dependencies = [ 756 | "powerfmt", 757 | ] 758 | 759 | [[package]] 760 | name = "derive_arbitrary" 761 | version = "1.4.1" 762 | source = "registry+https://github.com/rust-lang/crates.io-index" 763 | checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" 764 | dependencies = [ 765 | "proc-macro2", 766 | "quote", 767 | "syn 2.0.90", 768 | ] 769 | 770 | [[package]] 771 | name = "derive_more" 772 | version = "1.0.0" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" 775 | dependencies = [ 776 | "derive_more-impl", 777 | ] 778 | 779 | [[package]] 780 | name = "derive_more-impl" 781 | version = "1.0.0" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" 784 | dependencies = [ 785 | "proc-macro2", 786 | "quote", 787 | "syn 2.0.90", 788 | "unicode-xid", 789 | ] 790 | 791 | [[package]] 792 | name = "diatomic-waker" 793 | version = "0.2.3" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" 796 | 797 | [[package]] 798 | name = "diff" 799 | version = "0.1.13" 800 | source = "registry+https://github.com/rust-lang/crates.io-index" 801 | checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" 802 | 803 | [[package]] 804 | name = "digest" 805 | version = "0.10.7" 806 | source = "registry+https://github.com/rust-lang/crates.io-index" 807 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 808 | dependencies = [ 809 | "block-buffer", 810 | "const-oid", 811 | "crypto-common", 812 | "subtle", 813 | ] 814 | 815 | [[package]] 816 | name = "dirs-next" 817 | version = "2.0.0" 818 | source = "registry+https://github.com/rust-lang/crates.io-index" 819 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 820 | dependencies = [ 821 | "cfg-if", 822 | "dirs-sys-next", 823 | ] 824 | 825 | [[package]] 826 | name = "dirs-sys-next" 827 | version = "0.1.2" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 830 | dependencies = [ 831 | "libc", 832 | "redox_users", 833 | "winapi", 834 | ] 835 | 836 | [[package]] 837 | name = "displaydoc" 838 | version = "0.2.5" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 841 | dependencies = [ 842 | "proc-macro2", 843 | "quote", 844 | "syn 2.0.90", 845 | ] 846 | 847 | [[package]] 848 | name = "dlopen2" 849 | version = "0.5.0" 850 | source = "registry+https://github.com/rust-lang/crates.io-index" 851 | checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" 852 | dependencies = [ 853 | "libc", 854 | "once_cell", 855 | "winapi", 856 | ] 857 | 858 | [[package]] 859 | name = "document-features" 860 | version = "0.2.10" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" 863 | dependencies = [ 864 | "litrs", 865 | ] 866 | 867 | [[package]] 868 | name = "dtoa" 869 | version = "1.0.9" 870 | source = "registry+https://github.com/rust-lang/crates.io-index" 871 | checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" 872 | 873 | [[package]] 874 | name = "ecdsa" 875 | version = "0.16.9" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" 878 | dependencies = [ 879 | "der", 880 | "digest", 881 | "elliptic-curve", 882 | "rfc6979", 883 | "signature", 884 | "spki", 885 | ] 886 | 887 | [[package]] 888 | name = "ed25519" 889 | version = "2.2.3" 890 | source = "registry+https://github.com/rust-lang/crates.io-index" 891 | checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" 892 | dependencies = [ 893 | "pkcs8", 894 | "serde", 895 | "signature", 896 | ] 897 | 898 | [[package]] 899 | name = "ed25519-dalek" 900 | version = "2.1.1" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" 903 | dependencies = [ 904 | "curve25519-dalek", 905 | "ed25519", 906 | "rand_core 0.6.4", 907 | "serde", 908 | "sha2", 909 | "subtle", 910 | "zeroize", 911 | ] 912 | 913 | [[package]] 914 | name = "either" 915 | version = "1.13.0" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 918 | 919 | [[package]] 920 | name = "elliptic-curve" 921 | version = "0.13.8" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" 924 | dependencies = [ 925 | "base16ct", 926 | "crypto-bigint", 927 | "digest", 928 | "ff", 929 | "generic-array", 930 | "group", 931 | "pkcs8", 932 | "rand_core 0.6.4", 933 | "sec1", 934 | "subtle", 935 | "zeroize", 936 | ] 937 | 938 | [[package]] 939 | name = "embedded-io" 940 | version = "0.4.0" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 943 | 944 | [[package]] 945 | name = "embedded-io" 946 | version = "0.6.1" 947 | source = "registry+https://github.com/rust-lang/crates.io-index" 948 | checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 949 | 950 | [[package]] 951 | name = "ensure-cov" 952 | version = "0.1.0" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | checksum = "33753185802e107b8fa907192af1f0eca13b1fb33327a59266d650fef29b2b4e" 955 | 956 | [[package]] 957 | name = "enum-as-inner" 958 | version = "0.5.1" 959 | source = "registry+https://github.com/rust-lang/crates.io-index" 960 | checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" 961 | dependencies = [ 962 | "heck 0.4.1", 963 | "proc-macro2", 964 | "quote", 965 | "syn 1.0.109", 966 | ] 967 | 968 | [[package]] 969 | name = "enum-as-inner" 970 | version = "0.6.1" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 973 | dependencies = [ 974 | "heck 0.5.0", 975 | "proc-macro2", 976 | "quote", 977 | "syn 2.0.90", 978 | ] 979 | 980 | [[package]] 981 | name = "enum_dispatch" 982 | version = "0.3.13" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" 985 | dependencies = [ 986 | "once_cell", 987 | "proc-macro2", 988 | "quote", 989 | "syn 2.0.90", 990 | ] 991 | 992 | [[package]] 993 | name = "enumflags2" 994 | version = "0.7.10" 995 | source = "registry+https://github.com/rust-lang/crates.io-index" 996 | checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" 997 | dependencies = [ 998 | "enumflags2_derive", 999 | ] 1000 | 1001 | [[package]] 1002 | name = "enumflags2_derive" 1003 | version = "0.7.10" 1004 | source = "registry+https://github.com/rust-lang/crates.io-index" 1005 | checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" 1006 | dependencies = [ 1007 | "proc-macro2", 1008 | "quote", 1009 | "syn 2.0.90", 1010 | ] 1011 | 1012 | [[package]] 1013 | name = "equivalent" 1014 | version = "1.0.1" 1015 | source = "registry+https://github.com/rust-lang/crates.io-index" 1016 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 1017 | 1018 | [[package]] 1019 | name = "erased-serde" 1020 | version = "0.3.31" 1021 | source = "registry+https://github.com/rust-lang/crates.io-index" 1022 | checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" 1023 | dependencies = [ 1024 | "serde", 1025 | ] 1026 | 1027 | [[package]] 1028 | name = "erased_set" 1029 | version = "0.8.0" 1030 | source = "registry+https://github.com/rust-lang/crates.io-index" 1031 | checksum = "a02a5d186d7bf1cb21f1f95e1a9cfa5c1f2dcd803a47aad454423ceec13525c5" 1032 | 1033 | [[package]] 1034 | name = "errno" 1035 | version = "0.3.11" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" 1038 | dependencies = [ 1039 | "libc", 1040 | "windows-sys 0.59.0", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "event-listener" 1045 | version = "5.3.1" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" 1048 | dependencies = [ 1049 | "concurrent-queue", 1050 | "parking", 1051 | "pin-project-lite", 1052 | ] 1053 | 1054 | [[package]] 1055 | name = "event-listener-strategy" 1056 | version = "0.5.3" 1057 | source = "registry+https://github.com/rust-lang/crates.io-index" 1058 | checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" 1059 | dependencies = [ 1060 | "event-listener", 1061 | "pin-project-lite", 1062 | ] 1063 | 1064 | [[package]] 1065 | name = "fallible-iterator" 1066 | version = "0.3.0" 1067 | source = "registry+https://github.com/rust-lang/crates.io-index" 1068 | checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" 1069 | 1070 | [[package]] 1071 | name = "fastrand" 1072 | version = "2.2.0" 1073 | source = "registry+https://github.com/rust-lang/crates.io-index" 1074 | checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" 1075 | 1076 | [[package]] 1077 | name = "ff" 1078 | version = "0.13.1" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" 1081 | dependencies = [ 1082 | "rand_core 0.6.4", 1083 | "subtle", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "fiat-crypto" 1088 | version = "0.2.9" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 1091 | 1092 | [[package]] 1093 | name = "filetime" 1094 | version = "0.2.25" 1095 | source = "registry+https://github.com/rust-lang/crates.io-index" 1096 | checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" 1097 | dependencies = [ 1098 | "cfg-if", 1099 | "libc", 1100 | "libredox", 1101 | "windows-sys 0.59.0", 1102 | ] 1103 | 1104 | [[package]] 1105 | name = "flume" 1106 | version = "0.11.1" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" 1109 | dependencies = [ 1110 | "futures-core", 1111 | "futures-sink", 1112 | "nanorand", 1113 | "spin", 1114 | ] 1115 | 1116 | [[package]] 1117 | name = "fnv" 1118 | version = "1.0.7" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1121 | 1122 | [[package]] 1123 | name = "foldhash" 1124 | version = "0.1.5" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 1127 | 1128 | [[package]] 1129 | name = "form_urlencoded" 1130 | version = "1.2.1" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1133 | dependencies = [ 1134 | "percent-encoding", 1135 | ] 1136 | 1137 | [[package]] 1138 | name = "fsevent-sys" 1139 | version = "4.1.0" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" 1142 | dependencies = [ 1143 | "libc", 1144 | ] 1145 | 1146 | [[package]] 1147 | name = "futures" 1148 | version = "0.3.31" 1149 | source = "registry+https://github.com/rust-lang/crates.io-index" 1150 | checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 1151 | dependencies = [ 1152 | "futures-channel", 1153 | "futures-core", 1154 | "futures-executor", 1155 | "futures-io", 1156 | "futures-sink", 1157 | "futures-task", 1158 | "futures-util", 1159 | ] 1160 | 1161 | [[package]] 1162 | name = "futures-buffered" 1163 | version = "0.2.9" 1164 | source = "registry+https://github.com/rust-lang/crates.io-index" 1165 | checksum = "34acda8ae8b63fbe0b2195c998b180cff89a8212fb2622a78b572a9f1c6f7684" 1166 | dependencies = [ 1167 | "cordyceps", 1168 | "diatomic-waker", 1169 | "futures-core", 1170 | "pin-project-lite", 1171 | ] 1172 | 1173 | [[package]] 1174 | name = "futures-channel" 1175 | version = "0.3.31" 1176 | source = "registry+https://github.com/rust-lang/crates.io-index" 1177 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 1178 | dependencies = [ 1179 | "futures-core", 1180 | "futures-sink", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "futures-core" 1185 | version = "0.3.31" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 1188 | 1189 | [[package]] 1190 | name = "futures-executor" 1191 | version = "0.3.31" 1192 | source = "registry+https://github.com/rust-lang/crates.io-index" 1193 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 1194 | dependencies = [ 1195 | "futures-core", 1196 | "futures-task", 1197 | "futures-util", 1198 | ] 1199 | 1200 | [[package]] 1201 | name = "futures-io" 1202 | version = "0.3.31" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1205 | 1206 | [[package]] 1207 | name = "futures-lite" 1208 | version = "2.5.0" 1209 | source = "registry+https://github.com/rust-lang/crates.io-index" 1210 | checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" 1211 | dependencies = [ 1212 | "fastrand", 1213 | "futures-core", 1214 | "futures-io", 1215 | "parking", 1216 | "pin-project-lite", 1217 | ] 1218 | 1219 | [[package]] 1220 | name = "futures-macro" 1221 | version = "0.3.31" 1222 | source = "registry+https://github.com/rust-lang/crates.io-index" 1223 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 1224 | dependencies = [ 1225 | "proc-macro2", 1226 | "quote", 1227 | "syn 2.0.90", 1228 | ] 1229 | 1230 | [[package]] 1231 | name = "futures-sink" 1232 | version = "0.3.31" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 1235 | 1236 | [[package]] 1237 | name = "futures-task" 1238 | version = "0.3.31" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 1241 | 1242 | [[package]] 1243 | name = "futures-util" 1244 | version = "0.3.31" 1245 | source = "registry+https://github.com/rust-lang/crates.io-index" 1246 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 1247 | dependencies = [ 1248 | "futures-channel", 1249 | "futures-core", 1250 | "futures-io", 1251 | "futures-macro", 1252 | "futures-sink", 1253 | "futures-task", 1254 | "memchr", 1255 | "pin-project-lite", 1256 | "pin-utils", 1257 | "slab", 1258 | ] 1259 | 1260 | [[package]] 1261 | name = "fxhash" 1262 | version = "0.2.1" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 1265 | dependencies = [ 1266 | "byteorder", 1267 | ] 1268 | 1269 | [[package]] 1270 | name = "generator" 1271 | version = "0.7.5" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" 1274 | dependencies = [ 1275 | "cc", 1276 | "libc", 1277 | "log", 1278 | "rustversion", 1279 | "windows 0.48.0", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "generator" 1284 | version = "0.8.4" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" 1287 | dependencies = [ 1288 | "cfg-if", 1289 | "libc", 1290 | "log", 1291 | "rustversion", 1292 | "windows 0.58.0", 1293 | ] 1294 | 1295 | [[package]] 1296 | name = "generic-array" 1297 | version = "0.14.7" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1300 | dependencies = [ 1301 | "typenum", 1302 | "version_check", 1303 | "zeroize", 1304 | ] 1305 | 1306 | [[package]] 1307 | name = "generic-btree" 1308 | version = "0.10.5" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | checksum = "210507e6dec78bb1304e52a174bd99efdd83894219bf20d656a066a0ce2fedc5" 1311 | dependencies = [ 1312 | "arref", 1313 | "fxhash", 1314 | "heapless 0.7.17", 1315 | "itertools 0.11.0", 1316 | "loro-thunderdome", 1317 | "proc-macro2", 1318 | ] 1319 | 1320 | [[package]] 1321 | name = "getrandom" 1322 | version = "0.2.15" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 1325 | dependencies = [ 1326 | "cfg-if", 1327 | "js-sys", 1328 | "libc", 1329 | "wasi 0.11.0+wasi-snapshot-preview1", 1330 | "wasm-bindgen", 1331 | ] 1332 | 1333 | [[package]] 1334 | name = "getrandom" 1335 | version = "0.3.2" 1336 | source = "registry+https://github.com/rust-lang/crates.io-index" 1337 | checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 1338 | dependencies = [ 1339 | "cfg-if", 1340 | "libc", 1341 | "r-efi", 1342 | "wasi 0.14.2+wasi-0.2.4", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "gimli" 1347 | version = "0.31.1" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1350 | 1351 | [[package]] 1352 | name = "glob" 1353 | version = "0.3.1" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 1356 | 1357 | [[package]] 1358 | name = "gloo-timers" 1359 | version = "0.3.0" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" 1362 | dependencies = [ 1363 | "futures-channel", 1364 | "futures-core", 1365 | "js-sys", 1366 | "wasm-bindgen", 1367 | ] 1368 | 1369 | [[package]] 1370 | name = "group" 1371 | version = "0.13.0" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 1374 | dependencies = [ 1375 | "ff", 1376 | "rand_core 0.6.4", 1377 | "subtle", 1378 | ] 1379 | 1380 | [[package]] 1381 | name = "h2" 1382 | version = "0.4.7" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" 1385 | dependencies = [ 1386 | "atomic-waker", 1387 | "bytes", 1388 | "fnv", 1389 | "futures-core", 1390 | "futures-sink", 1391 | "http 1.2.0", 1392 | "indexmap", 1393 | "slab", 1394 | "tokio", 1395 | "tokio-util", 1396 | "tracing", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "hash32" 1401 | version = "0.2.1" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1404 | dependencies = [ 1405 | "byteorder", 1406 | ] 1407 | 1408 | [[package]] 1409 | name = "hash32" 1410 | version = "0.3.1" 1411 | source = "registry+https://github.com/rust-lang/crates.io-index" 1412 | checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 1413 | dependencies = [ 1414 | "byteorder", 1415 | ] 1416 | 1417 | [[package]] 1418 | name = "hashbrown" 1419 | version = "0.14.5" 1420 | source = "registry+https://github.com/rust-lang/crates.io-index" 1421 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1422 | 1423 | [[package]] 1424 | name = "hashbrown" 1425 | version = "0.15.2" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 1428 | dependencies = [ 1429 | "allocator-api2", 1430 | "equivalent", 1431 | "foldhash", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "heapless" 1436 | version = "0.7.17" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1439 | dependencies = [ 1440 | "atomic-polyfill", 1441 | "hash32 0.2.1", 1442 | "rustc_version", 1443 | "serde", 1444 | "spin", 1445 | "stable_deref_trait", 1446 | ] 1447 | 1448 | [[package]] 1449 | name = "heapless" 1450 | version = "0.8.0" 1451 | source = "registry+https://github.com/rust-lang/crates.io-index" 1452 | checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 1453 | dependencies = [ 1454 | "hash32 0.3.1", 1455 | "stable_deref_trait", 1456 | ] 1457 | 1458 | [[package]] 1459 | name = "heck" 1460 | version = "0.4.1" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1463 | 1464 | [[package]] 1465 | name = "heck" 1466 | version = "0.5.0" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1469 | 1470 | [[package]] 1471 | name = "hex" 1472 | version = "0.4.3" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1475 | 1476 | [[package]] 1477 | name = "hickory-proto" 1478 | version = "0.25.1" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "6d844af74f7b799e41c78221be863bade11c430d46042c3b49ca8ae0c6d27287" 1481 | dependencies = [ 1482 | "async-recursion", 1483 | "async-trait", 1484 | "cfg-if", 1485 | "critical-section", 1486 | "data-encoding", 1487 | "enum-as-inner 0.6.1", 1488 | "futures-channel", 1489 | "futures-io", 1490 | "futures-util", 1491 | "idna", 1492 | "ipnet", 1493 | "once_cell", 1494 | "rand 0.9.1", 1495 | "ring", 1496 | "thiserror 2.0.12", 1497 | "tinyvec", 1498 | "tokio", 1499 | "tracing", 1500 | "url", 1501 | ] 1502 | 1503 | [[package]] 1504 | name = "hickory-resolver" 1505 | version = "0.25.1" 1506 | source = "registry+https://github.com/rust-lang/crates.io-index" 1507 | checksum = "a128410b38d6f931fcc6ca5c107a3b02cabd6c05967841269a4ad65d23c44331" 1508 | dependencies = [ 1509 | "cfg-if", 1510 | "futures-util", 1511 | "hickory-proto", 1512 | "ipconfig", 1513 | "moka", 1514 | "once_cell", 1515 | "parking_lot", 1516 | "rand 0.9.1", 1517 | "resolv-conf", 1518 | "smallvec", 1519 | "thiserror 2.0.12", 1520 | "tokio", 1521 | "tracing", 1522 | ] 1523 | 1524 | [[package]] 1525 | name = "hmac" 1526 | version = "0.12.1" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1529 | dependencies = [ 1530 | "digest", 1531 | ] 1532 | 1533 | [[package]] 1534 | name = "hmac-sha1" 1535 | version = "0.2.2" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88" 1538 | dependencies = [ 1539 | "hmac", 1540 | "sha1", 1541 | ] 1542 | 1543 | [[package]] 1544 | name = "hmac-sha256" 1545 | version = "1.1.7" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | checksum = "3688e69b38018fec1557254f64c8dc2cc8ec502890182f395dbb0aa997aa5735" 1548 | 1549 | [[package]] 1550 | name = "hostname" 1551 | version = "0.3.1" 1552 | source = "registry+https://github.com/rust-lang/crates.io-index" 1553 | checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" 1554 | dependencies = [ 1555 | "libc", 1556 | "match_cfg", 1557 | "winapi", 1558 | ] 1559 | 1560 | [[package]] 1561 | name = "hostname-validator" 1562 | version = "1.1.1" 1563 | source = "registry+https://github.com/rust-lang/crates.io-index" 1564 | checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2" 1565 | 1566 | [[package]] 1567 | name = "http" 1568 | version = "0.2.12" 1569 | source = "registry+https://github.com/rust-lang/crates.io-index" 1570 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 1571 | dependencies = [ 1572 | "bytes", 1573 | "fnv", 1574 | "itoa", 1575 | ] 1576 | 1577 | [[package]] 1578 | name = "http" 1579 | version = "1.2.0" 1580 | source = "registry+https://github.com/rust-lang/crates.io-index" 1581 | checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" 1582 | dependencies = [ 1583 | "bytes", 1584 | "fnv", 1585 | "itoa", 1586 | ] 1587 | 1588 | [[package]] 1589 | name = "http-body" 1590 | version = "1.0.1" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 1593 | dependencies = [ 1594 | "bytes", 1595 | "http 1.2.0", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "http-body-util" 1600 | version = "0.1.2" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 1603 | dependencies = [ 1604 | "bytes", 1605 | "futures-util", 1606 | "http 1.2.0", 1607 | "http-body", 1608 | "pin-project-lite", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "httparse" 1613 | version = "1.9.5" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" 1616 | 1617 | [[package]] 1618 | name = "httpdate" 1619 | version = "1.0.3" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1622 | 1623 | [[package]] 1624 | name = "hyper" 1625 | version = "1.5.1" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" 1628 | dependencies = [ 1629 | "bytes", 1630 | "futures-channel", 1631 | "futures-util", 1632 | "h2", 1633 | "http 1.2.0", 1634 | "http-body", 1635 | "httparse", 1636 | "httpdate", 1637 | "itoa", 1638 | "pin-project-lite", 1639 | "smallvec", 1640 | "tokio", 1641 | "want", 1642 | ] 1643 | 1644 | [[package]] 1645 | name = "hyper-rustls" 1646 | version = "0.27.3" 1647 | source = "registry+https://github.com/rust-lang/crates.io-index" 1648 | checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" 1649 | dependencies = [ 1650 | "futures-util", 1651 | "http 1.2.0", 1652 | "hyper", 1653 | "hyper-util", 1654 | "rustls", 1655 | "rustls-pki-types", 1656 | "tokio", 1657 | "tokio-rustls", 1658 | "tower-service", 1659 | "webpki-roots", 1660 | ] 1661 | 1662 | [[package]] 1663 | name = "hyper-util" 1664 | version = "0.1.10" 1665 | source = "registry+https://github.com/rust-lang/crates.io-index" 1666 | checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" 1667 | dependencies = [ 1668 | "bytes", 1669 | "futures-channel", 1670 | "futures-util", 1671 | "http 1.2.0", 1672 | "http-body", 1673 | "hyper", 1674 | "pin-project-lite", 1675 | "socket2", 1676 | "tokio", 1677 | "tower-service", 1678 | "tracing", 1679 | ] 1680 | 1681 | [[package]] 1682 | name = "iana-time-zone" 1683 | version = "0.1.61" 1684 | source = "registry+https://github.com/rust-lang/crates.io-index" 1685 | checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 1686 | dependencies = [ 1687 | "android_system_properties", 1688 | "core-foundation-sys", 1689 | "iana-time-zone-haiku", 1690 | "js-sys", 1691 | "wasm-bindgen", 1692 | "windows-core 0.52.0", 1693 | ] 1694 | 1695 | [[package]] 1696 | name = "iana-time-zone-haiku" 1697 | version = "0.1.2" 1698 | source = "registry+https://github.com/rust-lang/crates.io-index" 1699 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1700 | dependencies = [ 1701 | "cc", 1702 | ] 1703 | 1704 | [[package]] 1705 | name = "icu_collections" 1706 | version = "1.5.0" 1707 | source = "registry+https://github.com/rust-lang/crates.io-index" 1708 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 1709 | dependencies = [ 1710 | "displaydoc", 1711 | "yoke", 1712 | "zerofrom", 1713 | "zerovec", 1714 | ] 1715 | 1716 | [[package]] 1717 | name = "icu_locid" 1718 | version = "1.5.0" 1719 | source = "registry+https://github.com/rust-lang/crates.io-index" 1720 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 1721 | dependencies = [ 1722 | "displaydoc", 1723 | "litemap", 1724 | "tinystr", 1725 | "writeable", 1726 | "zerovec", 1727 | ] 1728 | 1729 | [[package]] 1730 | name = "icu_locid_transform" 1731 | version = "1.5.0" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 1734 | dependencies = [ 1735 | "displaydoc", 1736 | "icu_locid", 1737 | "icu_locid_transform_data", 1738 | "icu_provider", 1739 | "tinystr", 1740 | "zerovec", 1741 | ] 1742 | 1743 | [[package]] 1744 | name = "icu_locid_transform_data" 1745 | version = "1.5.0" 1746 | source = "registry+https://github.com/rust-lang/crates.io-index" 1747 | checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" 1748 | 1749 | [[package]] 1750 | name = "icu_normalizer" 1751 | version = "1.5.0" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 1754 | dependencies = [ 1755 | "displaydoc", 1756 | "icu_collections", 1757 | "icu_normalizer_data", 1758 | "icu_properties", 1759 | "icu_provider", 1760 | "smallvec", 1761 | "utf16_iter", 1762 | "utf8_iter", 1763 | "write16", 1764 | "zerovec", 1765 | ] 1766 | 1767 | [[package]] 1768 | name = "icu_normalizer_data" 1769 | version = "1.5.0" 1770 | source = "registry+https://github.com/rust-lang/crates.io-index" 1771 | checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" 1772 | 1773 | [[package]] 1774 | name = "icu_properties" 1775 | version = "1.5.1" 1776 | source = "registry+https://github.com/rust-lang/crates.io-index" 1777 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 1778 | dependencies = [ 1779 | "displaydoc", 1780 | "icu_collections", 1781 | "icu_locid_transform", 1782 | "icu_properties_data", 1783 | "icu_provider", 1784 | "tinystr", 1785 | "zerovec", 1786 | ] 1787 | 1788 | [[package]] 1789 | name = "icu_properties_data" 1790 | version = "1.5.0" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" 1793 | 1794 | [[package]] 1795 | name = "icu_provider" 1796 | version = "1.5.0" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 1799 | dependencies = [ 1800 | "displaydoc", 1801 | "icu_locid", 1802 | "icu_provider_macros", 1803 | "stable_deref_trait", 1804 | "tinystr", 1805 | "writeable", 1806 | "yoke", 1807 | "zerofrom", 1808 | "zerovec", 1809 | ] 1810 | 1811 | [[package]] 1812 | name = "icu_provider_macros" 1813 | version = "1.5.0" 1814 | source = "registry+https://github.com/rust-lang/crates.io-index" 1815 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 1816 | dependencies = [ 1817 | "proc-macro2", 1818 | "quote", 1819 | "syn 2.0.90", 1820 | ] 1821 | 1822 | [[package]] 1823 | name = "ident_case" 1824 | version = "1.0.1" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1827 | 1828 | [[package]] 1829 | name = "idna" 1830 | version = "1.0.3" 1831 | source = "registry+https://github.com/rust-lang/crates.io-index" 1832 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 1833 | dependencies = [ 1834 | "idna_adapter", 1835 | "smallvec", 1836 | "utf8_iter", 1837 | ] 1838 | 1839 | [[package]] 1840 | name = "idna_adapter" 1841 | version = "1.2.0" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 1844 | dependencies = [ 1845 | "icu_normalizer", 1846 | "icu_properties", 1847 | ] 1848 | 1849 | [[package]] 1850 | name = "igd-next" 1851 | version = "0.15.1" 1852 | source = "registry+https://github.com/rust-lang/crates.io-index" 1853 | checksum = "76b0d7d4541def58a37bf8efc559683f21edce7c82f0d866c93ac21f7e098f93" 1854 | dependencies = [ 1855 | "async-trait", 1856 | "attohttpc", 1857 | "bytes", 1858 | "futures", 1859 | "http 1.2.0", 1860 | "http-body-util", 1861 | "hyper", 1862 | "hyper-util", 1863 | "log", 1864 | "rand 0.8.5", 1865 | "tokio", 1866 | "url", 1867 | "xmltree", 1868 | ] 1869 | 1870 | [[package]] 1871 | name = "im" 1872 | version = "15.1.0" 1873 | source = "registry+https://github.com/rust-lang/crates.io-index" 1874 | checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" 1875 | dependencies = [ 1876 | "bitmaps", 1877 | "rand_core 0.6.4", 1878 | "rand_xoshiro", 1879 | "serde", 1880 | "sized-chunks", 1881 | "typenum", 1882 | "version_check", 1883 | ] 1884 | 1885 | [[package]] 1886 | name = "indexmap" 1887 | version = "2.7.0" 1888 | source = "registry+https://github.com/rust-lang/crates.io-index" 1889 | checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" 1890 | dependencies = [ 1891 | "equivalent", 1892 | "hashbrown 0.15.2", 1893 | ] 1894 | 1895 | [[package]] 1896 | name = "inotify" 1897 | version = "0.10.2" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" 1900 | dependencies = [ 1901 | "bitflags 1.3.2", 1902 | "inotify-sys", 1903 | "libc", 1904 | ] 1905 | 1906 | [[package]] 1907 | name = "inotify-sys" 1908 | version = "0.1.5" 1909 | source = "registry+https://github.com/rust-lang/crates.io-index" 1910 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 1911 | dependencies = [ 1912 | "libc", 1913 | ] 1914 | 1915 | [[package]] 1916 | name = "inout" 1917 | version = "0.1.3" 1918 | source = "registry+https://github.com/rust-lang/crates.io-index" 1919 | checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" 1920 | dependencies = [ 1921 | "generic-array", 1922 | ] 1923 | 1924 | [[package]] 1925 | name = "instant" 1926 | version = "0.1.13" 1927 | source = "registry+https://github.com/rust-lang/crates.io-index" 1928 | checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 1929 | dependencies = [ 1930 | "cfg-if", 1931 | "js-sys", 1932 | "wasm-bindgen", 1933 | "web-sys", 1934 | ] 1935 | 1936 | [[package]] 1937 | name = "ipconfig" 1938 | version = "0.3.2" 1939 | source = "registry+https://github.com/rust-lang/crates.io-index" 1940 | checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" 1941 | dependencies = [ 1942 | "socket2", 1943 | "widestring", 1944 | "windows-sys 0.48.0", 1945 | "winreg", 1946 | ] 1947 | 1948 | [[package]] 1949 | name = "ipnet" 1950 | version = "2.10.1" 1951 | source = "registry+https://github.com/rust-lang/crates.io-index" 1952 | checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" 1953 | 1954 | [[package]] 1955 | name = "iroh" 1956 | version = "0.34.1" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "37432887a6836e7a832fccb121b5f0ee6cd953c506f99b0278bdbedf8dee0e88" 1959 | dependencies = [ 1960 | "aead", 1961 | "anyhow", 1962 | "atomic-waker", 1963 | "backon", 1964 | "bytes", 1965 | "cfg_aliases", 1966 | "concurrent-queue", 1967 | "crypto_box", 1968 | "data-encoding", 1969 | "der", 1970 | "derive_more", 1971 | "ed25519-dalek", 1972 | "futures-util", 1973 | "hickory-resolver", 1974 | "http 1.2.0", 1975 | "igd-next", 1976 | "instant", 1977 | "iroh-base", 1978 | "iroh-metrics", 1979 | "iroh-quinn", 1980 | "iroh-quinn-proto", 1981 | "iroh-quinn-udp", 1982 | "iroh-relay", 1983 | "n0-future", 1984 | "netdev", 1985 | "netwatch", 1986 | "pin-project", 1987 | "pkarr", 1988 | "portmapper", 1989 | "rand 0.8.5", 1990 | "rcgen", 1991 | "reqwest", 1992 | "ring", 1993 | "rustls", 1994 | "rustls-webpki", 1995 | "serde", 1996 | "smallvec", 1997 | "strum", 1998 | "stun-rs", 1999 | "surge-ping", 2000 | "swarm-discovery", 2001 | "thiserror 2.0.12", 2002 | "time", 2003 | "tokio", 2004 | "tokio-stream", 2005 | "tokio-util", 2006 | "tracing", 2007 | "url", 2008 | "wasm-bindgen-futures", 2009 | "webpki-roots", 2010 | "x509-parser", 2011 | "z32", 2012 | ] 2013 | 2014 | [[package]] 2015 | name = "iroh-base" 2016 | version = "0.34.1" 2017 | source = "registry+https://github.com/rust-lang/crates.io-index" 2018 | checksum = "3cd952d9e25e521d6aeb5b79f2fe32a0245da36aae3569e50f6010b38a5f0923" 2019 | dependencies = [ 2020 | "curve25519-dalek", 2021 | "data-encoding", 2022 | "derive_more", 2023 | "ed25519-dalek", 2024 | "rand_core 0.6.4", 2025 | "serde", 2026 | "thiserror 2.0.12", 2027 | "url", 2028 | ] 2029 | 2030 | [[package]] 2031 | name = "iroh-loro" 2032 | version = "0.1.0" 2033 | dependencies = [ 2034 | "anyhow", 2035 | "async-broadcast", 2036 | "async-channel", 2037 | "bytes", 2038 | "clap", 2039 | "dirs-next", 2040 | "futures", 2041 | "iroh", 2042 | "iroh-node-util", 2043 | "loro", 2044 | "notify", 2045 | "postcard", 2046 | "rand 0.8.5", 2047 | "serde", 2048 | "tokio", 2049 | "tracing", 2050 | "tracing-subscriber", 2051 | ] 2052 | 2053 | [[package]] 2054 | name = "iroh-metrics" 2055 | version = "0.32.0" 2056 | source = "registry+https://github.com/rust-lang/crates.io-index" 2057 | checksum = "c0f7cd1ffe3b152a5f4f4c1880e01e07d96001f20e02cc143cb7842987c616b3" 2058 | dependencies = [ 2059 | "erased_set", 2060 | "prometheus-client", 2061 | "serde", 2062 | "struct_iterable", 2063 | "thiserror 2.0.12", 2064 | "tracing", 2065 | ] 2066 | 2067 | [[package]] 2068 | name = "iroh-node-util" 2069 | version = "0.34.0" 2070 | source = "registry+https://github.com/rust-lang/crates.io-index" 2071 | checksum = "757abe8d22d90ff44b1a2bacc7367b0517ca812fad2c660907f3547f4ee03e32" 2072 | dependencies = [ 2073 | "anyhow", 2074 | "futures-lite", 2075 | "iroh", 2076 | "nested_enum_utils", 2077 | "quic-rpc", 2078 | "quic-rpc-derive", 2079 | "rand 0.8.5", 2080 | "serde", 2081 | "serde-error", 2082 | "ssh-key", 2083 | "strum", 2084 | "tempfile", 2085 | "tokio", 2086 | "tracing", 2087 | ] 2088 | 2089 | [[package]] 2090 | name = "iroh-quinn" 2091 | version = "0.13.0" 2092 | source = "registry+https://github.com/rust-lang/crates.io-index" 2093 | checksum = "76c6245c9ed906506ab9185e8d7f64857129aee4f935e899f398a3bd3b70338d" 2094 | dependencies = [ 2095 | "bytes", 2096 | "cfg_aliases", 2097 | "iroh-quinn-proto", 2098 | "iroh-quinn-udp", 2099 | "pin-project-lite", 2100 | "rustc-hash", 2101 | "rustls", 2102 | "socket2", 2103 | "thiserror 2.0.12", 2104 | "tokio", 2105 | "tracing", 2106 | "web-time", 2107 | ] 2108 | 2109 | [[package]] 2110 | name = "iroh-quinn-proto" 2111 | version = "0.13.0" 2112 | source = "registry+https://github.com/rust-lang/crates.io-index" 2113 | checksum = "929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535" 2114 | dependencies = [ 2115 | "bytes", 2116 | "getrandom 0.2.15", 2117 | "rand 0.8.5", 2118 | "ring", 2119 | "rustc-hash", 2120 | "rustls", 2121 | "rustls-pki-types", 2122 | "slab", 2123 | "thiserror 2.0.12", 2124 | "tinyvec", 2125 | "tracing", 2126 | "web-time", 2127 | ] 2128 | 2129 | [[package]] 2130 | name = "iroh-quinn-udp" 2131 | version = "0.5.7" 2132 | source = "registry+https://github.com/rust-lang/crates.io-index" 2133 | checksum = "c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973" 2134 | dependencies = [ 2135 | "cfg_aliases", 2136 | "libc", 2137 | "once_cell", 2138 | "socket2", 2139 | "tracing", 2140 | "windows-sys 0.59.0", 2141 | ] 2142 | 2143 | [[package]] 2144 | name = "iroh-relay" 2145 | version = "0.34.1" 2146 | source = "registry+https://github.com/rust-lang/crates.io-index" 2147 | checksum = "40d2d7b50d999922791c6c14c25e13f55711e182618cb387bafa0896ffe0b930" 2148 | dependencies = [ 2149 | "anyhow", 2150 | "bytes", 2151 | "cfg_aliases", 2152 | "data-encoding", 2153 | "derive_more", 2154 | "hickory-resolver", 2155 | "http 1.2.0", 2156 | "http-body-util", 2157 | "hyper", 2158 | "hyper-util", 2159 | "iroh-base", 2160 | "iroh-metrics", 2161 | "iroh-quinn", 2162 | "iroh-quinn-proto", 2163 | "lru", 2164 | "n0-future", 2165 | "num_enum", 2166 | "pin-project", 2167 | "pkarr", 2168 | "postcard", 2169 | "rand 0.8.5", 2170 | "reqwest", 2171 | "rustls", 2172 | "rustls-webpki", 2173 | "serde", 2174 | "strum", 2175 | "stun-rs", 2176 | "thiserror 2.0.12", 2177 | "tokio", 2178 | "tokio-rustls", 2179 | "tokio-tungstenite-wasm", 2180 | "tokio-util", 2181 | "tracing", 2182 | "url", 2183 | "webpki-roots", 2184 | "z32", 2185 | ] 2186 | 2187 | [[package]] 2188 | name = "is_terminal_polyfill" 2189 | version = "1.70.1" 2190 | source = "registry+https://github.com/rust-lang/crates.io-index" 2191 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 2192 | 2193 | [[package]] 2194 | name = "itertools" 2195 | version = "0.11.0" 2196 | source = "registry+https://github.com/rust-lang/crates.io-index" 2197 | checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" 2198 | dependencies = [ 2199 | "either", 2200 | ] 2201 | 2202 | [[package]] 2203 | name = "itertools" 2204 | version = "0.12.1" 2205 | source = "registry+https://github.com/rust-lang/crates.io-index" 2206 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 2207 | dependencies = [ 2208 | "either", 2209 | ] 2210 | 2211 | [[package]] 2212 | name = "itoa" 2213 | version = "1.0.14" 2214 | source = "registry+https://github.com/rust-lang/crates.io-index" 2215 | checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" 2216 | 2217 | [[package]] 2218 | name = "js-sys" 2219 | version = "0.3.74" 2220 | source = "registry+https://github.com/rust-lang/crates.io-index" 2221 | checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" 2222 | dependencies = [ 2223 | "once_cell", 2224 | "wasm-bindgen", 2225 | ] 2226 | 2227 | [[package]] 2228 | name = "kqueue" 2229 | version = "1.0.8" 2230 | source = "registry+https://github.com/rust-lang/crates.io-index" 2231 | checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" 2232 | dependencies = [ 2233 | "kqueue-sys", 2234 | "libc", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "kqueue-sys" 2239 | version = "1.0.4" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" 2242 | dependencies = [ 2243 | "bitflags 1.3.2", 2244 | "libc", 2245 | ] 2246 | 2247 | [[package]] 2248 | name = "lazy_static" 2249 | version = "1.5.0" 2250 | source = "registry+https://github.com/rust-lang/crates.io-index" 2251 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 2252 | dependencies = [ 2253 | "spin", 2254 | ] 2255 | 2256 | [[package]] 2257 | name = "leb128" 2258 | version = "0.2.5" 2259 | source = "registry+https://github.com/rust-lang/crates.io-index" 2260 | checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" 2261 | 2262 | [[package]] 2263 | name = "libc" 2264 | version = "0.2.167" 2265 | source = "registry+https://github.com/rust-lang/crates.io-index" 2266 | checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" 2267 | 2268 | [[package]] 2269 | name = "libm" 2270 | version = "0.2.13" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72" 2273 | 2274 | [[package]] 2275 | name = "libredox" 2276 | version = "0.1.3" 2277 | source = "registry+https://github.com/rust-lang/crates.io-index" 2278 | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 2279 | dependencies = [ 2280 | "bitflags 2.6.0", 2281 | "libc", 2282 | "redox_syscall", 2283 | ] 2284 | 2285 | [[package]] 2286 | name = "linux-raw-sys" 2287 | version = "0.4.15" 2288 | source = "registry+https://github.com/rust-lang/crates.io-index" 2289 | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 2290 | 2291 | [[package]] 2292 | name = "litemap" 2293 | version = "0.7.4" 2294 | source = "registry+https://github.com/rust-lang/crates.io-index" 2295 | checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" 2296 | 2297 | [[package]] 2298 | name = "litrs" 2299 | version = "0.4.1" 2300 | source = "registry+https://github.com/rust-lang/crates.io-index" 2301 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 2302 | 2303 | [[package]] 2304 | name = "lock_api" 2305 | version = "0.4.12" 2306 | source = "registry+https://github.com/rust-lang/crates.io-index" 2307 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 2308 | dependencies = [ 2309 | "autocfg", 2310 | "scopeguard", 2311 | ] 2312 | 2313 | [[package]] 2314 | name = "log" 2315 | version = "0.4.22" 2316 | source = "registry+https://github.com/rust-lang/crates.io-index" 2317 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 2318 | 2319 | [[package]] 2320 | name = "loom" 2321 | version = "0.5.6" 2322 | source = "registry+https://github.com/rust-lang/crates.io-index" 2323 | checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" 2324 | dependencies = [ 2325 | "cfg-if", 2326 | "generator 0.7.5", 2327 | "scoped-tls", 2328 | "tracing", 2329 | "tracing-subscriber", 2330 | ] 2331 | 2332 | [[package]] 2333 | name = "loom" 2334 | version = "0.7.2" 2335 | source = "registry+https://github.com/rust-lang/crates.io-index" 2336 | checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" 2337 | dependencies = [ 2338 | "cfg-if", 2339 | "generator 0.8.4", 2340 | "scoped-tls", 2341 | "tracing", 2342 | "tracing-subscriber", 2343 | ] 2344 | 2345 | [[package]] 2346 | name = "loro" 2347 | version = "1.1.0" 2348 | source = "registry+https://github.com/rust-lang/crates.io-index" 2349 | checksum = "cbd48ee1e2284116be44ec8a9b093614ef55526052baf9dd09238a8b5d115957" 2350 | dependencies = [ 2351 | "enum-as-inner 0.6.1", 2352 | "fxhash", 2353 | "generic-btree", 2354 | "loro-common", 2355 | "loro-delta", 2356 | "loro-internal", 2357 | "loro-kv-store", 2358 | "tracing", 2359 | ] 2360 | 2361 | [[package]] 2362 | name = "loro-common" 2363 | version = "1.1.0" 2364 | source = "registry+https://github.com/rust-lang/crates.io-index" 2365 | checksum = "ca7cab01f4f36c98d968b5e79e99013a6d54347b7d6bbe855772720b95ce8a35" 2366 | dependencies = [ 2367 | "arbitrary", 2368 | "enum-as-inner 0.6.1", 2369 | "fxhash", 2370 | "leb128", 2371 | "loro-rle", 2372 | "nonmax", 2373 | "serde", 2374 | "serde_columnar", 2375 | "serde_json", 2376 | "string_cache", 2377 | "thiserror 1.0.69", 2378 | ] 2379 | 2380 | [[package]] 2381 | name = "loro-delta" 2382 | version = "1.1.0" 2383 | source = "registry+https://github.com/rust-lang/crates.io-index" 2384 | checksum = "e9ed91bd744682b6ce5aa79612d1af94c80c28433cb12e923b8cb80f9e39e0ba" 2385 | dependencies = [ 2386 | "arrayvec", 2387 | "enum-as-inner 0.5.1", 2388 | "generic-btree", 2389 | "heapless 0.8.0", 2390 | ] 2391 | 2392 | [[package]] 2393 | name = "loro-internal" 2394 | version = "1.1.0" 2395 | source = "registry+https://github.com/rust-lang/crates.io-index" 2396 | checksum = "a61200feaa7963c4f42ec83d80238e332b6d8c4307ee0ef05eb4e8e6a7b0eb3c" 2397 | dependencies = [ 2398 | "append-only-bytes", 2399 | "arref", 2400 | "bytes", 2401 | "either", 2402 | "ensure-cov", 2403 | "enum-as-inner 0.6.1", 2404 | "enum_dispatch", 2405 | "fxhash", 2406 | "generic-btree", 2407 | "getrandom 0.2.15", 2408 | "im", 2409 | "itertools 0.12.1", 2410 | "leb128", 2411 | "loro-common", 2412 | "loro-delta", 2413 | "loro-kv-store", 2414 | "loro-rle", 2415 | "loro_fractional_index", 2416 | "md5", 2417 | "nonmax", 2418 | "num", 2419 | "num-traits", 2420 | "once_cell", 2421 | "postcard", 2422 | "pretty_assertions", 2423 | "rand 0.8.5", 2424 | "serde", 2425 | "serde_columnar", 2426 | "serde_json", 2427 | "smallvec", 2428 | "thiserror 1.0.69", 2429 | "tracing", 2430 | "xxhash-rust", 2431 | ] 2432 | 2433 | [[package]] 2434 | name = "loro-kv-store" 2435 | version = "1.1.0" 2436 | source = "registry+https://github.com/rust-lang/crates.io-index" 2437 | checksum = "6bdc6ea984fcd77663375021f619392ce087e1e13594720f9c96828e895c80f4" 2438 | dependencies = [ 2439 | "bytes", 2440 | "ensure-cov", 2441 | "fxhash", 2442 | "loro-common", 2443 | "lz4_flex", 2444 | "once_cell", 2445 | "quick_cache", 2446 | "tracing", 2447 | "xxhash-rust", 2448 | ] 2449 | 2450 | [[package]] 2451 | name = "loro-rle" 2452 | version = "1.1.0" 2453 | source = "registry+https://github.com/rust-lang/crates.io-index" 2454 | checksum = "7a3889a67c711118dc7e7d3c812f95946cfe52a8f0315f6631f14c3725ee3399" 2455 | dependencies = [ 2456 | "append-only-bytes", 2457 | "num", 2458 | "smallvec", 2459 | ] 2460 | 2461 | [[package]] 2462 | name = "loro-thunderdome" 2463 | version = "0.6.2" 2464 | source = "registry+https://github.com/rust-lang/crates.io-index" 2465 | checksum = "3f3d053a135388e6b1df14e8af1212af5064746e9b87a06a345a7a779ee9695a" 2466 | 2467 | [[package]] 2468 | name = "loro_fractional_index" 2469 | version = "1.1.0" 2470 | source = "registry+https://github.com/rust-lang/crates.io-index" 2471 | checksum = "ac7afcac078b582d2b0d88b667eec258099c6f0f18841a9425dcdb5abea709de" 2472 | dependencies = [ 2473 | "once_cell", 2474 | "rand 0.8.5", 2475 | "serde", 2476 | ] 2477 | 2478 | [[package]] 2479 | name = "lru" 2480 | version = "0.12.5" 2481 | source = "registry+https://github.com/rust-lang/crates.io-index" 2482 | checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 2483 | dependencies = [ 2484 | "hashbrown 0.15.2", 2485 | ] 2486 | 2487 | [[package]] 2488 | name = "lz4_flex" 2489 | version = "0.11.3" 2490 | source = "registry+https://github.com/rust-lang/crates.io-index" 2491 | checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" 2492 | dependencies = [ 2493 | "twox-hash", 2494 | ] 2495 | 2496 | [[package]] 2497 | name = "match_cfg" 2498 | version = "0.1.0" 2499 | source = "registry+https://github.com/rust-lang/crates.io-index" 2500 | checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" 2501 | 2502 | [[package]] 2503 | name = "matchers" 2504 | version = "0.1.0" 2505 | source = "registry+https://github.com/rust-lang/crates.io-index" 2506 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 2507 | dependencies = [ 2508 | "regex-automata 0.1.10", 2509 | ] 2510 | 2511 | [[package]] 2512 | name = "md5" 2513 | version = "0.7.0" 2514 | source = "registry+https://github.com/rust-lang/crates.io-index" 2515 | checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" 2516 | 2517 | [[package]] 2518 | name = "memchr" 2519 | version = "2.7.4" 2520 | source = "registry+https://github.com/rust-lang/crates.io-index" 2521 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 2522 | 2523 | [[package]] 2524 | name = "mime" 2525 | version = "0.3.17" 2526 | source = "registry+https://github.com/rust-lang/crates.io-index" 2527 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2528 | 2529 | [[package]] 2530 | name = "minimal-lexical" 2531 | version = "0.2.1" 2532 | source = "registry+https://github.com/rust-lang/crates.io-index" 2533 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 2534 | 2535 | [[package]] 2536 | name = "miniz_oxide" 2537 | version = "0.8.0" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 2540 | dependencies = [ 2541 | "adler2", 2542 | ] 2543 | 2544 | [[package]] 2545 | name = "mio" 2546 | version = "1.0.3" 2547 | source = "registry+https://github.com/rust-lang/crates.io-index" 2548 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 2549 | dependencies = [ 2550 | "libc", 2551 | "log", 2552 | "wasi 0.11.0+wasi-snapshot-preview1", 2553 | "windows-sys 0.52.0", 2554 | ] 2555 | 2556 | [[package]] 2557 | name = "moka" 2558 | version = "0.12.10" 2559 | source = "registry+https://github.com/rust-lang/crates.io-index" 2560 | checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" 2561 | dependencies = [ 2562 | "crossbeam-channel", 2563 | "crossbeam-epoch", 2564 | "crossbeam-utils", 2565 | "loom 0.7.2", 2566 | "parking_lot", 2567 | "portable-atomic", 2568 | "rustc_version", 2569 | "smallvec", 2570 | "tagptr", 2571 | "thiserror 1.0.69", 2572 | "uuid", 2573 | ] 2574 | 2575 | [[package]] 2576 | name = "n0-future" 2577 | version = "0.1.2" 2578 | source = "registry+https://github.com/rust-lang/crates.io-index" 2579 | checksum = "399e11dc3b0e8d9d65b27170d22f5d779d52d9bed888db70d7e0c2c7ce3dfc52" 2580 | dependencies = [ 2581 | "cfg_aliases", 2582 | "derive_more", 2583 | "futures-buffered", 2584 | "futures-lite", 2585 | "futures-util", 2586 | "js-sys", 2587 | "pin-project", 2588 | "send_wrapper", 2589 | "tokio", 2590 | "tokio-util", 2591 | "wasm-bindgen", 2592 | "wasm-bindgen-futures", 2593 | "web-time", 2594 | ] 2595 | 2596 | [[package]] 2597 | name = "nanorand" 2598 | version = "0.7.0" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 2601 | dependencies = [ 2602 | "getrandom 0.2.15", 2603 | ] 2604 | 2605 | [[package]] 2606 | name = "nested_enum_utils" 2607 | version = "0.1.0" 2608 | source = "registry+https://github.com/rust-lang/crates.io-index" 2609 | checksum = "8f256ef99e7ac37428ef98c89bef9d84b590172de4bbfbe81b68a4cd3abadb32" 2610 | dependencies = [ 2611 | "proc-macro-crate", 2612 | "proc-macro2", 2613 | "quote", 2614 | "syn 1.0.109", 2615 | ] 2616 | 2617 | [[package]] 2618 | name = "netdev" 2619 | version = "0.31.0" 2620 | source = "registry+https://github.com/rust-lang/crates.io-index" 2621 | checksum = "f901362e84cd407be6f8cd9d3a46bccf09136b095792785401ea7d283c79b91d" 2622 | dependencies = [ 2623 | "dlopen2", 2624 | "ipnet", 2625 | "libc", 2626 | "netlink-packet-core", 2627 | "netlink-packet-route 0.17.1", 2628 | "netlink-sys", 2629 | "once_cell", 2630 | "system-configuration", 2631 | "windows-sys 0.52.0", 2632 | ] 2633 | 2634 | [[package]] 2635 | name = "netlink-packet-core" 2636 | version = "0.7.0" 2637 | source = "registry+https://github.com/rust-lang/crates.io-index" 2638 | checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" 2639 | dependencies = [ 2640 | "anyhow", 2641 | "byteorder", 2642 | "netlink-packet-utils", 2643 | ] 2644 | 2645 | [[package]] 2646 | name = "netlink-packet-route" 2647 | version = "0.17.1" 2648 | source = "registry+https://github.com/rust-lang/crates.io-index" 2649 | checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" 2650 | dependencies = [ 2651 | "anyhow", 2652 | "bitflags 1.3.2", 2653 | "byteorder", 2654 | "libc", 2655 | "netlink-packet-core", 2656 | "netlink-packet-utils", 2657 | ] 2658 | 2659 | [[package]] 2660 | name = "netlink-packet-route" 2661 | version = "0.19.0" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4" 2664 | dependencies = [ 2665 | "anyhow", 2666 | "byteorder", 2667 | "libc", 2668 | "log", 2669 | "netlink-packet-core", 2670 | "netlink-packet-utils", 2671 | ] 2672 | 2673 | [[package]] 2674 | name = "netlink-packet-utils" 2675 | version = "0.5.2" 2676 | source = "registry+https://github.com/rust-lang/crates.io-index" 2677 | checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" 2678 | dependencies = [ 2679 | "anyhow", 2680 | "byteorder", 2681 | "paste", 2682 | "thiserror 1.0.69", 2683 | ] 2684 | 2685 | [[package]] 2686 | name = "netlink-proto" 2687 | version = "0.11.3" 2688 | source = "registry+https://github.com/rust-lang/crates.io-index" 2689 | checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" 2690 | dependencies = [ 2691 | "bytes", 2692 | "futures", 2693 | "log", 2694 | "netlink-packet-core", 2695 | "netlink-sys", 2696 | "thiserror 1.0.69", 2697 | "tokio", 2698 | ] 2699 | 2700 | [[package]] 2701 | name = "netlink-sys" 2702 | version = "0.8.6" 2703 | source = "registry+https://github.com/rust-lang/crates.io-index" 2704 | checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" 2705 | dependencies = [ 2706 | "bytes", 2707 | "futures", 2708 | "libc", 2709 | "log", 2710 | "tokio", 2711 | ] 2712 | 2713 | [[package]] 2714 | name = "netwatch" 2715 | version = "0.4.0" 2716 | source = "registry+https://github.com/rust-lang/crates.io-index" 2717 | checksum = "0b7879c2cfdf30d92f2be89efa3169b3d78107e3ab7f7b9a37157782569314e1" 2718 | dependencies = [ 2719 | "atomic-waker", 2720 | "bytes", 2721 | "cfg_aliases", 2722 | "derive_more", 2723 | "iroh-quinn-udp", 2724 | "js-sys", 2725 | "libc", 2726 | "n0-future", 2727 | "netdev", 2728 | "netlink-packet-core", 2729 | "netlink-packet-route 0.19.0", 2730 | "netlink-sys", 2731 | "rtnetlink 0.13.1", 2732 | "rtnetlink 0.14.1", 2733 | "serde", 2734 | "socket2", 2735 | "thiserror 2.0.12", 2736 | "time", 2737 | "tokio", 2738 | "tokio-util", 2739 | "tracing", 2740 | "web-sys", 2741 | "windows 0.59.0", 2742 | "windows-result 0.3.2", 2743 | "wmi", 2744 | ] 2745 | 2746 | [[package]] 2747 | name = "new_debug_unreachable" 2748 | version = "1.0.6" 2749 | source = "registry+https://github.com/rust-lang/crates.io-index" 2750 | checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2751 | 2752 | [[package]] 2753 | name = "nix" 2754 | version = "0.26.4" 2755 | source = "registry+https://github.com/rust-lang/crates.io-index" 2756 | checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" 2757 | dependencies = [ 2758 | "bitflags 1.3.2", 2759 | "cfg-if", 2760 | "libc", 2761 | ] 2762 | 2763 | [[package]] 2764 | name = "nix" 2765 | version = "0.27.1" 2766 | source = "registry+https://github.com/rust-lang/crates.io-index" 2767 | checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" 2768 | dependencies = [ 2769 | "bitflags 2.6.0", 2770 | "cfg-if", 2771 | "libc", 2772 | ] 2773 | 2774 | [[package]] 2775 | name = "no-std-net" 2776 | version = "0.6.0" 2777 | source = "registry+https://github.com/rust-lang/crates.io-index" 2778 | checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" 2779 | 2780 | [[package]] 2781 | name = "nom" 2782 | version = "7.1.3" 2783 | source = "registry+https://github.com/rust-lang/crates.io-index" 2784 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2785 | dependencies = [ 2786 | "memchr", 2787 | "minimal-lexical", 2788 | ] 2789 | 2790 | [[package]] 2791 | name = "nonmax" 2792 | version = "0.5.5" 2793 | source = "registry+https://github.com/rust-lang/crates.io-index" 2794 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 2795 | 2796 | [[package]] 2797 | name = "notify" 2798 | version = "7.0.0" 2799 | source = "registry+https://github.com/rust-lang/crates.io-index" 2800 | checksum = "c533b4c39709f9ba5005d8002048266593c1cfaf3c5f0739d5b8ab0c6c504009" 2801 | dependencies = [ 2802 | "bitflags 2.6.0", 2803 | "filetime", 2804 | "fsevent-sys", 2805 | "inotify", 2806 | "kqueue", 2807 | "libc", 2808 | "log", 2809 | "mio", 2810 | "notify-types", 2811 | "walkdir", 2812 | "windows-sys 0.52.0", 2813 | ] 2814 | 2815 | [[package]] 2816 | name = "notify-types" 2817 | version = "1.0.0" 2818 | source = "registry+https://github.com/rust-lang/crates.io-index" 2819 | checksum = "7393c226621f817964ffb3dc5704f9509e107a8b024b489cc2c1b217378785df" 2820 | dependencies = [ 2821 | "instant", 2822 | ] 2823 | 2824 | [[package]] 2825 | name = "nu-ansi-term" 2826 | version = "0.46.0" 2827 | source = "registry+https://github.com/rust-lang/crates.io-index" 2828 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 2829 | dependencies = [ 2830 | "overload", 2831 | "winapi", 2832 | ] 2833 | 2834 | [[package]] 2835 | name = "num" 2836 | version = "0.4.3" 2837 | source = "registry+https://github.com/rust-lang/crates.io-index" 2838 | checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" 2839 | dependencies = [ 2840 | "num-bigint", 2841 | "num-complex", 2842 | "num-integer", 2843 | "num-iter", 2844 | "num-rational", 2845 | "num-traits", 2846 | ] 2847 | 2848 | [[package]] 2849 | name = "num-bigint" 2850 | version = "0.4.6" 2851 | source = "registry+https://github.com/rust-lang/crates.io-index" 2852 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 2853 | dependencies = [ 2854 | "num-integer", 2855 | "num-traits", 2856 | ] 2857 | 2858 | [[package]] 2859 | name = "num-bigint-dig" 2860 | version = "0.8.4" 2861 | source = "registry+https://github.com/rust-lang/crates.io-index" 2862 | checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" 2863 | dependencies = [ 2864 | "byteorder", 2865 | "lazy_static", 2866 | "libm", 2867 | "num-integer", 2868 | "num-iter", 2869 | "num-traits", 2870 | "rand 0.8.5", 2871 | "smallvec", 2872 | "zeroize", 2873 | ] 2874 | 2875 | [[package]] 2876 | name = "num-complex" 2877 | version = "0.4.6" 2878 | source = "registry+https://github.com/rust-lang/crates.io-index" 2879 | checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" 2880 | dependencies = [ 2881 | "num-traits", 2882 | ] 2883 | 2884 | [[package]] 2885 | name = "num-conv" 2886 | version = "0.1.0" 2887 | source = "registry+https://github.com/rust-lang/crates.io-index" 2888 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 2889 | 2890 | [[package]] 2891 | name = "num-integer" 2892 | version = "0.1.46" 2893 | source = "registry+https://github.com/rust-lang/crates.io-index" 2894 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 2895 | dependencies = [ 2896 | "num-traits", 2897 | ] 2898 | 2899 | [[package]] 2900 | name = "num-iter" 2901 | version = "0.1.45" 2902 | source = "registry+https://github.com/rust-lang/crates.io-index" 2903 | checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" 2904 | dependencies = [ 2905 | "autocfg", 2906 | "num-integer", 2907 | "num-traits", 2908 | ] 2909 | 2910 | [[package]] 2911 | name = "num-rational" 2912 | version = "0.4.2" 2913 | source = "registry+https://github.com/rust-lang/crates.io-index" 2914 | checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" 2915 | dependencies = [ 2916 | "num-bigint", 2917 | "num-integer", 2918 | "num-traits", 2919 | ] 2920 | 2921 | [[package]] 2922 | name = "num-traits" 2923 | version = "0.2.19" 2924 | source = "registry+https://github.com/rust-lang/crates.io-index" 2925 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2926 | dependencies = [ 2927 | "autocfg", 2928 | "libm", 2929 | ] 2930 | 2931 | [[package]] 2932 | name = "num_enum" 2933 | version = "0.7.3" 2934 | source = "registry+https://github.com/rust-lang/crates.io-index" 2935 | checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" 2936 | dependencies = [ 2937 | "num_enum_derive", 2938 | ] 2939 | 2940 | [[package]] 2941 | name = "num_enum_derive" 2942 | version = "0.7.3" 2943 | source = "registry+https://github.com/rust-lang/crates.io-index" 2944 | checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" 2945 | dependencies = [ 2946 | "proc-macro-crate", 2947 | "proc-macro2", 2948 | "quote", 2949 | "syn 2.0.90", 2950 | ] 2951 | 2952 | [[package]] 2953 | name = "object" 2954 | version = "0.36.5" 2955 | source = "registry+https://github.com/rust-lang/crates.io-index" 2956 | checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" 2957 | dependencies = [ 2958 | "memchr", 2959 | ] 2960 | 2961 | [[package]] 2962 | name = "oid-registry" 2963 | version = "0.7.1" 2964 | source = "registry+https://github.com/rust-lang/crates.io-index" 2965 | checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" 2966 | dependencies = [ 2967 | "asn1-rs", 2968 | ] 2969 | 2970 | [[package]] 2971 | name = "once_cell" 2972 | version = "1.20.2" 2973 | source = "registry+https://github.com/rust-lang/crates.io-index" 2974 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 2975 | dependencies = [ 2976 | "critical-section", 2977 | "portable-atomic", 2978 | ] 2979 | 2980 | [[package]] 2981 | name = "opaque-debug" 2982 | version = "0.3.1" 2983 | source = "registry+https://github.com/rust-lang/crates.io-index" 2984 | checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 2985 | 2986 | [[package]] 2987 | name = "overload" 2988 | version = "0.1.1" 2989 | source = "registry+https://github.com/rust-lang/crates.io-index" 2990 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 2991 | 2992 | [[package]] 2993 | name = "p256" 2994 | version = "0.13.2" 2995 | source = "registry+https://github.com/rust-lang/crates.io-index" 2996 | checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" 2997 | dependencies = [ 2998 | "ecdsa", 2999 | "elliptic-curve", 3000 | "primeorder", 3001 | "sha2", 3002 | ] 3003 | 3004 | [[package]] 3005 | name = "p384" 3006 | version = "0.13.1" 3007 | source = "registry+https://github.com/rust-lang/crates.io-index" 3008 | checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" 3009 | dependencies = [ 3010 | "ecdsa", 3011 | "elliptic-curve", 3012 | "primeorder", 3013 | "sha2", 3014 | ] 3015 | 3016 | [[package]] 3017 | name = "p521" 3018 | version = "0.13.3" 3019 | source = "registry+https://github.com/rust-lang/crates.io-index" 3020 | checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2" 3021 | dependencies = [ 3022 | "base16ct", 3023 | "ecdsa", 3024 | "elliptic-curve", 3025 | "primeorder", 3026 | "rand_core 0.6.4", 3027 | "sha2", 3028 | ] 3029 | 3030 | [[package]] 3031 | name = "parking" 3032 | version = "2.2.1" 3033 | source = "registry+https://github.com/rust-lang/crates.io-index" 3034 | checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 3035 | 3036 | [[package]] 3037 | name = "parking_lot" 3038 | version = "0.12.3" 3039 | source = "registry+https://github.com/rust-lang/crates.io-index" 3040 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 3041 | dependencies = [ 3042 | "lock_api", 3043 | "parking_lot_core", 3044 | ] 3045 | 3046 | [[package]] 3047 | name = "parking_lot_core" 3048 | version = "0.9.10" 3049 | source = "registry+https://github.com/rust-lang/crates.io-index" 3050 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 3051 | dependencies = [ 3052 | "cfg-if", 3053 | "libc", 3054 | "redox_syscall", 3055 | "smallvec", 3056 | "windows-targets 0.52.6", 3057 | ] 3058 | 3059 | [[package]] 3060 | name = "paste" 3061 | version = "1.0.15" 3062 | source = "registry+https://github.com/rust-lang/crates.io-index" 3063 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 3064 | 3065 | [[package]] 3066 | name = "pem" 3067 | version = "3.0.4" 3068 | source = "registry+https://github.com/rust-lang/crates.io-index" 3069 | checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" 3070 | dependencies = [ 3071 | "base64", 3072 | "serde", 3073 | ] 3074 | 3075 | [[package]] 3076 | name = "pem-rfc7468" 3077 | version = "0.7.0" 3078 | source = "registry+https://github.com/rust-lang/crates.io-index" 3079 | checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 3080 | dependencies = [ 3081 | "base64ct", 3082 | ] 3083 | 3084 | [[package]] 3085 | name = "percent-encoding" 3086 | version = "2.3.1" 3087 | source = "registry+https://github.com/rust-lang/crates.io-index" 3088 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 3089 | 3090 | [[package]] 3091 | name = "pest" 3092 | version = "2.7.14" 3093 | source = "registry+https://github.com/rust-lang/crates.io-index" 3094 | checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" 3095 | dependencies = [ 3096 | "memchr", 3097 | "thiserror 1.0.69", 3098 | "ucd-trie", 3099 | ] 3100 | 3101 | [[package]] 3102 | name = "pest_derive" 3103 | version = "2.7.14" 3104 | source = "registry+https://github.com/rust-lang/crates.io-index" 3105 | checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" 3106 | dependencies = [ 3107 | "pest", 3108 | "pest_generator", 3109 | ] 3110 | 3111 | [[package]] 3112 | name = "pest_generator" 3113 | version = "2.7.14" 3114 | source = "registry+https://github.com/rust-lang/crates.io-index" 3115 | checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" 3116 | dependencies = [ 3117 | "pest", 3118 | "pest_meta", 3119 | "proc-macro2", 3120 | "quote", 3121 | "syn 2.0.90", 3122 | ] 3123 | 3124 | [[package]] 3125 | name = "pest_meta" 3126 | version = "2.7.14" 3127 | source = "registry+https://github.com/rust-lang/crates.io-index" 3128 | checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" 3129 | dependencies = [ 3130 | "once_cell", 3131 | "pest", 3132 | "sha2", 3133 | ] 3134 | 3135 | [[package]] 3136 | name = "phf_shared" 3137 | version = "0.10.0" 3138 | source = "registry+https://github.com/rust-lang/crates.io-index" 3139 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 3140 | dependencies = [ 3141 | "siphasher", 3142 | ] 3143 | 3144 | [[package]] 3145 | name = "pin-project" 3146 | version = "1.1.7" 3147 | source = "registry+https://github.com/rust-lang/crates.io-index" 3148 | checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" 3149 | dependencies = [ 3150 | "pin-project-internal", 3151 | ] 3152 | 3153 | [[package]] 3154 | name = "pin-project-internal" 3155 | version = "1.1.7" 3156 | source = "registry+https://github.com/rust-lang/crates.io-index" 3157 | checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" 3158 | dependencies = [ 3159 | "proc-macro2", 3160 | "quote", 3161 | "syn 2.0.90", 3162 | ] 3163 | 3164 | [[package]] 3165 | name = "pin-project-lite" 3166 | version = "0.2.15" 3167 | source = "registry+https://github.com/rust-lang/crates.io-index" 3168 | checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" 3169 | 3170 | [[package]] 3171 | name = "pin-utils" 3172 | version = "0.1.0" 3173 | source = "registry+https://github.com/rust-lang/crates.io-index" 3174 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 3175 | 3176 | [[package]] 3177 | name = "pkarr" 3178 | version = "2.2.0" 3179 | source = "registry+https://github.com/rust-lang/crates.io-index" 3180 | checksum = "7945a08031b7e14de57e8385cea3bcc7e10a88701595dc11d82551ba07bae13e" 3181 | dependencies = [ 3182 | "bytes", 3183 | "document-features", 3184 | "ed25519-dalek", 3185 | "flume", 3186 | "futures", 3187 | "js-sys", 3188 | "lru", 3189 | "self_cell", 3190 | "simple-dns", 3191 | "thiserror 1.0.69", 3192 | "tracing", 3193 | "ureq", 3194 | "wasm-bindgen", 3195 | "wasm-bindgen-futures", 3196 | "web-sys", 3197 | "z32", 3198 | ] 3199 | 3200 | [[package]] 3201 | name = "pkcs1" 3202 | version = "0.7.5" 3203 | source = "registry+https://github.com/rust-lang/crates.io-index" 3204 | checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" 3205 | dependencies = [ 3206 | "der", 3207 | "pkcs8", 3208 | "spki", 3209 | ] 3210 | 3211 | [[package]] 3212 | name = "pkcs8" 3213 | version = "0.10.2" 3214 | source = "registry+https://github.com/rust-lang/crates.io-index" 3215 | checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 3216 | dependencies = [ 3217 | "der", 3218 | "spki", 3219 | ] 3220 | 3221 | [[package]] 3222 | name = "pnet_base" 3223 | version = "0.34.0" 3224 | source = "registry+https://github.com/rust-lang/crates.io-index" 3225 | checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c" 3226 | dependencies = [ 3227 | "no-std-net", 3228 | ] 3229 | 3230 | [[package]] 3231 | name = "pnet_macros" 3232 | version = "0.34.0" 3233 | source = "registry+https://github.com/rust-lang/crates.io-index" 3234 | checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804" 3235 | dependencies = [ 3236 | "proc-macro2", 3237 | "quote", 3238 | "regex", 3239 | "syn 2.0.90", 3240 | ] 3241 | 3242 | [[package]] 3243 | name = "pnet_macros_support" 3244 | version = "0.34.0" 3245 | source = "registry+https://github.com/rust-lang/crates.io-index" 3246 | checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56" 3247 | dependencies = [ 3248 | "pnet_base", 3249 | ] 3250 | 3251 | [[package]] 3252 | name = "pnet_packet" 3253 | version = "0.34.0" 3254 | source = "registry+https://github.com/rust-lang/crates.io-index" 3255 | checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba" 3256 | dependencies = [ 3257 | "glob", 3258 | "pnet_base", 3259 | "pnet_macros", 3260 | "pnet_macros_support", 3261 | ] 3262 | 3263 | [[package]] 3264 | name = "poly1305" 3265 | version = "0.8.0" 3266 | source = "registry+https://github.com/rust-lang/crates.io-index" 3267 | checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" 3268 | dependencies = [ 3269 | "cpufeatures", 3270 | "opaque-debug", 3271 | "universal-hash", 3272 | ] 3273 | 3274 | [[package]] 3275 | name = "portable-atomic" 3276 | version = "1.10.0" 3277 | source = "registry+https://github.com/rust-lang/crates.io-index" 3278 | checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" 3279 | 3280 | [[package]] 3281 | name = "portmapper" 3282 | version = "0.4.1" 3283 | source = "registry+https://github.com/rust-lang/crates.io-index" 3284 | checksum = "247dcb75747c53cc433d6d8963a064187eec4a676ba13ea33143f1c9100e754f" 3285 | dependencies = [ 3286 | "base64", 3287 | "bytes", 3288 | "derive_more", 3289 | "futures-lite", 3290 | "futures-util", 3291 | "igd-next", 3292 | "iroh-metrics", 3293 | "libc", 3294 | "netwatch", 3295 | "num_enum", 3296 | "rand 0.8.5", 3297 | "serde", 3298 | "smallvec", 3299 | "socket2", 3300 | "thiserror 2.0.12", 3301 | "time", 3302 | "tokio", 3303 | "tokio-util", 3304 | "tracing", 3305 | "url", 3306 | ] 3307 | 3308 | [[package]] 3309 | name = "postcard" 3310 | version = "1.1.1" 3311 | source = "registry+https://github.com/rust-lang/crates.io-index" 3312 | checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8" 3313 | dependencies = [ 3314 | "cobs", 3315 | "embedded-io 0.4.0", 3316 | "embedded-io 0.6.1", 3317 | "heapless 0.7.17", 3318 | "postcard-derive", 3319 | "serde", 3320 | ] 3321 | 3322 | [[package]] 3323 | name = "postcard-derive" 3324 | version = "0.1.2" 3325 | source = "registry+https://github.com/rust-lang/crates.io-index" 3326 | checksum = "0239fa9c1d225d4b7eb69925c25c5e082307a141e470573fbbe3a817ce6a7a37" 3327 | dependencies = [ 3328 | "proc-macro2", 3329 | "quote", 3330 | "syn 1.0.109", 3331 | ] 3332 | 3333 | [[package]] 3334 | name = "powerfmt" 3335 | version = "0.2.0" 3336 | source = "registry+https://github.com/rust-lang/crates.io-index" 3337 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 3338 | 3339 | [[package]] 3340 | name = "ppv-lite86" 3341 | version = "0.2.20" 3342 | source = "registry+https://github.com/rust-lang/crates.io-index" 3343 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 3344 | dependencies = [ 3345 | "zerocopy", 3346 | ] 3347 | 3348 | [[package]] 3349 | name = "precis-core" 3350 | version = "0.1.10" 3351 | source = "registry+https://github.com/rust-lang/crates.io-index" 3352 | checksum = "25a414cabc93f5f45d53463e73b3d89d3c5c0dc4a34dbf6901f0c6358f017203" 3353 | dependencies = [ 3354 | "precis-tools", 3355 | "ucd-parse", 3356 | "unicode-normalization", 3357 | ] 3358 | 3359 | [[package]] 3360 | name = "precis-profiles" 3361 | version = "0.1.11" 3362 | source = "registry+https://github.com/rust-lang/crates.io-index" 3363 | checksum = "f58e2841ef58164e2626464d4fde67fa301d5e2c78a10300c1756312a03b169f" 3364 | dependencies = [ 3365 | "lazy_static", 3366 | "precis-core", 3367 | "precis-tools", 3368 | "unicode-normalization", 3369 | ] 3370 | 3371 | [[package]] 3372 | name = "precis-tools" 3373 | version = "0.1.8" 3374 | source = "registry+https://github.com/rust-lang/crates.io-index" 3375 | checksum = "016da884bc4c2c4670211641abef402d15fa2b06c6e9088ff270dac93675aee2" 3376 | dependencies = [ 3377 | "lazy_static", 3378 | "regex", 3379 | "ucd-parse", 3380 | ] 3381 | 3382 | [[package]] 3383 | name = "precomputed-hash" 3384 | version = "0.1.1" 3385 | source = "registry+https://github.com/rust-lang/crates.io-index" 3386 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 3387 | 3388 | [[package]] 3389 | name = "pretty_assertions" 3390 | version = "1.4.1" 3391 | source = "registry+https://github.com/rust-lang/crates.io-index" 3392 | checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" 3393 | dependencies = [ 3394 | "diff", 3395 | "yansi", 3396 | ] 3397 | 3398 | [[package]] 3399 | name = "primeorder" 3400 | version = "0.13.6" 3401 | source = "registry+https://github.com/rust-lang/crates.io-index" 3402 | checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" 3403 | dependencies = [ 3404 | "elliptic-curve", 3405 | ] 3406 | 3407 | [[package]] 3408 | name = "proc-macro-crate" 3409 | version = "3.2.0" 3410 | source = "registry+https://github.com/rust-lang/crates.io-index" 3411 | checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" 3412 | dependencies = [ 3413 | "toml_edit", 3414 | ] 3415 | 3416 | [[package]] 3417 | name = "proc-macro2" 3418 | version = "1.0.92" 3419 | source = "registry+https://github.com/rust-lang/crates.io-index" 3420 | checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" 3421 | dependencies = [ 3422 | "unicode-ident", 3423 | ] 3424 | 3425 | [[package]] 3426 | name = "prometheus-client" 3427 | version = "0.22.3" 3428 | source = "registry+https://github.com/rust-lang/crates.io-index" 3429 | checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" 3430 | dependencies = [ 3431 | "dtoa", 3432 | "itoa", 3433 | "parking_lot", 3434 | "prometheus-client-derive-encode", 3435 | ] 3436 | 3437 | [[package]] 3438 | name = "prometheus-client-derive-encode" 3439 | version = "0.4.2" 3440 | source = "registry+https://github.com/rust-lang/crates.io-index" 3441 | checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" 3442 | dependencies = [ 3443 | "proc-macro2", 3444 | "quote", 3445 | "syn 2.0.90", 3446 | ] 3447 | 3448 | [[package]] 3449 | name = "quic-rpc" 3450 | version = "0.19.0" 3451 | source = "registry+https://github.com/rust-lang/crates.io-index" 3452 | checksum = "89561e5343bcad1c9f84321d9d9bd1619128ad44293faad55a0001b0e52d312b" 3453 | dependencies = [ 3454 | "anyhow", 3455 | "document-features", 3456 | "flume", 3457 | "futures-lite", 3458 | "futures-sink", 3459 | "futures-util", 3460 | "pin-project", 3461 | "serde", 3462 | "slab", 3463 | "smallvec", 3464 | "time", 3465 | "tokio", 3466 | "tokio-util", 3467 | "tracing", 3468 | ] 3469 | 3470 | [[package]] 3471 | name = "quic-rpc-derive" 3472 | version = "0.19.0" 3473 | source = "registry+https://github.com/rust-lang/crates.io-index" 3474 | checksum = "0a99f334af6f23b3de91f6df9ac17237e8b533b676f596c69dcb3b58c3cf8dea" 3475 | dependencies = [ 3476 | "proc-macro2", 3477 | "quic-rpc", 3478 | "quote", 3479 | "syn 1.0.109", 3480 | ] 3481 | 3482 | [[package]] 3483 | name = "quick-error" 3484 | version = "1.2.3" 3485 | source = "registry+https://github.com/rust-lang/crates.io-index" 3486 | checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" 3487 | 3488 | [[package]] 3489 | name = "quick_cache" 3490 | version = "0.6.9" 3491 | source = "registry+https://github.com/rust-lang/crates.io-index" 3492 | checksum = "7d7c94f8935a9df96bb6380e8592c70edf497a643f94bd23b2f76b399385dbf4" 3493 | dependencies = [ 3494 | "ahash", 3495 | "equivalent", 3496 | "hashbrown 0.14.5", 3497 | "parking_lot", 3498 | ] 3499 | 3500 | [[package]] 3501 | name = "quinn" 3502 | version = "0.11.6" 3503 | source = "registry+https://github.com/rust-lang/crates.io-index" 3504 | checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" 3505 | dependencies = [ 3506 | "bytes", 3507 | "pin-project-lite", 3508 | "quinn-proto", 3509 | "quinn-udp", 3510 | "rustc-hash", 3511 | "rustls", 3512 | "socket2", 3513 | "thiserror 2.0.12", 3514 | "tokio", 3515 | "tracing", 3516 | ] 3517 | 3518 | [[package]] 3519 | name = "quinn-proto" 3520 | version = "0.11.9" 3521 | source = "registry+https://github.com/rust-lang/crates.io-index" 3522 | checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" 3523 | dependencies = [ 3524 | "bytes", 3525 | "getrandom 0.2.15", 3526 | "rand 0.8.5", 3527 | "ring", 3528 | "rustc-hash", 3529 | "rustls", 3530 | "rustls-pki-types", 3531 | "slab", 3532 | "thiserror 2.0.12", 3533 | "tinyvec", 3534 | "tracing", 3535 | "web-time", 3536 | ] 3537 | 3538 | [[package]] 3539 | name = "quinn-udp" 3540 | version = "0.5.7" 3541 | source = "registry+https://github.com/rust-lang/crates.io-index" 3542 | checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" 3543 | dependencies = [ 3544 | "cfg_aliases", 3545 | "libc", 3546 | "once_cell", 3547 | "socket2", 3548 | "tracing", 3549 | "windows-sys 0.59.0", 3550 | ] 3551 | 3552 | [[package]] 3553 | name = "quote" 3554 | version = "1.0.37" 3555 | source = "registry+https://github.com/rust-lang/crates.io-index" 3556 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 3557 | dependencies = [ 3558 | "proc-macro2", 3559 | ] 3560 | 3561 | [[package]] 3562 | name = "quoted-string-parser" 3563 | version = "0.1.0" 3564 | source = "registry+https://github.com/rust-lang/crates.io-index" 3565 | checksum = "0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9" 3566 | dependencies = [ 3567 | "pest", 3568 | "pest_derive", 3569 | ] 3570 | 3571 | [[package]] 3572 | name = "r-efi" 3573 | version = "5.2.0" 3574 | source = "registry+https://github.com/rust-lang/crates.io-index" 3575 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 3576 | 3577 | [[package]] 3578 | name = "rand" 3579 | version = "0.8.5" 3580 | source = "registry+https://github.com/rust-lang/crates.io-index" 3581 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 3582 | dependencies = [ 3583 | "libc", 3584 | "rand_chacha 0.3.1", 3585 | "rand_core 0.6.4", 3586 | ] 3587 | 3588 | [[package]] 3589 | name = "rand" 3590 | version = "0.9.1" 3591 | source = "registry+https://github.com/rust-lang/crates.io-index" 3592 | checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" 3593 | dependencies = [ 3594 | "rand_chacha 0.9.0", 3595 | "rand_core 0.9.3", 3596 | ] 3597 | 3598 | [[package]] 3599 | name = "rand_chacha" 3600 | version = "0.3.1" 3601 | source = "registry+https://github.com/rust-lang/crates.io-index" 3602 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 3603 | dependencies = [ 3604 | "ppv-lite86", 3605 | "rand_core 0.6.4", 3606 | ] 3607 | 3608 | [[package]] 3609 | name = "rand_chacha" 3610 | version = "0.9.0" 3611 | source = "registry+https://github.com/rust-lang/crates.io-index" 3612 | checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 3613 | dependencies = [ 3614 | "ppv-lite86", 3615 | "rand_core 0.9.3", 3616 | ] 3617 | 3618 | [[package]] 3619 | name = "rand_core" 3620 | version = "0.6.4" 3621 | source = "registry+https://github.com/rust-lang/crates.io-index" 3622 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 3623 | dependencies = [ 3624 | "getrandom 0.2.15", 3625 | ] 3626 | 3627 | [[package]] 3628 | name = "rand_core" 3629 | version = "0.9.3" 3630 | source = "registry+https://github.com/rust-lang/crates.io-index" 3631 | checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 3632 | dependencies = [ 3633 | "getrandom 0.3.2", 3634 | ] 3635 | 3636 | [[package]] 3637 | name = "rand_xoshiro" 3638 | version = "0.6.0" 3639 | source = "registry+https://github.com/rust-lang/crates.io-index" 3640 | checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 3641 | dependencies = [ 3642 | "rand_core 0.6.4", 3643 | ] 3644 | 3645 | [[package]] 3646 | name = "rcgen" 3647 | version = "0.13.1" 3648 | source = "registry+https://github.com/rust-lang/crates.io-index" 3649 | checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779" 3650 | dependencies = [ 3651 | "pem", 3652 | "ring", 3653 | "rustls-pki-types", 3654 | "time", 3655 | "yasna", 3656 | ] 3657 | 3658 | [[package]] 3659 | name = "redox_syscall" 3660 | version = "0.5.7" 3661 | source = "registry+https://github.com/rust-lang/crates.io-index" 3662 | checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 3663 | dependencies = [ 3664 | "bitflags 2.6.0", 3665 | ] 3666 | 3667 | [[package]] 3668 | name = "redox_users" 3669 | version = "0.4.6" 3670 | source = "registry+https://github.com/rust-lang/crates.io-index" 3671 | checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" 3672 | dependencies = [ 3673 | "getrandom 0.2.15", 3674 | "libredox", 3675 | "thiserror 1.0.69", 3676 | ] 3677 | 3678 | [[package]] 3679 | name = "regex" 3680 | version = "1.11.1" 3681 | source = "registry+https://github.com/rust-lang/crates.io-index" 3682 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 3683 | dependencies = [ 3684 | "aho-corasick", 3685 | "memchr", 3686 | "regex-automata 0.4.9", 3687 | "regex-syntax 0.8.5", 3688 | ] 3689 | 3690 | [[package]] 3691 | name = "regex-automata" 3692 | version = "0.1.10" 3693 | source = "registry+https://github.com/rust-lang/crates.io-index" 3694 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 3695 | dependencies = [ 3696 | "regex-syntax 0.6.29", 3697 | ] 3698 | 3699 | [[package]] 3700 | name = "regex-automata" 3701 | version = "0.4.9" 3702 | source = "registry+https://github.com/rust-lang/crates.io-index" 3703 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 3704 | dependencies = [ 3705 | "aho-corasick", 3706 | "memchr", 3707 | "regex-syntax 0.8.5", 3708 | ] 3709 | 3710 | [[package]] 3711 | name = "regex-lite" 3712 | version = "0.1.6" 3713 | source = "registry+https://github.com/rust-lang/crates.io-index" 3714 | checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" 3715 | 3716 | [[package]] 3717 | name = "regex-syntax" 3718 | version = "0.6.29" 3719 | source = "registry+https://github.com/rust-lang/crates.io-index" 3720 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 3721 | 3722 | [[package]] 3723 | name = "regex-syntax" 3724 | version = "0.8.5" 3725 | source = "registry+https://github.com/rust-lang/crates.io-index" 3726 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 3727 | 3728 | [[package]] 3729 | name = "reqwest" 3730 | version = "0.12.9" 3731 | source = "registry+https://github.com/rust-lang/crates.io-index" 3732 | checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" 3733 | dependencies = [ 3734 | "base64", 3735 | "bytes", 3736 | "futures-core", 3737 | "futures-util", 3738 | "http 1.2.0", 3739 | "http-body", 3740 | "http-body-util", 3741 | "hyper", 3742 | "hyper-rustls", 3743 | "hyper-util", 3744 | "ipnet", 3745 | "js-sys", 3746 | "log", 3747 | "mime", 3748 | "once_cell", 3749 | "percent-encoding", 3750 | "pin-project-lite", 3751 | "quinn", 3752 | "rustls", 3753 | "rustls-pemfile", 3754 | "rustls-pki-types", 3755 | "serde", 3756 | "serde_json", 3757 | "serde_urlencoded", 3758 | "sync_wrapper", 3759 | "tokio", 3760 | "tokio-rustls", 3761 | "tokio-util", 3762 | "tower-service", 3763 | "url", 3764 | "wasm-bindgen", 3765 | "wasm-bindgen-futures", 3766 | "wasm-streams", 3767 | "web-sys", 3768 | "webpki-roots", 3769 | "windows-registry", 3770 | ] 3771 | 3772 | [[package]] 3773 | name = "resolv-conf" 3774 | version = "0.7.0" 3775 | source = "registry+https://github.com/rust-lang/crates.io-index" 3776 | checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" 3777 | dependencies = [ 3778 | "hostname", 3779 | "quick-error", 3780 | ] 3781 | 3782 | [[package]] 3783 | name = "rfc6979" 3784 | version = "0.4.0" 3785 | source = "registry+https://github.com/rust-lang/crates.io-index" 3786 | checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 3787 | dependencies = [ 3788 | "hmac", 3789 | "subtle", 3790 | ] 3791 | 3792 | [[package]] 3793 | name = "ring" 3794 | version = "0.17.8" 3795 | source = "registry+https://github.com/rust-lang/crates.io-index" 3796 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 3797 | dependencies = [ 3798 | "cc", 3799 | "cfg-if", 3800 | "getrandom 0.2.15", 3801 | "libc", 3802 | "spin", 3803 | "untrusted", 3804 | "windows-sys 0.52.0", 3805 | ] 3806 | 3807 | [[package]] 3808 | name = "rsa" 3809 | version = "0.9.8" 3810 | source = "registry+https://github.com/rust-lang/crates.io-index" 3811 | checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" 3812 | dependencies = [ 3813 | "const-oid", 3814 | "digest", 3815 | "num-bigint-dig", 3816 | "num-integer", 3817 | "num-traits", 3818 | "pkcs1", 3819 | "pkcs8", 3820 | "rand_core 0.6.4", 3821 | "sha2", 3822 | "signature", 3823 | "spki", 3824 | "subtle", 3825 | "zeroize", 3826 | ] 3827 | 3828 | [[package]] 3829 | name = "rtnetlink" 3830 | version = "0.13.1" 3831 | source = "registry+https://github.com/rust-lang/crates.io-index" 3832 | checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" 3833 | dependencies = [ 3834 | "futures", 3835 | "log", 3836 | "netlink-packet-core", 3837 | "netlink-packet-route 0.17.1", 3838 | "netlink-packet-utils", 3839 | "netlink-proto", 3840 | "netlink-sys", 3841 | "nix 0.26.4", 3842 | "thiserror 1.0.69", 3843 | "tokio", 3844 | ] 3845 | 3846 | [[package]] 3847 | name = "rtnetlink" 3848 | version = "0.14.1" 3849 | source = "registry+https://github.com/rust-lang/crates.io-index" 3850 | checksum = "b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5" 3851 | dependencies = [ 3852 | "futures", 3853 | "log", 3854 | "netlink-packet-core", 3855 | "netlink-packet-route 0.19.0", 3856 | "netlink-packet-utils", 3857 | "netlink-proto", 3858 | "netlink-sys", 3859 | "nix 0.27.1", 3860 | "thiserror 1.0.69", 3861 | "tokio", 3862 | ] 3863 | 3864 | [[package]] 3865 | name = "rustc-demangle" 3866 | version = "0.1.24" 3867 | source = "registry+https://github.com/rust-lang/crates.io-index" 3868 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 3869 | 3870 | [[package]] 3871 | name = "rustc-hash" 3872 | version = "2.1.0" 3873 | source = "registry+https://github.com/rust-lang/crates.io-index" 3874 | checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" 3875 | 3876 | [[package]] 3877 | name = "rustc_version" 3878 | version = "0.4.1" 3879 | source = "registry+https://github.com/rust-lang/crates.io-index" 3880 | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 3881 | dependencies = [ 3882 | "semver", 3883 | ] 3884 | 3885 | [[package]] 3886 | name = "rusticata-macros" 3887 | version = "4.1.0" 3888 | source = "registry+https://github.com/rust-lang/crates.io-index" 3889 | checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" 3890 | dependencies = [ 3891 | "nom", 3892 | ] 3893 | 3894 | [[package]] 3895 | name = "rustix" 3896 | version = "0.38.44" 3897 | source = "registry+https://github.com/rust-lang/crates.io-index" 3898 | checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 3899 | dependencies = [ 3900 | "bitflags 2.6.0", 3901 | "errno", 3902 | "libc", 3903 | "linux-raw-sys", 3904 | "windows-sys 0.59.0", 3905 | ] 3906 | 3907 | [[package]] 3908 | name = "rustls" 3909 | version = "0.23.19" 3910 | source = "registry+https://github.com/rust-lang/crates.io-index" 3911 | checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" 3912 | dependencies = [ 3913 | "log", 3914 | "once_cell", 3915 | "ring", 3916 | "rustls-pki-types", 3917 | "rustls-webpki", 3918 | "subtle", 3919 | "zeroize", 3920 | ] 3921 | 3922 | [[package]] 3923 | name = "rustls-pemfile" 3924 | version = "2.2.0" 3925 | source = "registry+https://github.com/rust-lang/crates.io-index" 3926 | checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" 3927 | dependencies = [ 3928 | "rustls-pki-types", 3929 | ] 3930 | 3931 | [[package]] 3932 | name = "rustls-pki-types" 3933 | version = "1.10.0" 3934 | source = "registry+https://github.com/rust-lang/crates.io-index" 3935 | checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" 3936 | dependencies = [ 3937 | "web-time", 3938 | ] 3939 | 3940 | [[package]] 3941 | name = "rustls-webpki" 3942 | version = "0.102.8" 3943 | source = "registry+https://github.com/rust-lang/crates.io-index" 3944 | checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" 3945 | dependencies = [ 3946 | "ring", 3947 | "rustls-pki-types", 3948 | "untrusted", 3949 | ] 3950 | 3951 | [[package]] 3952 | name = "rustversion" 3953 | version = "1.0.18" 3954 | source = "registry+https://github.com/rust-lang/crates.io-index" 3955 | checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" 3956 | 3957 | [[package]] 3958 | name = "ryu" 3959 | version = "1.0.18" 3960 | source = "registry+https://github.com/rust-lang/crates.io-index" 3961 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 3962 | 3963 | [[package]] 3964 | name = "salsa20" 3965 | version = "0.10.2" 3966 | source = "registry+https://github.com/rust-lang/crates.io-index" 3967 | checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 3968 | dependencies = [ 3969 | "cipher", 3970 | ] 3971 | 3972 | [[package]] 3973 | name = "same-file" 3974 | version = "1.0.6" 3975 | source = "registry+https://github.com/rust-lang/crates.io-index" 3976 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 3977 | dependencies = [ 3978 | "winapi-util", 3979 | ] 3980 | 3981 | [[package]] 3982 | name = "scoped-tls" 3983 | version = "1.0.1" 3984 | source = "registry+https://github.com/rust-lang/crates.io-index" 3985 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 3986 | 3987 | [[package]] 3988 | name = "scopeguard" 3989 | version = "1.2.0" 3990 | source = "registry+https://github.com/rust-lang/crates.io-index" 3991 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3992 | 3993 | [[package]] 3994 | name = "sec1" 3995 | version = "0.7.3" 3996 | source = "registry+https://github.com/rust-lang/crates.io-index" 3997 | checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 3998 | dependencies = [ 3999 | "base16ct", 4000 | "der", 4001 | "generic-array", 4002 | "pkcs8", 4003 | "subtle", 4004 | "zeroize", 4005 | ] 4006 | 4007 | [[package]] 4008 | name = "self_cell" 4009 | version = "1.0.4" 4010 | source = "registry+https://github.com/rust-lang/crates.io-index" 4011 | checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" 4012 | 4013 | [[package]] 4014 | name = "semver" 4015 | version = "1.0.23" 4016 | source = "registry+https://github.com/rust-lang/crates.io-index" 4017 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 4018 | 4019 | [[package]] 4020 | name = "send_wrapper" 4021 | version = "0.6.0" 4022 | source = "registry+https://github.com/rust-lang/crates.io-index" 4023 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 4024 | 4025 | [[package]] 4026 | name = "serde" 4027 | version = "1.0.215" 4028 | source = "registry+https://github.com/rust-lang/crates.io-index" 4029 | checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" 4030 | dependencies = [ 4031 | "serde_derive", 4032 | ] 4033 | 4034 | [[package]] 4035 | name = "serde-error" 4036 | version = "0.1.3" 4037 | source = "registry+https://github.com/rust-lang/crates.io-index" 4038 | checksum = "342110fb7a5d801060c885da03bf91bfa7c7ca936deafcc64bb6706375605d47" 4039 | dependencies = [ 4040 | "serde", 4041 | ] 4042 | 4043 | [[package]] 4044 | name = "serde_columnar" 4045 | version = "0.3.10" 4046 | source = "registry+https://github.com/rust-lang/crates.io-index" 4047 | checksum = "6d4e3c0e46450edf7da174b610b9143eb8ca22059ace5016741fc9e20b88d1e7" 4048 | dependencies = [ 4049 | "itertools 0.11.0", 4050 | "postcard", 4051 | "serde", 4052 | "serde_columnar_derive", 4053 | "thiserror 1.0.69", 4054 | ] 4055 | 4056 | [[package]] 4057 | name = "serde_columnar_derive" 4058 | version = "0.3.5" 4059 | source = "registry+https://github.com/rust-lang/crates.io-index" 4060 | checksum = "42c5d47942b2a7e76118b697fc0f94516a5d8366a3c0fee8d0e2b713e952e306" 4061 | dependencies = [ 4062 | "darling", 4063 | "proc-macro2", 4064 | "quote", 4065 | "syn 2.0.90", 4066 | ] 4067 | 4068 | [[package]] 4069 | name = "serde_derive" 4070 | version = "1.0.215" 4071 | source = "registry+https://github.com/rust-lang/crates.io-index" 4072 | checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" 4073 | dependencies = [ 4074 | "proc-macro2", 4075 | "quote", 4076 | "syn 2.0.90", 4077 | ] 4078 | 4079 | [[package]] 4080 | name = "serde_json" 4081 | version = "1.0.133" 4082 | source = "registry+https://github.com/rust-lang/crates.io-index" 4083 | checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" 4084 | dependencies = [ 4085 | "itoa", 4086 | "memchr", 4087 | "ryu", 4088 | "serde", 4089 | ] 4090 | 4091 | [[package]] 4092 | name = "serde_urlencoded" 4093 | version = "0.7.1" 4094 | source = "registry+https://github.com/rust-lang/crates.io-index" 4095 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 4096 | dependencies = [ 4097 | "form_urlencoded", 4098 | "itoa", 4099 | "ryu", 4100 | "serde", 4101 | ] 4102 | 4103 | [[package]] 4104 | name = "serdect" 4105 | version = "0.2.0" 4106 | source = "registry+https://github.com/rust-lang/crates.io-index" 4107 | checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" 4108 | dependencies = [ 4109 | "base16ct", 4110 | "serde", 4111 | ] 4112 | 4113 | [[package]] 4114 | name = "sha1" 4115 | version = "0.10.6" 4116 | source = "registry+https://github.com/rust-lang/crates.io-index" 4117 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 4118 | dependencies = [ 4119 | "cfg-if", 4120 | "cpufeatures", 4121 | "digest", 4122 | ] 4123 | 4124 | [[package]] 4125 | name = "sha2" 4126 | version = "0.10.8" 4127 | source = "registry+https://github.com/rust-lang/crates.io-index" 4128 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 4129 | dependencies = [ 4130 | "cfg-if", 4131 | "cpufeatures", 4132 | "digest", 4133 | ] 4134 | 4135 | [[package]] 4136 | name = "sharded-slab" 4137 | version = "0.1.7" 4138 | source = "registry+https://github.com/rust-lang/crates.io-index" 4139 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 4140 | dependencies = [ 4141 | "lazy_static", 4142 | ] 4143 | 4144 | [[package]] 4145 | name = "shlex" 4146 | version = "1.3.0" 4147 | source = "registry+https://github.com/rust-lang/crates.io-index" 4148 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 4149 | 4150 | [[package]] 4151 | name = "signal-hook-registry" 4152 | version = "1.4.2" 4153 | source = "registry+https://github.com/rust-lang/crates.io-index" 4154 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 4155 | dependencies = [ 4156 | "libc", 4157 | ] 4158 | 4159 | [[package]] 4160 | name = "signature" 4161 | version = "2.2.0" 4162 | source = "registry+https://github.com/rust-lang/crates.io-index" 4163 | checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 4164 | dependencies = [ 4165 | "digest", 4166 | "rand_core 0.6.4", 4167 | ] 4168 | 4169 | [[package]] 4170 | name = "simple-dns" 4171 | version = "0.6.2" 4172 | source = "registry+https://github.com/rust-lang/crates.io-index" 4173 | checksum = "01607fe2e61894468c6dc0b26103abb073fb08b79a3d9e4b6d76a1a341549958" 4174 | dependencies = [ 4175 | "bitflags 2.6.0", 4176 | ] 4177 | 4178 | [[package]] 4179 | name = "siphasher" 4180 | version = "0.3.11" 4181 | source = "registry+https://github.com/rust-lang/crates.io-index" 4182 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 4183 | 4184 | [[package]] 4185 | name = "sized-chunks" 4186 | version = "0.6.5" 4187 | source = "registry+https://github.com/rust-lang/crates.io-index" 4188 | checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" 4189 | dependencies = [ 4190 | "bitmaps", 4191 | "typenum", 4192 | ] 4193 | 4194 | [[package]] 4195 | name = "slab" 4196 | version = "0.4.9" 4197 | source = "registry+https://github.com/rust-lang/crates.io-index" 4198 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 4199 | dependencies = [ 4200 | "autocfg", 4201 | ] 4202 | 4203 | [[package]] 4204 | name = "smallvec" 4205 | version = "1.13.2" 4206 | source = "registry+https://github.com/rust-lang/crates.io-index" 4207 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 4208 | dependencies = [ 4209 | "serde", 4210 | ] 4211 | 4212 | [[package]] 4213 | name = "smol_str" 4214 | version = "0.1.24" 4215 | source = "registry+https://github.com/rust-lang/crates.io-index" 4216 | checksum = "fad6c857cbab2627dcf01ec85a623ca4e7dcb5691cbaa3d7fb7653671f0d09c9" 4217 | 4218 | [[package]] 4219 | name = "socket2" 4220 | version = "0.5.8" 4221 | source = "registry+https://github.com/rust-lang/crates.io-index" 4222 | checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" 4223 | dependencies = [ 4224 | "libc", 4225 | "windows-sys 0.52.0", 4226 | ] 4227 | 4228 | [[package]] 4229 | name = "spin" 4230 | version = "0.9.8" 4231 | source = "registry+https://github.com/rust-lang/crates.io-index" 4232 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 4233 | dependencies = [ 4234 | "lock_api", 4235 | ] 4236 | 4237 | [[package]] 4238 | name = "spki" 4239 | version = "0.7.3" 4240 | source = "registry+https://github.com/rust-lang/crates.io-index" 4241 | checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 4242 | dependencies = [ 4243 | "base64ct", 4244 | "der", 4245 | ] 4246 | 4247 | [[package]] 4248 | name = "ssh-cipher" 4249 | version = "0.2.0" 4250 | source = "registry+https://github.com/rust-lang/crates.io-index" 4251 | checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f" 4252 | dependencies = [ 4253 | "cipher", 4254 | "ssh-encoding", 4255 | ] 4256 | 4257 | [[package]] 4258 | name = "ssh-encoding" 4259 | version = "0.2.0" 4260 | source = "registry+https://github.com/rust-lang/crates.io-index" 4261 | checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15" 4262 | dependencies = [ 4263 | "base64ct", 4264 | "pem-rfc7468", 4265 | "sha2", 4266 | ] 4267 | 4268 | [[package]] 4269 | name = "ssh-key" 4270 | version = "0.6.7" 4271 | source = "registry+https://github.com/rust-lang/crates.io-index" 4272 | checksum = "3b86f5297f0f04d08cabaa0f6bff7cb6aec4d9c3b49d87990d63da9d9156a8c3" 4273 | dependencies = [ 4274 | "ed25519-dalek", 4275 | "p256", 4276 | "p384", 4277 | "p521", 4278 | "rand_core 0.6.4", 4279 | "rsa", 4280 | "sec1", 4281 | "sha2", 4282 | "signature", 4283 | "ssh-cipher", 4284 | "ssh-encoding", 4285 | "subtle", 4286 | "zeroize", 4287 | ] 4288 | 4289 | [[package]] 4290 | name = "stable_deref_trait" 4291 | version = "1.2.0" 4292 | source = "registry+https://github.com/rust-lang/crates.io-index" 4293 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 4294 | 4295 | [[package]] 4296 | name = "static_assertions" 4297 | version = "1.1.0" 4298 | source = "registry+https://github.com/rust-lang/crates.io-index" 4299 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 4300 | 4301 | [[package]] 4302 | name = "string_cache" 4303 | version = "0.8.7" 4304 | source = "registry+https://github.com/rust-lang/crates.io-index" 4305 | checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" 4306 | dependencies = [ 4307 | "new_debug_unreachable", 4308 | "once_cell", 4309 | "parking_lot", 4310 | "phf_shared", 4311 | "precomputed-hash", 4312 | "serde", 4313 | ] 4314 | 4315 | [[package]] 4316 | name = "strsim" 4317 | version = "0.11.1" 4318 | source = "registry+https://github.com/rust-lang/crates.io-index" 4319 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 4320 | 4321 | [[package]] 4322 | name = "struct_iterable" 4323 | version = "0.1.1" 4324 | source = "registry+https://github.com/rust-lang/crates.io-index" 4325 | checksum = "849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712" 4326 | dependencies = [ 4327 | "struct_iterable_derive", 4328 | "struct_iterable_internal", 4329 | ] 4330 | 4331 | [[package]] 4332 | name = "struct_iterable_derive" 4333 | version = "0.1.0" 4334 | source = "registry+https://github.com/rust-lang/crates.io-index" 4335 | checksum = "8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c" 4336 | dependencies = [ 4337 | "erased-serde", 4338 | "proc-macro2", 4339 | "quote", 4340 | "struct_iterable_internal", 4341 | "syn 2.0.90", 4342 | ] 4343 | 4344 | [[package]] 4345 | name = "struct_iterable_internal" 4346 | version = "0.1.1" 4347 | source = "registry+https://github.com/rust-lang/crates.io-index" 4348 | checksum = "e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a" 4349 | 4350 | [[package]] 4351 | name = "strum" 4352 | version = "0.26.3" 4353 | source = "registry+https://github.com/rust-lang/crates.io-index" 4354 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 4355 | dependencies = [ 4356 | "strum_macros", 4357 | ] 4358 | 4359 | [[package]] 4360 | name = "strum_macros" 4361 | version = "0.26.4" 4362 | source = "registry+https://github.com/rust-lang/crates.io-index" 4363 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 4364 | dependencies = [ 4365 | "heck 0.5.0", 4366 | "proc-macro2", 4367 | "quote", 4368 | "rustversion", 4369 | "syn 2.0.90", 4370 | ] 4371 | 4372 | [[package]] 4373 | name = "stun-rs" 4374 | version = "0.1.9" 4375 | source = "registry+https://github.com/rust-lang/crates.io-index" 4376 | checksum = "b79cc624c9a747353810310af44f1f03f71eb4561284a894acc0396e6d0de76e" 4377 | dependencies = [ 4378 | "base64", 4379 | "bounded-integer", 4380 | "byteorder", 4381 | "crc", 4382 | "enumflags2", 4383 | "fallible-iterator", 4384 | "hmac-sha1", 4385 | "hmac-sha256", 4386 | "hostname-validator", 4387 | "lazy_static", 4388 | "md5", 4389 | "paste", 4390 | "precis-core", 4391 | "precis-profiles", 4392 | "quoted-string-parser", 4393 | "rand 0.8.5", 4394 | ] 4395 | 4396 | [[package]] 4397 | name = "subtle" 4398 | version = "2.6.1" 4399 | source = "registry+https://github.com/rust-lang/crates.io-index" 4400 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 4401 | 4402 | [[package]] 4403 | name = "surge-ping" 4404 | version = "0.8.1" 4405 | source = "registry+https://github.com/rust-lang/crates.io-index" 4406 | checksum = "efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77" 4407 | dependencies = [ 4408 | "hex", 4409 | "parking_lot", 4410 | "pnet_packet", 4411 | "rand 0.8.5", 4412 | "socket2", 4413 | "thiserror 1.0.69", 4414 | "tokio", 4415 | "tracing", 4416 | ] 4417 | 4418 | [[package]] 4419 | name = "swarm-discovery" 4420 | version = "0.3.1" 4421 | source = "registry+https://github.com/rust-lang/crates.io-index" 4422 | checksum = "d3a95032b94c1dc318f55e0b130e3d2176cda022310a65c3df0092764ea69562" 4423 | dependencies = [ 4424 | "acto", 4425 | "anyhow", 4426 | "hickory-proto", 4427 | "rand 0.8.5", 4428 | "socket2", 4429 | "tokio", 4430 | "tracing", 4431 | ] 4432 | 4433 | [[package]] 4434 | name = "syn" 4435 | version = "1.0.109" 4436 | source = "registry+https://github.com/rust-lang/crates.io-index" 4437 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 4438 | dependencies = [ 4439 | "proc-macro2", 4440 | "quote", 4441 | "unicode-ident", 4442 | ] 4443 | 4444 | [[package]] 4445 | name = "syn" 4446 | version = "2.0.90" 4447 | source = "registry+https://github.com/rust-lang/crates.io-index" 4448 | checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" 4449 | dependencies = [ 4450 | "proc-macro2", 4451 | "quote", 4452 | "unicode-ident", 4453 | ] 4454 | 4455 | [[package]] 4456 | name = "sync_wrapper" 4457 | version = "1.0.2" 4458 | source = "registry+https://github.com/rust-lang/crates.io-index" 4459 | checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 4460 | dependencies = [ 4461 | "futures-core", 4462 | ] 4463 | 4464 | [[package]] 4465 | name = "synstructure" 4466 | version = "0.13.1" 4467 | source = "registry+https://github.com/rust-lang/crates.io-index" 4468 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 4469 | dependencies = [ 4470 | "proc-macro2", 4471 | "quote", 4472 | "syn 2.0.90", 4473 | ] 4474 | 4475 | [[package]] 4476 | name = "system-configuration" 4477 | version = "0.6.1" 4478 | source = "registry+https://github.com/rust-lang/crates.io-index" 4479 | checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 4480 | dependencies = [ 4481 | "bitflags 2.6.0", 4482 | "core-foundation", 4483 | "system-configuration-sys", 4484 | ] 4485 | 4486 | [[package]] 4487 | name = "system-configuration-sys" 4488 | version = "0.6.0" 4489 | source = "registry+https://github.com/rust-lang/crates.io-index" 4490 | checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 4491 | dependencies = [ 4492 | "core-foundation-sys", 4493 | "libc", 4494 | ] 4495 | 4496 | [[package]] 4497 | name = "tagptr" 4498 | version = "0.2.0" 4499 | source = "registry+https://github.com/rust-lang/crates.io-index" 4500 | checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 4501 | 4502 | [[package]] 4503 | name = "tempfile" 4504 | version = "3.17.1" 4505 | source = "registry+https://github.com/rust-lang/crates.io-index" 4506 | checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" 4507 | dependencies = [ 4508 | "cfg-if", 4509 | "fastrand", 4510 | "getrandom 0.3.2", 4511 | "once_cell", 4512 | "rustix", 4513 | "windows-sys 0.59.0", 4514 | ] 4515 | 4516 | [[package]] 4517 | name = "thiserror" 4518 | version = "1.0.69" 4519 | source = "registry+https://github.com/rust-lang/crates.io-index" 4520 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 4521 | dependencies = [ 4522 | "thiserror-impl 1.0.69", 4523 | ] 4524 | 4525 | [[package]] 4526 | name = "thiserror" 4527 | version = "2.0.12" 4528 | source = "registry+https://github.com/rust-lang/crates.io-index" 4529 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 4530 | dependencies = [ 4531 | "thiserror-impl 2.0.12", 4532 | ] 4533 | 4534 | [[package]] 4535 | name = "thiserror-impl" 4536 | version = "1.0.69" 4537 | source = "registry+https://github.com/rust-lang/crates.io-index" 4538 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 4539 | dependencies = [ 4540 | "proc-macro2", 4541 | "quote", 4542 | "syn 2.0.90", 4543 | ] 4544 | 4545 | [[package]] 4546 | name = "thiserror-impl" 4547 | version = "2.0.12" 4548 | source = "registry+https://github.com/rust-lang/crates.io-index" 4549 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 4550 | dependencies = [ 4551 | "proc-macro2", 4552 | "quote", 4553 | "syn 2.0.90", 4554 | ] 4555 | 4556 | [[package]] 4557 | name = "thread_local" 4558 | version = "1.1.8" 4559 | source = "registry+https://github.com/rust-lang/crates.io-index" 4560 | checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 4561 | dependencies = [ 4562 | "cfg-if", 4563 | "once_cell", 4564 | ] 4565 | 4566 | [[package]] 4567 | name = "time" 4568 | version = "0.3.37" 4569 | source = "registry+https://github.com/rust-lang/crates.io-index" 4570 | checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" 4571 | dependencies = [ 4572 | "deranged", 4573 | "itoa", 4574 | "js-sys", 4575 | "num-conv", 4576 | "powerfmt", 4577 | "serde", 4578 | "time-core", 4579 | "time-macros", 4580 | ] 4581 | 4582 | [[package]] 4583 | name = "time-core" 4584 | version = "0.1.2" 4585 | source = "registry+https://github.com/rust-lang/crates.io-index" 4586 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 4587 | 4588 | [[package]] 4589 | name = "time-macros" 4590 | version = "0.2.19" 4591 | source = "registry+https://github.com/rust-lang/crates.io-index" 4592 | checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" 4593 | dependencies = [ 4594 | "num-conv", 4595 | "time-core", 4596 | ] 4597 | 4598 | [[package]] 4599 | name = "tinystr" 4600 | version = "0.7.6" 4601 | source = "registry+https://github.com/rust-lang/crates.io-index" 4602 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 4603 | dependencies = [ 4604 | "displaydoc", 4605 | "zerovec", 4606 | ] 4607 | 4608 | [[package]] 4609 | name = "tinyvec" 4610 | version = "1.8.0" 4611 | source = "registry+https://github.com/rust-lang/crates.io-index" 4612 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 4613 | dependencies = [ 4614 | "tinyvec_macros", 4615 | ] 4616 | 4617 | [[package]] 4618 | name = "tinyvec_macros" 4619 | version = "0.1.1" 4620 | source = "registry+https://github.com/rust-lang/crates.io-index" 4621 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 4622 | 4623 | [[package]] 4624 | name = "tokio" 4625 | version = "1.42.0" 4626 | source = "registry+https://github.com/rust-lang/crates.io-index" 4627 | checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" 4628 | dependencies = [ 4629 | "backtrace", 4630 | "bytes", 4631 | "libc", 4632 | "mio", 4633 | "parking_lot", 4634 | "pin-project-lite", 4635 | "signal-hook-registry", 4636 | "socket2", 4637 | "tokio-macros", 4638 | "windows-sys 0.52.0", 4639 | ] 4640 | 4641 | [[package]] 4642 | name = "tokio-macros" 4643 | version = "2.4.0" 4644 | source = "registry+https://github.com/rust-lang/crates.io-index" 4645 | checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 4646 | dependencies = [ 4647 | "proc-macro2", 4648 | "quote", 4649 | "syn 2.0.90", 4650 | ] 4651 | 4652 | [[package]] 4653 | name = "tokio-rustls" 4654 | version = "0.26.0" 4655 | source = "registry+https://github.com/rust-lang/crates.io-index" 4656 | checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" 4657 | dependencies = [ 4658 | "rustls", 4659 | "rustls-pki-types", 4660 | "tokio", 4661 | ] 4662 | 4663 | [[package]] 4664 | name = "tokio-stream" 4665 | version = "0.1.16" 4666 | source = "registry+https://github.com/rust-lang/crates.io-index" 4667 | checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" 4668 | dependencies = [ 4669 | "futures-core", 4670 | "pin-project-lite", 4671 | "tokio", 4672 | "tokio-util", 4673 | ] 4674 | 4675 | [[package]] 4676 | name = "tokio-tungstenite" 4677 | version = "0.24.0" 4678 | source = "registry+https://github.com/rust-lang/crates.io-index" 4679 | checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" 4680 | dependencies = [ 4681 | "futures-util", 4682 | "log", 4683 | "tokio", 4684 | "tungstenite", 4685 | ] 4686 | 4687 | [[package]] 4688 | name = "tokio-tungstenite-wasm" 4689 | version = "0.4.0" 4690 | source = "registry+https://github.com/rust-lang/crates.io-index" 4691 | checksum = "e21a5c399399c3db9f08d8297ac12b500e86bca82e930253fdc62eaf9c0de6ae" 4692 | dependencies = [ 4693 | "futures-channel", 4694 | "futures-util", 4695 | "http 1.2.0", 4696 | "httparse", 4697 | "js-sys", 4698 | "thiserror 1.0.69", 4699 | "tokio", 4700 | "tokio-tungstenite", 4701 | "wasm-bindgen", 4702 | "web-sys", 4703 | ] 4704 | 4705 | [[package]] 4706 | name = "tokio-util" 4707 | version = "0.7.13" 4708 | source = "registry+https://github.com/rust-lang/crates.io-index" 4709 | checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" 4710 | dependencies = [ 4711 | "bytes", 4712 | "futures-core", 4713 | "futures-sink", 4714 | "futures-util", 4715 | "hashbrown 0.14.5", 4716 | "pin-project-lite", 4717 | "tokio", 4718 | ] 4719 | 4720 | [[package]] 4721 | name = "toml_datetime" 4722 | version = "0.6.8" 4723 | source = "registry+https://github.com/rust-lang/crates.io-index" 4724 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 4725 | 4726 | [[package]] 4727 | name = "toml_edit" 4728 | version = "0.22.22" 4729 | source = "registry+https://github.com/rust-lang/crates.io-index" 4730 | checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 4731 | dependencies = [ 4732 | "indexmap", 4733 | "toml_datetime", 4734 | "winnow", 4735 | ] 4736 | 4737 | [[package]] 4738 | name = "tower-service" 4739 | version = "0.3.3" 4740 | source = "registry+https://github.com/rust-lang/crates.io-index" 4741 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 4742 | 4743 | [[package]] 4744 | name = "tracing" 4745 | version = "0.1.41" 4746 | source = "registry+https://github.com/rust-lang/crates.io-index" 4747 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 4748 | dependencies = [ 4749 | "log", 4750 | "pin-project-lite", 4751 | "tracing-attributes", 4752 | "tracing-core", 4753 | ] 4754 | 4755 | [[package]] 4756 | name = "tracing-attributes" 4757 | version = "0.1.28" 4758 | source = "registry+https://github.com/rust-lang/crates.io-index" 4759 | checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 4760 | dependencies = [ 4761 | "proc-macro2", 4762 | "quote", 4763 | "syn 2.0.90", 4764 | ] 4765 | 4766 | [[package]] 4767 | name = "tracing-core" 4768 | version = "0.1.33" 4769 | source = "registry+https://github.com/rust-lang/crates.io-index" 4770 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 4771 | dependencies = [ 4772 | "once_cell", 4773 | "valuable", 4774 | ] 4775 | 4776 | [[package]] 4777 | name = "tracing-log" 4778 | version = "0.2.0" 4779 | source = "registry+https://github.com/rust-lang/crates.io-index" 4780 | checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 4781 | dependencies = [ 4782 | "log", 4783 | "once_cell", 4784 | "tracing-core", 4785 | ] 4786 | 4787 | [[package]] 4788 | name = "tracing-subscriber" 4789 | version = "0.3.19" 4790 | source = "registry+https://github.com/rust-lang/crates.io-index" 4791 | checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 4792 | dependencies = [ 4793 | "matchers", 4794 | "nu-ansi-term", 4795 | "once_cell", 4796 | "regex", 4797 | "sharded-slab", 4798 | "smallvec", 4799 | "thread_local", 4800 | "tracing", 4801 | "tracing-core", 4802 | "tracing-log", 4803 | ] 4804 | 4805 | [[package]] 4806 | name = "try-lock" 4807 | version = "0.2.5" 4808 | source = "registry+https://github.com/rust-lang/crates.io-index" 4809 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 4810 | 4811 | [[package]] 4812 | name = "tungstenite" 4813 | version = "0.24.0" 4814 | source = "registry+https://github.com/rust-lang/crates.io-index" 4815 | checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" 4816 | dependencies = [ 4817 | "byteorder", 4818 | "bytes", 4819 | "data-encoding", 4820 | "http 1.2.0", 4821 | "httparse", 4822 | "log", 4823 | "rand 0.8.5", 4824 | "sha1", 4825 | "thiserror 1.0.69", 4826 | "utf-8", 4827 | ] 4828 | 4829 | [[package]] 4830 | name = "twox-hash" 4831 | version = "1.6.3" 4832 | source = "registry+https://github.com/rust-lang/crates.io-index" 4833 | checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 4834 | dependencies = [ 4835 | "cfg-if", 4836 | "static_assertions", 4837 | ] 4838 | 4839 | [[package]] 4840 | name = "typenum" 4841 | version = "1.17.0" 4842 | source = "registry+https://github.com/rust-lang/crates.io-index" 4843 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 4844 | 4845 | [[package]] 4846 | name = "ucd-parse" 4847 | version = "0.1.13" 4848 | source = "registry+https://github.com/rust-lang/crates.io-index" 4849 | checksum = "c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9" 4850 | dependencies = [ 4851 | "regex-lite", 4852 | ] 4853 | 4854 | [[package]] 4855 | name = "ucd-trie" 4856 | version = "0.1.7" 4857 | source = "registry+https://github.com/rust-lang/crates.io-index" 4858 | checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 4859 | 4860 | [[package]] 4861 | name = "unicode-ident" 4862 | version = "1.0.14" 4863 | source = "registry+https://github.com/rust-lang/crates.io-index" 4864 | checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" 4865 | 4866 | [[package]] 4867 | name = "unicode-normalization" 4868 | version = "0.1.24" 4869 | source = "registry+https://github.com/rust-lang/crates.io-index" 4870 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 4871 | dependencies = [ 4872 | "tinyvec", 4873 | ] 4874 | 4875 | [[package]] 4876 | name = "unicode-xid" 4877 | version = "0.2.6" 4878 | source = "registry+https://github.com/rust-lang/crates.io-index" 4879 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 4880 | 4881 | [[package]] 4882 | name = "universal-hash" 4883 | version = "0.5.1" 4884 | source = "registry+https://github.com/rust-lang/crates.io-index" 4885 | checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" 4886 | dependencies = [ 4887 | "crypto-common", 4888 | "subtle", 4889 | ] 4890 | 4891 | [[package]] 4892 | name = "untrusted" 4893 | version = "0.9.0" 4894 | source = "registry+https://github.com/rust-lang/crates.io-index" 4895 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 4896 | 4897 | [[package]] 4898 | name = "ureq" 4899 | version = "2.12.1" 4900 | source = "registry+https://github.com/rust-lang/crates.io-index" 4901 | checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" 4902 | dependencies = [ 4903 | "base64", 4904 | "log", 4905 | "once_cell", 4906 | "rustls", 4907 | "rustls-pki-types", 4908 | "url", 4909 | "webpki-roots", 4910 | ] 4911 | 4912 | [[package]] 4913 | name = "url" 4914 | version = "2.5.4" 4915 | source = "registry+https://github.com/rust-lang/crates.io-index" 4916 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 4917 | dependencies = [ 4918 | "form_urlencoded", 4919 | "idna", 4920 | "percent-encoding", 4921 | "serde", 4922 | ] 4923 | 4924 | [[package]] 4925 | name = "utf-8" 4926 | version = "0.7.6" 4927 | source = "registry+https://github.com/rust-lang/crates.io-index" 4928 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 4929 | 4930 | [[package]] 4931 | name = "utf16_iter" 4932 | version = "1.0.5" 4933 | source = "registry+https://github.com/rust-lang/crates.io-index" 4934 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 4935 | 4936 | [[package]] 4937 | name = "utf8_iter" 4938 | version = "1.0.4" 4939 | source = "registry+https://github.com/rust-lang/crates.io-index" 4940 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 4941 | 4942 | [[package]] 4943 | name = "utf8parse" 4944 | version = "0.2.2" 4945 | source = "registry+https://github.com/rust-lang/crates.io-index" 4946 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 4947 | 4948 | [[package]] 4949 | name = "uuid" 4950 | version = "1.16.0" 4951 | source = "registry+https://github.com/rust-lang/crates.io-index" 4952 | checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" 4953 | dependencies = [ 4954 | "getrandom 0.3.2", 4955 | ] 4956 | 4957 | [[package]] 4958 | name = "valuable" 4959 | version = "0.1.0" 4960 | source = "registry+https://github.com/rust-lang/crates.io-index" 4961 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 4962 | 4963 | [[package]] 4964 | name = "version_check" 4965 | version = "0.9.5" 4966 | source = "registry+https://github.com/rust-lang/crates.io-index" 4967 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 4968 | 4969 | [[package]] 4970 | name = "walkdir" 4971 | version = "2.5.0" 4972 | source = "registry+https://github.com/rust-lang/crates.io-index" 4973 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 4974 | dependencies = [ 4975 | "same-file", 4976 | "winapi-util", 4977 | ] 4978 | 4979 | [[package]] 4980 | name = "want" 4981 | version = "0.3.1" 4982 | source = "registry+https://github.com/rust-lang/crates.io-index" 4983 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 4984 | dependencies = [ 4985 | "try-lock", 4986 | ] 4987 | 4988 | [[package]] 4989 | name = "wasi" 4990 | version = "0.11.0+wasi-snapshot-preview1" 4991 | source = "registry+https://github.com/rust-lang/crates.io-index" 4992 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 4993 | 4994 | [[package]] 4995 | name = "wasi" 4996 | version = "0.14.2+wasi-0.2.4" 4997 | source = "registry+https://github.com/rust-lang/crates.io-index" 4998 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 4999 | dependencies = [ 5000 | "wit-bindgen-rt", 5001 | ] 5002 | 5003 | [[package]] 5004 | name = "wasm-bindgen" 5005 | version = "0.2.97" 5006 | source = "registry+https://github.com/rust-lang/crates.io-index" 5007 | checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" 5008 | dependencies = [ 5009 | "cfg-if", 5010 | "once_cell", 5011 | "wasm-bindgen-macro", 5012 | ] 5013 | 5014 | [[package]] 5015 | name = "wasm-bindgen-backend" 5016 | version = "0.2.97" 5017 | source = "registry+https://github.com/rust-lang/crates.io-index" 5018 | checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" 5019 | dependencies = [ 5020 | "bumpalo", 5021 | "log", 5022 | "once_cell", 5023 | "proc-macro2", 5024 | "quote", 5025 | "syn 2.0.90", 5026 | "wasm-bindgen-shared", 5027 | ] 5028 | 5029 | [[package]] 5030 | name = "wasm-bindgen-futures" 5031 | version = "0.4.47" 5032 | source = "registry+https://github.com/rust-lang/crates.io-index" 5033 | checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" 5034 | dependencies = [ 5035 | "cfg-if", 5036 | "js-sys", 5037 | "once_cell", 5038 | "wasm-bindgen", 5039 | "web-sys", 5040 | ] 5041 | 5042 | [[package]] 5043 | name = "wasm-bindgen-macro" 5044 | version = "0.2.97" 5045 | source = "registry+https://github.com/rust-lang/crates.io-index" 5046 | checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" 5047 | dependencies = [ 5048 | "quote", 5049 | "wasm-bindgen-macro-support", 5050 | ] 5051 | 5052 | [[package]] 5053 | name = "wasm-bindgen-macro-support" 5054 | version = "0.2.97" 5055 | source = "registry+https://github.com/rust-lang/crates.io-index" 5056 | checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" 5057 | dependencies = [ 5058 | "proc-macro2", 5059 | "quote", 5060 | "syn 2.0.90", 5061 | "wasm-bindgen-backend", 5062 | "wasm-bindgen-shared", 5063 | ] 5064 | 5065 | [[package]] 5066 | name = "wasm-bindgen-shared" 5067 | version = "0.2.97" 5068 | source = "registry+https://github.com/rust-lang/crates.io-index" 5069 | checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" 5070 | 5071 | [[package]] 5072 | name = "wasm-streams" 5073 | version = "0.4.2" 5074 | source = "registry+https://github.com/rust-lang/crates.io-index" 5075 | checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 5076 | dependencies = [ 5077 | "futures-util", 5078 | "js-sys", 5079 | "wasm-bindgen", 5080 | "wasm-bindgen-futures", 5081 | "web-sys", 5082 | ] 5083 | 5084 | [[package]] 5085 | name = "web-sys" 5086 | version = "0.3.74" 5087 | source = "registry+https://github.com/rust-lang/crates.io-index" 5088 | checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" 5089 | dependencies = [ 5090 | "js-sys", 5091 | "wasm-bindgen", 5092 | ] 5093 | 5094 | [[package]] 5095 | name = "web-time" 5096 | version = "1.1.0" 5097 | source = "registry+https://github.com/rust-lang/crates.io-index" 5098 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 5099 | dependencies = [ 5100 | "js-sys", 5101 | "wasm-bindgen", 5102 | ] 5103 | 5104 | [[package]] 5105 | name = "webpki-roots" 5106 | version = "0.26.7" 5107 | source = "registry+https://github.com/rust-lang/crates.io-index" 5108 | checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" 5109 | dependencies = [ 5110 | "rustls-pki-types", 5111 | ] 5112 | 5113 | [[package]] 5114 | name = "widestring" 5115 | version = "1.1.0" 5116 | source = "registry+https://github.com/rust-lang/crates.io-index" 5117 | checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" 5118 | 5119 | [[package]] 5120 | name = "winapi" 5121 | version = "0.3.9" 5122 | source = "registry+https://github.com/rust-lang/crates.io-index" 5123 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 5124 | dependencies = [ 5125 | "winapi-i686-pc-windows-gnu", 5126 | "winapi-x86_64-pc-windows-gnu", 5127 | ] 5128 | 5129 | [[package]] 5130 | name = "winapi-i686-pc-windows-gnu" 5131 | version = "0.4.0" 5132 | source = "registry+https://github.com/rust-lang/crates.io-index" 5133 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 5134 | 5135 | [[package]] 5136 | name = "winapi-util" 5137 | version = "0.1.9" 5138 | source = "registry+https://github.com/rust-lang/crates.io-index" 5139 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 5140 | dependencies = [ 5141 | "windows-sys 0.59.0", 5142 | ] 5143 | 5144 | [[package]] 5145 | name = "winapi-x86_64-pc-windows-gnu" 5146 | version = "0.4.0" 5147 | source = "registry+https://github.com/rust-lang/crates.io-index" 5148 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 5149 | 5150 | [[package]] 5151 | name = "windows" 5152 | version = "0.48.0" 5153 | source = "registry+https://github.com/rust-lang/crates.io-index" 5154 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 5155 | dependencies = [ 5156 | "windows-targets 0.48.5", 5157 | ] 5158 | 5159 | [[package]] 5160 | name = "windows" 5161 | version = "0.58.0" 5162 | source = "registry+https://github.com/rust-lang/crates.io-index" 5163 | checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" 5164 | dependencies = [ 5165 | "windows-core 0.58.0", 5166 | "windows-targets 0.52.6", 5167 | ] 5168 | 5169 | [[package]] 5170 | name = "windows" 5171 | version = "0.59.0" 5172 | source = "registry+https://github.com/rust-lang/crates.io-index" 5173 | checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" 5174 | dependencies = [ 5175 | "windows-core 0.59.0", 5176 | "windows-targets 0.53.0", 5177 | ] 5178 | 5179 | [[package]] 5180 | name = "windows-core" 5181 | version = "0.52.0" 5182 | source = "registry+https://github.com/rust-lang/crates.io-index" 5183 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 5184 | dependencies = [ 5185 | "windows-targets 0.52.6", 5186 | ] 5187 | 5188 | [[package]] 5189 | name = "windows-core" 5190 | version = "0.58.0" 5191 | source = "registry+https://github.com/rust-lang/crates.io-index" 5192 | checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" 5193 | dependencies = [ 5194 | "windows-implement 0.58.0", 5195 | "windows-interface 0.58.0", 5196 | "windows-result 0.2.0", 5197 | "windows-strings 0.1.0", 5198 | "windows-targets 0.52.6", 5199 | ] 5200 | 5201 | [[package]] 5202 | name = "windows-core" 5203 | version = "0.59.0" 5204 | source = "registry+https://github.com/rust-lang/crates.io-index" 5205 | checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" 5206 | dependencies = [ 5207 | "windows-implement 0.59.0", 5208 | "windows-interface 0.59.1", 5209 | "windows-result 0.3.2", 5210 | "windows-strings 0.3.1", 5211 | "windows-targets 0.53.0", 5212 | ] 5213 | 5214 | [[package]] 5215 | name = "windows-implement" 5216 | version = "0.58.0" 5217 | source = "registry+https://github.com/rust-lang/crates.io-index" 5218 | checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" 5219 | dependencies = [ 5220 | "proc-macro2", 5221 | "quote", 5222 | "syn 2.0.90", 5223 | ] 5224 | 5225 | [[package]] 5226 | name = "windows-implement" 5227 | version = "0.59.0" 5228 | source = "registry+https://github.com/rust-lang/crates.io-index" 5229 | checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" 5230 | dependencies = [ 5231 | "proc-macro2", 5232 | "quote", 5233 | "syn 2.0.90", 5234 | ] 5235 | 5236 | [[package]] 5237 | name = "windows-interface" 5238 | version = "0.58.0" 5239 | source = "registry+https://github.com/rust-lang/crates.io-index" 5240 | checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" 5241 | dependencies = [ 5242 | "proc-macro2", 5243 | "quote", 5244 | "syn 2.0.90", 5245 | ] 5246 | 5247 | [[package]] 5248 | name = "windows-interface" 5249 | version = "0.59.1" 5250 | source = "registry+https://github.com/rust-lang/crates.io-index" 5251 | checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" 5252 | dependencies = [ 5253 | "proc-macro2", 5254 | "quote", 5255 | "syn 2.0.90", 5256 | ] 5257 | 5258 | [[package]] 5259 | name = "windows-link" 5260 | version = "0.1.1" 5261 | source = "registry+https://github.com/rust-lang/crates.io-index" 5262 | checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" 5263 | 5264 | [[package]] 5265 | name = "windows-registry" 5266 | version = "0.2.0" 5267 | source = "registry+https://github.com/rust-lang/crates.io-index" 5268 | checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" 5269 | dependencies = [ 5270 | "windows-result 0.2.0", 5271 | "windows-strings 0.1.0", 5272 | "windows-targets 0.52.6", 5273 | ] 5274 | 5275 | [[package]] 5276 | name = "windows-result" 5277 | version = "0.2.0" 5278 | source = "registry+https://github.com/rust-lang/crates.io-index" 5279 | checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 5280 | dependencies = [ 5281 | "windows-targets 0.52.6", 5282 | ] 5283 | 5284 | [[package]] 5285 | name = "windows-result" 5286 | version = "0.3.2" 5287 | source = "registry+https://github.com/rust-lang/crates.io-index" 5288 | checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" 5289 | dependencies = [ 5290 | "windows-link", 5291 | ] 5292 | 5293 | [[package]] 5294 | name = "windows-strings" 5295 | version = "0.1.0" 5296 | source = "registry+https://github.com/rust-lang/crates.io-index" 5297 | checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 5298 | dependencies = [ 5299 | "windows-result 0.2.0", 5300 | "windows-targets 0.52.6", 5301 | ] 5302 | 5303 | [[package]] 5304 | name = "windows-strings" 5305 | version = "0.3.1" 5306 | source = "registry+https://github.com/rust-lang/crates.io-index" 5307 | checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" 5308 | dependencies = [ 5309 | "windows-link", 5310 | ] 5311 | 5312 | [[package]] 5313 | name = "windows-sys" 5314 | version = "0.48.0" 5315 | source = "registry+https://github.com/rust-lang/crates.io-index" 5316 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 5317 | dependencies = [ 5318 | "windows-targets 0.48.5", 5319 | ] 5320 | 5321 | [[package]] 5322 | name = "windows-sys" 5323 | version = "0.52.0" 5324 | source = "registry+https://github.com/rust-lang/crates.io-index" 5325 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 5326 | dependencies = [ 5327 | "windows-targets 0.52.6", 5328 | ] 5329 | 5330 | [[package]] 5331 | name = "windows-sys" 5332 | version = "0.59.0" 5333 | source = "registry+https://github.com/rust-lang/crates.io-index" 5334 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 5335 | dependencies = [ 5336 | "windows-targets 0.52.6", 5337 | ] 5338 | 5339 | [[package]] 5340 | name = "windows-targets" 5341 | version = "0.48.5" 5342 | source = "registry+https://github.com/rust-lang/crates.io-index" 5343 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 5344 | dependencies = [ 5345 | "windows_aarch64_gnullvm 0.48.5", 5346 | "windows_aarch64_msvc 0.48.5", 5347 | "windows_i686_gnu 0.48.5", 5348 | "windows_i686_msvc 0.48.5", 5349 | "windows_x86_64_gnu 0.48.5", 5350 | "windows_x86_64_gnullvm 0.48.5", 5351 | "windows_x86_64_msvc 0.48.5", 5352 | ] 5353 | 5354 | [[package]] 5355 | name = "windows-targets" 5356 | version = "0.52.6" 5357 | source = "registry+https://github.com/rust-lang/crates.io-index" 5358 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 5359 | dependencies = [ 5360 | "windows_aarch64_gnullvm 0.52.6", 5361 | "windows_aarch64_msvc 0.52.6", 5362 | "windows_i686_gnu 0.52.6", 5363 | "windows_i686_gnullvm 0.52.6", 5364 | "windows_i686_msvc 0.52.6", 5365 | "windows_x86_64_gnu 0.52.6", 5366 | "windows_x86_64_gnullvm 0.52.6", 5367 | "windows_x86_64_msvc 0.52.6", 5368 | ] 5369 | 5370 | [[package]] 5371 | name = "windows-targets" 5372 | version = "0.53.0" 5373 | source = "registry+https://github.com/rust-lang/crates.io-index" 5374 | checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" 5375 | dependencies = [ 5376 | "windows_aarch64_gnullvm 0.53.0", 5377 | "windows_aarch64_msvc 0.53.0", 5378 | "windows_i686_gnu 0.53.0", 5379 | "windows_i686_gnullvm 0.53.0", 5380 | "windows_i686_msvc 0.53.0", 5381 | "windows_x86_64_gnu 0.53.0", 5382 | "windows_x86_64_gnullvm 0.53.0", 5383 | "windows_x86_64_msvc 0.53.0", 5384 | ] 5385 | 5386 | [[package]] 5387 | name = "windows_aarch64_gnullvm" 5388 | version = "0.48.5" 5389 | source = "registry+https://github.com/rust-lang/crates.io-index" 5390 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 5391 | 5392 | [[package]] 5393 | name = "windows_aarch64_gnullvm" 5394 | version = "0.52.6" 5395 | source = "registry+https://github.com/rust-lang/crates.io-index" 5396 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 5397 | 5398 | [[package]] 5399 | name = "windows_aarch64_gnullvm" 5400 | version = "0.53.0" 5401 | source = "registry+https://github.com/rust-lang/crates.io-index" 5402 | checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 5403 | 5404 | [[package]] 5405 | name = "windows_aarch64_msvc" 5406 | version = "0.48.5" 5407 | source = "registry+https://github.com/rust-lang/crates.io-index" 5408 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 5409 | 5410 | [[package]] 5411 | name = "windows_aarch64_msvc" 5412 | version = "0.52.6" 5413 | source = "registry+https://github.com/rust-lang/crates.io-index" 5414 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 5415 | 5416 | [[package]] 5417 | name = "windows_aarch64_msvc" 5418 | version = "0.53.0" 5419 | source = "registry+https://github.com/rust-lang/crates.io-index" 5420 | checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 5421 | 5422 | [[package]] 5423 | name = "windows_i686_gnu" 5424 | version = "0.48.5" 5425 | source = "registry+https://github.com/rust-lang/crates.io-index" 5426 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 5427 | 5428 | [[package]] 5429 | name = "windows_i686_gnu" 5430 | version = "0.52.6" 5431 | source = "registry+https://github.com/rust-lang/crates.io-index" 5432 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 5433 | 5434 | [[package]] 5435 | name = "windows_i686_gnu" 5436 | version = "0.53.0" 5437 | source = "registry+https://github.com/rust-lang/crates.io-index" 5438 | checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 5439 | 5440 | [[package]] 5441 | name = "windows_i686_gnullvm" 5442 | version = "0.52.6" 5443 | source = "registry+https://github.com/rust-lang/crates.io-index" 5444 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 5445 | 5446 | [[package]] 5447 | name = "windows_i686_gnullvm" 5448 | version = "0.53.0" 5449 | source = "registry+https://github.com/rust-lang/crates.io-index" 5450 | checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 5451 | 5452 | [[package]] 5453 | name = "windows_i686_msvc" 5454 | version = "0.48.5" 5455 | source = "registry+https://github.com/rust-lang/crates.io-index" 5456 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 5457 | 5458 | [[package]] 5459 | name = "windows_i686_msvc" 5460 | version = "0.52.6" 5461 | source = "registry+https://github.com/rust-lang/crates.io-index" 5462 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 5463 | 5464 | [[package]] 5465 | name = "windows_i686_msvc" 5466 | version = "0.53.0" 5467 | source = "registry+https://github.com/rust-lang/crates.io-index" 5468 | checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 5469 | 5470 | [[package]] 5471 | name = "windows_x86_64_gnu" 5472 | version = "0.48.5" 5473 | source = "registry+https://github.com/rust-lang/crates.io-index" 5474 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 5475 | 5476 | [[package]] 5477 | name = "windows_x86_64_gnu" 5478 | version = "0.52.6" 5479 | source = "registry+https://github.com/rust-lang/crates.io-index" 5480 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 5481 | 5482 | [[package]] 5483 | name = "windows_x86_64_gnu" 5484 | version = "0.53.0" 5485 | source = "registry+https://github.com/rust-lang/crates.io-index" 5486 | checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 5487 | 5488 | [[package]] 5489 | name = "windows_x86_64_gnullvm" 5490 | version = "0.48.5" 5491 | source = "registry+https://github.com/rust-lang/crates.io-index" 5492 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 5493 | 5494 | [[package]] 5495 | name = "windows_x86_64_gnullvm" 5496 | version = "0.52.6" 5497 | source = "registry+https://github.com/rust-lang/crates.io-index" 5498 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 5499 | 5500 | [[package]] 5501 | name = "windows_x86_64_gnullvm" 5502 | version = "0.53.0" 5503 | source = "registry+https://github.com/rust-lang/crates.io-index" 5504 | checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 5505 | 5506 | [[package]] 5507 | name = "windows_x86_64_msvc" 5508 | version = "0.48.5" 5509 | source = "registry+https://github.com/rust-lang/crates.io-index" 5510 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 5511 | 5512 | [[package]] 5513 | name = "windows_x86_64_msvc" 5514 | version = "0.52.6" 5515 | source = "registry+https://github.com/rust-lang/crates.io-index" 5516 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 5517 | 5518 | [[package]] 5519 | name = "windows_x86_64_msvc" 5520 | version = "0.53.0" 5521 | source = "registry+https://github.com/rust-lang/crates.io-index" 5522 | checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 5523 | 5524 | [[package]] 5525 | name = "winnow" 5526 | version = "0.6.20" 5527 | source = "registry+https://github.com/rust-lang/crates.io-index" 5528 | checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 5529 | dependencies = [ 5530 | "memchr", 5531 | ] 5532 | 5533 | [[package]] 5534 | name = "winreg" 5535 | version = "0.50.0" 5536 | source = "registry+https://github.com/rust-lang/crates.io-index" 5537 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 5538 | dependencies = [ 5539 | "cfg-if", 5540 | "windows-sys 0.48.0", 5541 | ] 5542 | 5543 | [[package]] 5544 | name = "wit-bindgen-rt" 5545 | version = "0.39.0" 5546 | source = "registry+https://github.com/rust-lang/crates.io-index" 5547 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 5548 | dependencies = [ 5549 | "bitflags 2.6.0", 5550 | ] 5551 | 5552 | [[package]] 5553 | name = "wmi" 5554 | version = "0.14.2" 5555 | source = "registry+https://github.com/rust-lang/crates.io-index" 5556 | checksum = "dc47c0776cc6c00d2f7a874a0c846d94d45535936e5a1187693a24f23b4dd701" 5557 | dependencies = [ 5558 | "chrono", 5559 | "futures", 5560 | "log", 5561 | "serde", 5562 | "thiserror 2.0.12", 5563 | "windows 0.58.0", 5564 | "windows-core 0.58.0", 5565 | ] 5566 | 5567 | [[package]] 5568 | name = "write16" 5569 | version = "1.0.0" 5570 | source = "registry+https://github.com/rust-lang/crates.io-index" 5571 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 5572 | 5573 | [[package]] 5574 | name = "writeable" 5575 | version = "0.5.5" 5576 | source = "registry+https://github.com/rust-lang/crates.io-index" 5577 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 5578 | 5579 | [[package]] 5580 | name = "x509-parser" 5581 | version = "0.16.0" 5582 | source = "registry+https://github.com/rust-lang/crates.io-index" 5583 | checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" 5584 | dependencies = [ 5585 | "asn1-rs", 5586 | "data-encoding", 5587 | "der-parser", 5588 | "lazy_static", 5589 | "nom", 5590 | "oid-registry", 5591 | "rusticata-macros", 5592 | "thiserror 1.0.69", 5593 | "time", 5594 | ] 5595 | 5596 | [[package]] 5597 | name = "xml-rs" 5598 | version = "0.8.24" 5599 | source = "registry+https://github.com/rust-lang/crates.io-index" 5600 | checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432" 5601 | 5602 | [[package]] 5603 | name = "xmltree" 5604 | version = "0.10.3" 5605 | source = "registry+https://github.com/rust-lang/crates.io-index" 5606 | checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" 5607 | dependencies = [ 5608 | "xml-rs", 5609 | ] 5610 | 5611 | [[package]] 5612 | name = "xxhash-rust" 5613 | version = "0.8.12" 5614 | source = "registry+https://github.com/rust-lang/crates.io-index" 5615 | checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" 5616 | 5617 | [[package]] 5618 | name = "yansi" 5619 | version = "1.0.1" 5620 | source = "registry+https://github.com/rust-lang/crates.io-index" 5621 | checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 5622 | 5623 | [[package]] 5624 | name = "yasna" 5625 | version = "0.5.2" 5626 | source = "registry+https://github.com/rust-lang/crates.io-index" 5627 | checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" 5628 | dependencies = [ 5629 | "time", 5630 | ] 5631 | 5632 | [[package]] 5633 | name = "yoke" 5634 | version = "0.7.5" 5635 | source = "registry+https://github.com/rust-lang/crates.io-index" 5636 | checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" 5637 | dependencies = [ 5638 | "serde", 5639 | "stable_deref_trait", 5640 | "yoke-derive", 5641 | "zerofrom", 5642 | ] 5643 | 5644 | [[package]] 5645 | name = "yoke-derive" 5646 | version = "0.7.5" 5647 | source = "registry+https://github.com/rust-lang/crates.io-index" 5648 | checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 5649 | dependencies = [ 5650 | "proc-macro2", 5651 | "quote", 5652 | "syn 2.0.90", 5653 | "synstructure", 5654 | ] 5655 | 5656 | [[package]] 5657 | name = "z32" 5658 | version = "1.1.1" 5659 | source = "registry+https://github.com/rust-lang/crates.io-index" 5660 | checksum = "edb37266251c28b03d08162174a91c3a092e3bd4f476f8205ee1c507b78b7bdc" 5661 | 5662 | [[package]] 5663 | name = "zerocopy" 5664 | version = "0.7.35" 5665 | source = "registry+https://github.com/rust-lang/crates.io-index" 5666 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 5667 | dependencies = [ 5668 | "byteorder", 5669 | "zerocopy-derive", 5670 | ] 5671 | 5672 | [[package]] 5673 | name = "zerocopy-derive" 5674 | version = "0.7.35" 5675 | source = "registry+https://github.com/rust-lang/crates.io-index" 5676 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 5677 | dependencies = [ 5678 | "proc-macro2", 5679 | "quote", 5680 | "syn 2.0.90", 5681 | ] 5682 | 5683 | [[package]] 5684 | name = "zerofrom" 5685 | version = "0.1.5" 5686 | source = "registry+https://github.com/rust-lang/crates.io-index" 5687 | checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" 5688 | dependencies = [ 5689 | "zerofrom-derive", 5690 | ] 5691 | 5692 | [[package]] 5693 | name = "zerofrom-derive" 5694 | version = "0.1.5" 5695 | source = "registry+https://github.com/rust-lang/crates.io-index" 5696 | checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" 5697 | dependencies = [ 5698 | "proc-macro2", 5699 | "quote", 5700 | "syn 2.0.90", 5701 | "synstructure", 5702 | ] 5703 | 5704 | [[package]] 5705 | name = "zeroize" 5706 | version = "1.8.1" 5707 | source = "registry+https://github.com/rust-lang/crates.io-index" 5708 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 5709 | 5710 | [[package]] 5711 | name = "zerovec" 5712 | version = "0.10.4" 5713 | source = "registry+https://github.com/rust-lang/crates.io-index" 5714 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 5715 | dependencies = [ 5716 | "yoke", 5717 | "zerofrom", 5718 | "zerovec-derive", 5719 | ] 5720 | 5721 | [[package]] 5722 | name = "zerovec-derive" 5723 | version = "0.10.3" 5724 | source = "registry+https://github.com/rust-lang/crates.io-index" 5725 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 5726 | dependencies = [ 5727 | "proc-macro2", 5728 | "quote", 5729 | "syn 2.0.90", 5730 | ] 5731 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "iroh-loro" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [dependencies] 7 | anyhow = "1.0.80" 8 | async-broadcast = "0.7.1" 9 | async-channel = "2.3.1" 10 | clap = { version = "4.5.1", features = ["derive"] } 11 | dirs-next = "2.0.0" 12 | # iroh = "0.29" 13 | iroh = {version = "0.34.1", features = ["discovery-local-network"]} 14 | iroh-node-util = "0.34.0" 15 | loro = "1.1.0" 16 | notify = "7.0.0" 17 | postcard = "1.0.8" 18 | rand = "0.8.5" 19 | serde = { version = "1.0.197", features = ["derive"] } 20 | tokio = { version = "1.36.0", features = ["full"] } 21 | tracing = "0.1.41" 22 | tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } 23 | 24 | [dev-dependencies] 25 | bytes = "1.9.0" 26 | futures = "0.3.31" 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # iroh-loro demo 2 | 3 | A peer-to-peer collaborative text editing demo that uses 4 | [iroh](https://github.com/n0-computer/iroh) for p2p networking and 5 | [loro](https://github.com/loro-dev/loro) for CRDT-based text synchronization. 6 | 7 | > This demo only works for 2 peers and a single text file at the moment 8 | 9 | ## Usage 10 | 11 | The demo supports two modes: serving a file (hosting) and joining an existing 12 | session. 13 | 14 | ### Hosting a File 15 | 16 | To start hosting a file for collaborative editing: 17 | 18 | ```bash 19 | cargo run -r serve 20 | ``` 21 | 22 | This will: 23 | 24 | 1. Start watching the specified file for changes 25 | 2. Print your Node ID that others can use to connect 26 | 3. Automatically sync changes on the given text file with any peers that join 27 | 28 | ### Joining a Session 29 | 30 | To join an existing collaborative editing session: 31 | 32 | ```bash 33 | cargo run -r join 34 | ``` 35 | 36 | Where: 37 | 38 | - `REMOTE_NODE_ID` is the Node ID printed by the host 39 | - `LOCAL_FILE_PATH` is where you want to save the synchronized file locally 40 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use std::{future::Future, pin::Pin, sync::Arc}; 2 | 3 | use anyhow::Result; 4 | use iroh::{endpoint::Connection, protocol::ProtocolHandler}; 5 | use loro::{ExportMode, LoroDoc}; 6 | use tokio::{ 7 | select, 8 | sync::{Mutex, mpsc}, 9 | }; 10 | 11 | #[derive(Debug)] 12 | pub struct IrohLoroProtocolInner { 13 | inner: Mutex, 14 | sender: mpsc::Sender, 15 | } 16 | 17 | #[derive(Debug)] 18 | pub struct IrohLoroProtocol { 19 | pub inner: Arc, 20 | } 21 | 22 | impl IrohLoroProtocolInner { 23 | pub const ALPN: &'static [u8] = b"iroh/loro/1"; 24 | 25 | pub fn new(inner: LoroDoc, sender: mpsc::Sender) -> Arc { 26 | Arc::new(Self { 27 | inner: Mutex::new(inner), 28 | sender, 29 | }) 30 | } 31 | 32 | pub async fn update_doc(&self, new_doc: &str) { 33 | println!( 34 | "📝 Local file changed. Updating doc... (length={})", 35 | new_doc.len() 36 | ); 37 | let doc = self.inner.lock().await; 38 | doc.get_text("text") 39 | .update(new_doc, loro::UpdateOptions::default()) 40 | .unwrap(); 41 | doc.commit(); 42 | println!("✅ Local update committed"); 43 | } 44 | 45 | pub async fn initiate_sync(self: Arc, conn: Connection) -> Result<()> { 46 | let (tx, rx) = async_channel::bounded(128); 47 | let _sub = self 48 | .inner 49 | .lock() 50 | .await 51 | .subscribe_local_update(Box::new(move |u| { 52 | tx.send_blocking(u.clone()).unwrap(); 53 | true 54 | })); 55 | 56 | let sync = self.inner.lock().await.export(ExportMode::all_updates())?; 57 | 58 | // Initial sync 59 | let mut stream = conn.open_uni().await?; 60 | stream.write_all(&sync).await?; 61 | stream.finish()?; 62 | 63 | // Wait for changes & sync 64 | loop { 65 | select! { 66 | close = conn.closed() => { 67 | println!("🔌 Peer disconnected: {close:?}"); 68 | return Ok(()); 69 | }, 70 | // Incoming sync messages 71 | stream = conn.accept_uni() => { 72 | let mut stream = stream?; 73 | tokio::spawn({ 74 | let this = self.clone(); 75 | async move { 76 | let msg = stream.read_to_end(10_000).await?; // 10 KB limit for now 77 | println!("📥 Received sync message from peer (size={})", msg.len()); 78 | if let Err(e) = this.inner.lock().await.import(&msg) { 79 | println!("❌ Failed to import sync message: {}", e); 80 | }; 81 | println!("✅ Successfully imported sync message"); 82 | 83 | this.sender 84 | .send(this.inner.lock().await.get_text("text").to_string()) 85 | .await?; 86 | 87 | println!("✅ Successfully sent update to local"); 88 | 89 | anyhow::Ok(()) 90 | } 91 | }); 92 | }, 93 | // Responses to local document changes 94 | msg = rx.recv() => { 95 | let msg = msg?; 96 | println!("📤 Sending update to peer (size={})", msg.len()); 97 | let mut stream = conn.open_uni().await?; 98 | stream.write_all(&msg).await?; 99 | stream.finish()?; 100 | println!("✅ Successfully sent update to peer"); 101 | } 102 | } 103 | } 104 | } 105 | 106 | pub async fn respond_sync(self: Arc, conn: iroh::endpoint::Connecting) -> Result<()> { 107 | let conn = conn.await?; 108 | self.initiate_sync(conn).await 109 | } 110 | } 111 | 112 | impl ProtocolHandler for IrohLoroProtocol { 113 | fn accept( 114 | &self, 115 | conn: Connection, 116 | ) -> Pin> + Send + 'static>> { 117 | let inner = self.inner.clone(); 118 | Box::pin(async move { 119 | println!("🔌 Peer connected"); 120 | let result = inner.initiate_sync(conn).await; 121 | println!("🔌 Peer disconnected"); 122 | if let Err(e) = result { 123 | println!("❌ Error: {}", e); 124 | return Err(e); 125 | } 126 | Ok(()) 127 | }) 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use anyhow::Context; 2 | use clap::{Parser, command}; 3 | use iroh::protocol::ProtocolHandler; 4 | use iroh_loro::{IrohLoroProtocol, IrohLoroProtocolInner}; 5 | use notify::Watcher; 6 | use std::sync::Arc; 7 | use tokio::signal; 8 | use tokio::sync::mpsc; 9 | 10 | #[derive(Parser)] 11 | #[command(version, about, long_about = None)] 12 | enum Cli { 13 | Serve { 14 | file_path: String, 15 | }, 16 | Join { 17 | remote_id: iroh::NodeId, 18 | file_path: String, 19 | }, 20 | } 21 | 22 | #[tokio::main] 23 | async fn main() -> anyhow::Result<()> { 24 | let opts = Cli::parse(); 25 | 26 | // Common setup function for both Serve and Join modes 27 | async fn setup_node( 28 | doc: loro::LoroDoc, 29 | file_path: String, 30 | key_path: Option<&str>, 31 | ) -> anyhow::Result<( 32 | Arc, 33 | iroh::protocol::Router, 34 | tokio::task::JoinHandle<()>, 35 | )> { 36 | let secret_key = if let Some(key_path) = key_path { 37 | iroh_node_util::fs::load_secret_key( 38 | dirs_next::cache_dir() 39 | .context("no dir for secret key")? 40 | .join("iroh-loro") 41 | .join(key_path), 42 | ) 43 | .await? 44 | } else { 45 | let mut rng = rand::rngs::OsRng; 46 | iroh::SecretKey::generate(&mut rng) 47 | }; 48 | 49 | let (tx, mut rx) = mpsc::channel(100); 50 | let p = IrohLoroProtocolInner::new(doc, tx); 51 | 52 | // Spawn file writer task 53 | let writer_handle = tokio::spawn(async move { 54 | while let Some(contents) = rx.recv().await { 55 | println!("💾 Writing new contents to file. Length={}", contents.len()); 56 | match std::fs::write(&file_path, contents) { 57 | Ok(_) => println!("✅ Successfully wrote to file"), 58 | Err(e) => println!("❌ Failed to write to file: {}", e), 59 | } 60 | } 61 | }); 62 | 63 | let endpoint = iroh::Endpoint::builder() 64 | .discovery_n0() 65 | .secret_key(secret_key) 66 | .alpns(vec![IrohLoroProtocolInner::ALPN.to_vec()]) 67 | .bind() 68 | .await?; 69 | 70 | // Create and configure iroh node 71 | let iroh = iroh::protocol::Router::builder(endpoint) 72 | .accept( 73 | IrohLoroProtocolInner::ALPN, 74 | IrohLoroProtocol { 75 | inner: Arc::clone(&p), 76 | }, 77 | ) 78 | .spawn() 79 | .await?; 80 | 81 | let addr = iroh.endpoint().node_addr().await?; 82 | println!("Running\nNode Id: {}", addr.node_id); 83 | println!("{}", iroh.endpoint().node_id()); 84 | 85 | Ok((p, iroh, writer_handle)) 86 | } 87 | 88 | // Modified file watcher setup to return the JoinHandle 89 | fn spawn_file_watcher( 90 | file_path: String, 91 | p: Arc, 92 | ) -> tokio::task::JoinHandle<()> { 93 | tokio::spawn(async move { 94 | println!("👀 Starting file watcher for: {}", file_path); 95 | let (notify_tx, mut notify_rx) = mpsc::channel(1); 96 | let mut watcher = notify::recommended_watcher(move |res: Result| { 97 | if let Ok(event) = res { 98 | if let notify::EventKind::Modify(_) = event.kind { 99 | println!("📝 File modification detected"); 100 | let _ = notify_tx.blocking_send(()); 101 | } 102 | } 103 | }) 104 | .unwrap(); 105 | watcher 106 | .watch( 107 | std::path::Path::new(&file_path), 108 | notify::RecursiveMode::NonRecursive, 109 | ) 110 | .unwrap(); 111 | 112 | loop { 113 | if let Some(_) = notify_rx.recv().await { 114 | match std::fs::read_to_string(&file_path) { 115 | Ok(contents) => { 116 | println!("📖 Read file contents (length={})", contents.len()); 117 | p.update_doc(&contents).await; 118 | } 119 | Err(e) => println!("❌ Failed to read file: {}", e), 120 | } 121 | } 122 | } 123 | }) 124 | } 125 | 126 | match opts { 127 | Cli::Serve { file_path } => { 128 | // Initialize document with file contents 129 | let contents = std::fs::read_to_string(&file_path) 130 | .expect("Should have been able to read the file"); 131 | let doc = loro::LoroDoc::new(); 132 | doc.get_text("text") 133 | .update(&contents, loro::UpdateOptions::default()) 134 | .unwrap(); 135 | doc.commit(); 136 | println!("Serving file: {}", file_path); 137 | 138 | let (p, iroh, _writer) = 139 | setup_node(doc, file_path.clone(), Some("key.ed25519")).await?; 140 | let _watcher = spawn_file_watcher(file_path, p); 141 | 142 | // Wait for Ctrl+C 143 | signal::ctrl_c().await?; 144 | println!("Received Ctrl+C, shutting down..."); 145 | iroh.shutdown().await?; 146 | } 147 | 148 | Cli::Join { 149 | remote_id, 150 | file_path, 151 | } => { 152 | let doc = loro::LoroDoc::new(); 153 | if !std::path::Path::new(&file_path).exists() { 154 | std::fs::write(&file_path, "").unwrap(); 155 | println!("Created new file at: {}", file_path); 156 | } 157 | let (p, iroh, _writer) = setup_node(doc, file_path.clone(), None).await?; 158 | let _watcher = spawn_file_watcher(file_path, p.clone()); 159 | 160 | // Connect to remote node and sync 161 | let node_addr = iroh::NodeAddr::new(remote_id); 162 | let conn = iroh 163 | .endpoint() 164 | .connect(node_addr, IrohLoroProtocolInner::ALPN) 165 | .await?; 166 | 167 | p.initiate_sync(conn).await?; 168 | 169 | // Wait for Ctrl+C 170 | signal::ctrl_c().await?; 171 | println!("Received Ctrl+C, shutting down..."); 172 | iroh.shutdown().await?; 173 | } 174 | } 175 | 176 | Ok(()) 177 | } 178 | --------------------------------------------------------------------------------