Live video on the AT Protocol

initial setup

dignifiedquire 7738075a

+5950
+1
.gitignore
··· 1 + /target
+4557
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 = "addr2line" 7 + version = "0.24.2" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 10 + dependencies = [ 11 + "gimli", 12 + ] 13 + 14 + [[package]] 15 + name = "adler2" 16 + version = "2.0.1" 17 + source = "registry+https://github.com/rust-lang/crates.io-index" 18 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 19 + 20 + [[package]] 21 + name = "aead" 22 + version = "0.5.2" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" 25 + dependencies = [ 26 + "bytes", 27 + "crypto-common", 28 + "generic-array", 29 + ] 30 + 31 + [[package]] 32 + name = "aho-corasick" 33 + version = "1.1.3" 34 + source = "registry+https://github.com/rust-lang/crates.io-index" 35 + checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 36 + dependencies = [ 37 + "memchr", 38 + ] 39 + 40 + [[package]] 41 + name = "allocator-api2" 42 + version = "0.2.21" 43 + source = "registry+https://github.com/rust-lang/crates.io-index" 44 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 45 + 46 + [[package]] 47 + name = "android-tzdata" 48 + version = "0.1.1" 49 + source = "registry+https://github.com/rust-lang/crates.io-index" 50 + checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 51 + 52 + [[package]] 53 + name = "android_system_properties" 54 + version = "0.1.5" 55 + source = "registry+https://github.com/rust-lang/crates.io-index" 56 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 57 + dependencies = [ 58 + "libc", 59 + ] 60 + 61 + [[package]] 62 + name = "anyhow" 63 + version = "1.0.98" 64 + source = "registry+https://github.com/rust-lang/crates.io-index" 65 + checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" 66 + dependencies = [ 67 + "backtrace", 68 + ] 69 + 70 + [[package]] 71 + name = "arrayref" 72 + version = "0.3.9" 73 + source = "registry+https://github.com/rust-lang/crates.io-index" 74 + checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 75 + 76 + [[package]] 77 + name = "arrayvec" 78 + version = "0.7.6" 79 + source = "registry+https://github.com/rust-lang/crates.io-index" 80 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 81 + 82 + [[package]] 83 + name = "askama" 84 + version = "0.12.1" 85 + source = "registry+https://github.com/rust-lang/crates.io-index" 86 + checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" 87 + dependencies = [ 88 + "askama_derive", 89 + "askama_escape", 90 + ] 91 + 92 + [[package]] 93 + name = "askama_derive" 94 + version = "0.12.5" 95 + source = "registry+https://github.com/rust-lang/crates.io-index" 96 + checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" 97 + dependencies = [ 98 + "askama_parser", 99 + "basic-toml", 100 + "mime", 101 + "mime_guess", 102 + "proc-macro2", 103 + "quote", 104 + "serde", 105 + "syn 2.0.104", 106 + ] 107 + 108 + [[package]] 109 + name = "askama_escape" 110 + version = "0.10.3" 111 + source = "registry+https://github.com/rust-lang/crates.io-index" 112 + checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" 113 + 114 + [[package]] 115 + name = "askama_parser" 116 + version = "0.2.1" 117 + source = "registry+https://github.com/rust-lang/crates.io-index" 118 + checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" 119 + dependencies = [ 120 + "nom", 121 + ] 122 + 123 + [[package]] 124 + name = "async-compat" 125 + version = "0.2.4" 126 + source = "registry+https://github.com/rust-lang/crates.io-index" 127 + checksum = "7bab94bde396a3f7b4962e396fdad640e241ed797d4d8d77fc8c237d14c58fc0" 128 + dependencies = [ 129 + "futures-core", 130 + "futures-io", 131 + "once_cell", 132 + "pin-project-lite", 133 + "tokio", 134 + ] 135 + 136 + [[package]] 137 + name = "async-trait" 138 + version = "0.1.88" 139 + source = "registry+https://github.com/rust-lang/crates.io-index" 140 + checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" 141 + dependencies = [ 142 + "proc-macro2", 143 + "quote", 144 + "syn 2.0.104", 145 + ] 146 + 147 + [[package]] 148 + name = "async_io_stream" 149 + version = "0.3.3" 150 + source = "registry+https://github.com/rust-lang/crates.io-index" 151 + checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" 152 + dependencies = [ 153 + "futures", 154 + "pharos", 155 + "rustc_version", 156 + ] 157 + 158 + [[package]] 159 + name = "atomic-polyfill" 160 + version = "1.0.3" 161 + source = "registry+https://github.com/rust-lang/crates.io-index" 162 + checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" 163 + dependencies = [ 164 + "critical-section", 165 + ] 166 + 167 + [[package]] 168 + name = "atomic-waker" 169 + version = "1.1.2" 170 + source = "registry+https://github.com/rust-lang/crates.io-index" 171 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 172 + 173 + [[package]] 174 + name = "attohttpc" 175 + version = "0.30.1" 176 + source = "registry+https://github.com/rust-lang/crates.io-index" 177 + checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" 178 + dependencies = [ 179 + "base64", 180 + "http", 181 + "log", 182 + "url", 183 + ] 184 + 185 + [[package]] 186 + name = "autocfg" 187 + version = "1.5.0" 188 + source = "registry+https://github.com/rust-lang/crates.io-index" 189 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 190 + 191 + [[package]] 192 + name = "backon" 193 + version = "1.5.2" 194 + source = "registry+https://github.com/rust-lang/crates.io-index" 195 + checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" 196 + dependencies = [ 197 + "fastrand", 198 + "gloo-timers", 199 + "tokio", 200 + ] 201 + 202 + [[package]] 203 + name = "backtrace" 204 + version = "0.3.75" 205 + source = "registry+https://github.com/rust-lang/crates.io-index" 206 + checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 207 + dependencies = [ 208 + "addr2line", 209 + "cfg-if", 210 + "libc", 211 + "miniz_oxide", 212 + "object", 213 + "rustc-demangle", 214 + "windows-targets 0.52.6", 215 + ] 216 + 217 + [[package]] 218 + name = "base16ct" 219 + version = "0.2.0" 220 + source = "registry+https://github.com/rust-lang/crates.io-index" 221 + checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 222 + 223 + [[package]] 224 + name = "base32" 225 + version = "0.5.1" 226 + source = "registry+https://github.com/rust-lang/crates.io-index" 227 + checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076" 228 + 229 + [[package]] 230 + name = "base64" 231 + version = "0.22.1" 232 + source = "registry+https://github.com/rust-lang/crates.io-index" 233 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 234 + 235 + [[package]] 236 + name = "base64ct" 237 + version = "1.8.0" 238 + source = "registry+https://github.com/rust-lang/crates.io-index" 239 + checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" 240 + 241 + [[package]] 242 + name = "basic-toml" 243 + version = "0.1.10" 244 + source = "registry+https://github.com/rust-lang/crates.io-index" 245 + checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" 246 + dependencies = [ 247 + "serde", 248 + ] 249 + 250 + [[package]] 251 + name = "bincode" 252 + version = "1.3.3" 253 + source = "registry+https://github.com/rust-lang/crates.io-index" 254 + checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 255 + dependencies = [ 256 + "serde", 257 + ] 258 + 259 + [[package]] 260 + name = "bitflags" 261 + version = "2.9.1" 262 + source = "registry+https://github.com/rust-lang/crates.io-index" 263 + checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 264 + 265 + [[package]] 266 + name = "blake3" 267 + version = "1.8.2" 268 + source = "registry+https://github.com/rust-lang/crates.io-index" 269 + checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" 270 + dependencies = [ 271 + "arrayref", 272 + "arrayvec", 273 + "cc", 274 + "cfg-if", 275 + "constant_time_eq", 276 + ] 277 + 278 + [[package]] 279 + name = "block-buffer" 280 + version = "0.10.4" 281 + source = "registry+https://github.com/rust-lang/crates.io-index" 282 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 283 + dependencies = [ 284 + "generic-array", 285 + ] 286 + 287 + [[package]] 288 + name = "bounded-integer" 289 + version = "0.5.8" 290 + source = "registry+https://github.com/rust-lang/crates.io-index" 291 + checksum = "102dbef1187b1893e6dfe05a774e79fd52265f49f214f6879c8ff49f52c8188b" 292 + 293 + [[package]] 294 + name = "btparse" 295 + version = "0.2.0" 296 + source = "registry+https://github.com/rust-lang/crates.io-index" 297 + checksum = "387e80962b798815a2b5c4bcfdb6bf626fa922ffe9f74e373103b858738e9f31" 298 + 299 + [[package]] 300 + name = "bumpalo" 301 + version = "3.19.0" 302 + source = "registry+https://github.com/rust-lang/crates.io-index" 303 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 304 + 305 + [[package]] 306 + name = "byteorder" 307 + version = "1.5.0" 308 + source = "registry+https://github.com/rust-lang/crates.io-index" 309 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 310 + 311 + [[package]] 312 + name = "bytes" 313 + version = "1.10.1" 314 + source = "registry+https://github.com/rust-lang/crates.io-index" 315 + checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 316 + 317 + [[package]] 318 + name = "camino" 319 + version = "1.1.10" 320 + source = "registry+https://github.com/rust-lang/crates.io-index" 321 + checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" 322 + dependencies = [ 323 + "serde", 324 + ] 325 + 326 + [[package]] 327 + name = "cargo-platform" 328 + version = "0.1.9" 329 + source = "registry+https://github.com/rust-lang/crates.io-index" 330 + checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" 331 + dependencies = [ 332 + "serde", 333 + ] 334 + 335 + [[package]] 336 + name = "cargo_metadata" 337 + version = "0.15.4" 338 + source = "registry+https://github.com/rust-lang/crates.io-index" 339 + checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" 340 + dependencies = [ 341 + "camino", 342 + "cargo-platform", 343 + "semver", 344 + "serde", 345 + "serde_json", 346 + "thiserror 1.0.69", 347 + ] 348 + 349 + [[package]] 350 + name = "cc" 351 + version = "1.2.31" 352 + source = "registry+https://github.com/rust-lang/crates.io-index" 353 + checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" 354 + dependencies = [ 355 + "shlex", 356 + ] 357 + 358 + [[package]] 359 + name = "cfg-if" 360 + version = "1.0.1" 361 + source = "registry+https://github.com/rust-lang/crates.io-index" 362 + checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 363 + 364 + [[package]] 365 + name = "cfg_aliases" 366 + version = "0.2.1" 367 + source = "registry+https://github.com/rust-lang/crates.io-index" 368 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 369 + 370 + [[package]] 371 + name = "chacha20" 372 + version = "0.9.1" 373 + source = "registry+https://github.com/rust-lang/crates.io-index" 374 + checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" 375 + dependencies = [ 376 + "cfg-if", 377 + "cipher", 378 + "cpufeatures", 379 + ] 380 + 381 + [[package]] 382 + name = "chrono" 383 + version = "0.4.41" 384 + source = "registry+https://github.com/rust-lang/crates.io-index" 385 + checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" 386 + dependencies = [ 387 + "android-tzdata", 388 + "iana-time-zone", 389 + "num-traits", 390 + "serde", 391 + "windows-link", 392 + ] 393 + 394 + [[package]] 395 + name = "cipher" 396 + version = "0.4.4" 397 + source = "registry+https://github.com/rust-lang/crates.io-index" 398 + checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 399 + dependencies = [ 400 + "crypto-common", 401 + "inout", 402 + "zeroize", 403 + ] 404 + 405 + [[package]] 406 + name = "cobs" 407 + version = "0.3.0" 408 + source = "registry+https://github.com/rust-lang/crates.io-index" 409 + checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" 410 + dependencies = [ 411 + "thiserror 2.0.12", 412 + ] 413 + 414 + [[package]] 415 + name = "color-backtrace" 416 + version = "0.7.0" 417 + source = "registry+https://github.com/rust-lang/crates.io-index" 418 + checksum = "2123a5984bd52ca861c66f66a9ab9883b27115c607f801f86c1bc2a84eb69f0f" 419 + dependencies = [ 420 + "backtrace", 421 + "btparse", 422 + "termcolor", 423 + ] 424 + 425 + [[package]] 426 + name = "const-oid" 427 + version = "0.9.6" 428 + source = "registry+https://github.com/rust-lang/crates.io-index" 429 + checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 430 + 431 + [[package]] 432 + name = "constant_time_eq" 433 + version = "0.3.1" 434 + source = "registry+https://github.com/rust-lang/crates.io-index" 435 + checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" 436 + 437 + [[package]] 438 + name = "cordyceps" 439 + version = "0.3.4" 440 + source = "registry+https://github.com/rust-lang/crates.io-index" 441 + checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" 442 + dependencies = [ 443 + "loom", 444 + "tracing", 445 + ] 446 + 447 + [[package]] 448 + name = "core-foundation" 449 + version = "0.9.4" 450 + source = "registry+https://github.com/rust-lang/crates.io-index" 451 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 452 + dependencies = [ 453 + "core-foundation-sys", 454 + "libc", 455 + ] 456 + 457 + [[package]] 458 + name = "core-foundation-sys" 459 + version = "0.8.7" 460 + source = "registry+https://github.com/rust-lang/crates.io-index" 461 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 462 + 463 + [[package]] 464 + name = "cpufeatures" 465 + version = "0.2.17" 466 + source = "registry+https://github.com/rust-lang/crates.io-index" 467 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 468 + dependencies = [ 469 + "libc", 470 + ] 471 + 472 + [[package]] 473 + name = "crc" 474 + version = "3.3.0" 475 + source = "registry+https://github.com/rust-lang/crates.io-index" 476 + checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" 477 + dependencies = [ 478 + "crc-catalog", 479 + ] 480 + 481 + [[package]] 482 + name = "crc-catalog" 483 + version = "2.4.0" 484 + source = "registry+https://github.com/rust-lang/crates.io-index" 485 + checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 486 + 487 + [[package]] 488 + name = "critical-section" 489 + version = "1.2.0" 490 + source = "registry+https://github.com/rust-lang/crates.io-index" 491 + checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 492 + 493 + [[package]] 494 + name = "crossbeam-channel" 495 + version = "0.5.15" 496 + source = "registry+https://github.com/rust-lang/crates.io-index" 497 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 498 + dependencies = [ 499 + "crossbeam-utils", 500 + ] 501 + 502 + [[package]] 503 + name = "crossbeam-epoch" 504 + version = "0.9.18" 505 + source = "registry+https://github.com/rust-lang/crates.io-index" 506 + checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 507 + dependencies = [ 508 + "crossbeam-utils", 509 + ] 510 + 511 + [[package]] 512 + name = "crossbeam-utils" 513 + version = "0.8.21" 514 + source = "registry+https://github.com/rust-lang/crates.io-index" 515 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 516 + 517 + [[package]] 518 + name = "crypto-common" 519 + version = "0.1.6" 520 + source = "registry+https://github.com/rust-lang/crates.io-index" 521 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 522 + dependencies = [ 523 + "generic-array", 524 + "rand_core 0.6.4", 525 + "typenum", 526 + ] 527 + 528 + [[package]] 529 + name = "crypto_box" 530 + version = "0.9.1" 531 + source = "registry+https://github.com/rust-lang/crates.io-index" 532 + checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009" 533 + dependencies = [ 534 + "aead", 535 + "chacha20", 536 + "crypto_secretbox", 537 + "curve25519-dalek", 538 + "salsa20", 539 + "serdect", 540 + "subtle", 541 + "zeroize", 542 + ] 543 + 544 + [[package]] 545 + name = "crypto_secretbox" 546 + version = "0.1.1" 547 + source = "registry+https://github.com/rust-lang/crates.io-index" 548 + checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" 549 + dependencies = [ 550 + "aead", 551 + "chacha20", 552 + "cipher", 553 + "generic-array", 554 + "poly1305", 555 + "salsa20", 556 + "subtle", 557 + "zeroize", 558 + ] 559 + 560 + [[package]] 561 + name = "curve25519-dalek" 562 + version = "4.1.3" 563 + source = "registry+https://github.com/rust-lang/crates.io-index" 564 + checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" 565 + dependencies = [ 566 + "cfg-if", 567 + "cpufeatures", 568 + "curve25519-dalek-derive", 569 + "digest", 570 + "fiat-crypto", 571 + "rand_core 0.6.4", 572 + "rustc_version", 573 + "serde", 574 + "subtle", 575 + "zeroize", 576 + ] 577 + 578 + [[package]] 579 + name = "curve25519-dalek-derive" 580 + version = "0.1.1" 581 + source = "registry+https://github.com/rust-lang/crates.io-index" 582 + checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" 583 + dependencies = [ 584 + "proc-macro2", 585 + "quote", 586 + "syn 2.0.104", 587 + ] 588 + 589 + [[package]] 590 + name = "data-encoding" 591 + version = "2.9.0" 592 + source = "registry+https://github.com/rust-lang/crates.io-index" 593 + checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 594 + 595 + [[package]] 596 + name = "der" 597 + version = "0.7.10" 598 + source = "registry+https://github.com/rust-lang/crates.io-index" 599 + checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" 600 + dependencies = [ 601 + "const-oid", 602 + "der_derive", 603 + "pem-rfc7468", 604 + "zeroize", 605 + ] 606 + 607 + [[package]] 608 + name = "der_derive" 609 + version = "0.7.3" 610 + source = "registry+https://github.com/rust-lang/crates.io-index" 611 + checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" 612 + dependencies = [ 613 + "proc-macro2", 614 + "quote", 615 + "syn 2.0.104", 616 + ] 617 + 618 + [[package]] 619 + name = "deranged" 620 + version = "0.4.0" 621 + source = "registry+https://github.com/rust-lang/crates.io-index" 622 + checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 623 + dependencies = [ 624 + "powerfmt", 625 + ] 626 + 627 + [[package]] 628 + name = "derive_more" 629 + version = "1.0.0" 630 + source = "registry+https://github.com/rust-lang/crates.io-index" 631 + checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" 632 + dependencies = [ 633 + "derive_more-impl 1.0.0", 634 + ] 635 + 636 + [[package]] 637 + name = "derive_more" 638 + version = "2.0.1" 639 + source = "registry+https://github.com/rust-lang/crates.io-index" 640 + checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 641 + dependencies = [ 642 + "derive_more-impl 2.0.1", 643 + ] 644 + 645 + [[package]] 646 + name = "derive_more-impl" 647 + version = "1.0.0" 648 + source = "registry+https://github.com/rust-lang/crates.io-index" 649 + checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" 650 + dependencies = [ 651 + "proc-macro2", 652 + "quote", 653 + "syn 2.0.104", 654 + "unicode-xid", 655 + ] 656 + 657 + [[package]] 658 + name = "derive_more-impl" 659 + version = "2.0.1" 660 + source = "registry+https://github.com/rust-lang/crates.io-index" 661 + checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 662 + dependencies = [ 663 + "proc-macro2", 664 + "quote", 665 + "syn 2.0.104", 666 + "unicode-xid", 667 + ] 668 + 669 + [[package]] 670 + name = "diatomic-waker" 671 + version = "0.2.3" 672 + source = "registry+https://github.com/rust-lang/crates.io-index" 673 + checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" 674 + 675 + [[package]] 676 + name = "digest" 677 + version = "0.10.7" 678 + source = "registry+https://github.com/rust-lang/crates.io-index" 679 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 680 + dependencies = [ 681 + "block-buffer", 682 + "crypto-common", 683 + "subtle", 684 + ] 685 + 686 + [[package]] 687 + name = "displaydoc" 688 + version = "0.2.5" 689 + source = "registry+https://github.com/rust-lang/crates.io-index" 690 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 691 + dependencies = [ 692 + "proc-macro2", 693 + "quote", 694 + "syn 2.0.104", 695 + ] 696 + 697 + [[package]] 698 + name = "dlopen2" 699 + version = "0.5.0" 700 + source = "registry+https://github.com/rust-lang/crates.io-index" 701 + checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" 702 + dependencies = [ 703 + "libc", 704 + "once_cell", 705 + "winapi", 706 + ] 707 + 708 + [[package]] 709 + name = "document-features" 710 + version = "0.2.11" 711 + source = "registry+https://github.com/rust-lang/crates.io-index" 712 + checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" 713 + dependencies = [ 714 + "litrs", 715 + ] 716 + 717 + [[package]] 718 + name = "dyn-clone" 719 + version = "1.0.20" 720 + source = "registry+https://github.com/rust-lang/crates.io-index" 721 + checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 722 + 723 + [[package]] 724 + name = "ed25519" 725 + version = "2.2.3" 726 + source = "registry+https://github.com/rust-lang/crates.io-index" 727 + checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" 728 + dependencies = [ 729 + "pkcs8", 730 + "serde", 731 + "signature", 732 + ] 733 + 734 + [[package]] 735 + name = "ed25519-dalek" 736 + version = "2.2.0" 737 + source = "registry+https://github.com/rust-lang/crates.io-index" 738 + checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" 739 + dependencies = [ 740 + "curve25519-dalek", 741 + "ed25519", 742 + "rand_core 0.6.4", 743 + "serde", 744 + "sha2", 745 + "subtle", 746 + "zeroize", 747 + ] 748 + 749 + [[package]] 750 + name = "embedded-io" 751 + version = "0.4.0" 752 + source = "registry+https://github.com/rust-lang/crates.io-index" 753 + checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 754 + 755 + [[package]] 756 + name = "embedded-io" 757 + version = "0.6.1" 758 + source = "registry+https://github.com/rust-lang/crates.io-index" 759 + checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 760 + 761 + [[package]] 762 + name = "enum-as-inner" 763 + version = "0.6.1" 764 + source = "registry+https://github.com/rust-lang/crates.io-index" 765 + checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 766 + dependencies = [ 767 + "heck", 768 + "proc-macro2", 769 + "quote", 770 + "syn 2.0.104", 771 + ] 772 + 773 + [[package]] 774 + name = "enumflags2" 775 + version = "0.7.12" 776 + source = "registry+https://github.com/rust-lang/crates.io-index" 777 + checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" 778 + dependencies = [ 779 + "enumflags2_derive", 780 + ] 781 + 782 + [[package]] 783 + name = "enumflags2_derive" 784 + version = "0.7.12" 785 + source = "registry+https://github.com/rust-lang/crates.io-index" 786 + checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" 787 + dependencies = [ 788 + "proc-macro2", 789 + "quote", 790 + "syn 2.0.104", 791 + ] 792 + 793 + [[package]] 794 + name = "equivalent" 795 + version = "1.0.2" 796 + source = "registry+https://github.com/rust-lang/crates.io-index" 797 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 798 + 799 + [[package]] 800 + name = "fallible-iterator" 801 + version = "0.3.0" 802 + source = "registry+https://github.com/rust-lang/crates.io-index" 803 + checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" 804 + 805 + [[package]] 806 + name = "fastrand" 807 + version = "2.3.0" 808 + source = "registry+https://github.com/rust-lang/crates.io-index" 809 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 810 + 811 + [[package]] 812 + name = "fiat-crypto" 813 + version = "0.2.9" 814 + source = "registry+https://github.com/rust-lang/crates.io-index" 815 + checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 816 + 817 + [[package]] 818 + name = "fnv" 819 + version = "1.0.7" 820 + source = "registry+https://github.com/rust-lang/crates.io-index" 821 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 822 + 823 + [[package]] 824 + name = "foldhash" 825 + version = "0.1.5" 826 + source = "registry+https://github.com/rust-lang/crates.io-index" 827 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 828 + 829 + [[package]] 830 + name = "form_urlencoded" 831 + version = "1.2.1" 832 + source = "registry+https://github.com/rust-lang/crates.io-index" 833 + checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 834 + dependencies = [ 835 + "percent-encoding", 836 + ] 837 + 838 + [[package]] 839 + name = "fs-err" 840 + version = "2.11.0" 841 + source = "registry+https://github.com/rust-lang/crates.io-index" 842 + checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" 843 + dependencies = [ 844 + "autocfg", 845 + ] 846 + 847 + [[package]] 848 + name = "futures" 849 + version = "0.3.31" 850 + source = "registry+https://github.com/rust-lang/crates.io-index" 851 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 852 + dependencies = [ 853 + "futures-channel", 854 + "futures-core", 855 + "futures-executor", 856 + "futures-io", 857 + "futures-sink", 858 + "futures-task", 859 + "futures-util", 860 + ] 861 + 862 + [[package]] 863 + name = "futures-buffered" 864 + version = "0.2.12" 865 + source = "registry+https://github.com/rust-lang/crates.io-index" 866 + checksum = "a8e0e1f38ec07ba4abbde21eed377082f17ccb988be9d988a5adbf4bafc118fd" 867 + dependencies = [ 868 + "cordyceps", 869 + "diatomic-waker", 870 + "futures-core", 871 + "pin-project-lite", 872 + "spin 0.10.0", 873 + ] 874 + 875 + [[package]] 876 + name = "futures-channel" 877 + version = "0.3.31" 878 + source = "registry+https://github.com/rust-lang/crates.io-index" 879 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 880 + dependencies = [ 881 + "futures-core", 882 + "futures-sink", 883 + ] 884 + 885 + [[package]] 886 + name = "futures-core" 887 + version = "0.3.31" 888 + source = "registry+https://github.com/rust-lang/crates.io-index" 889 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 890 + 891 + [[package]] 892 + name = "futures-executor" 893 + version = "0.3.31" 894 + source = "registry+https://github.com/rust-lang/crates.io-index" 895 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 896 + dependencies = [ 897 + "futures-core", 898 + "futures-task", 899 + "futures-util", 900 + ] 901 + 902 + [[package]] 903 + name = "futures-io" 904 + version = "0.3.31" 905 + source = "registry+https://github.com/rust-lang/crates.io-index" 906 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 907 + 908 + [[package]] 909 + name = "futures-lite" 910 + version = "2.6.1" 911 + source = "registry+https://github.com/rust-lang/crates.io-index" 912 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 913 + dependencies = [ 914 + "fastrand", 915 + "futures-core", 916 + "futures-io", 917 + "parking", 918 + "pin-project-lite", 919 + ] 920 + 921 + [[package]] 922 + name = "futures-macro" 923 + version = "0.3.31" 924 + source = "registry+https://github.com/rust-lang/crates.io-index" 925 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 926 + dependencies = [ 927 + "proc-macro2", 928 + "quote", 929 + "syn 2.0.104", 930 + ] 931 + 932 + [[package]] 933 + name = "futures-sink" 934 + version = "0.3.31" 935 + source = "registry+https://github.com/rust-lang/crates.io-index" 936 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 937 + 938 + [[package]] 939 + name = "futures-task" 940 + version = "0.3.31" 941 + source = "registry+https://github.com/rust-lang/crates.io-index" 942 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 943 + 944 + [[package]] 945 + name = "futures-util" 946 + version = "0.3.31" 947 + source = "registry+https://github.com/rust-lang/crates.io-index" 948 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 949 + dependencies = [ 950 + "futures-channel", 951 + "futures-core", 952 + "futures-io", 953 + "futures-macro", 954 + "futures-sink", 955 + "futures-task", 956 + "memchr", 957 + "pin-project-lite", 958 + "pin-utils", 959 + "slab", 960 + ] 961 + 962 + [[package]] 963 + name = "generator" 964 + version = "0.8.5" 965 + source = "registry+https://github.com/rust-lang/crates.io-index" 966 + checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" 967 + dependencies = [ 968 + "cc", 969 + "cfg-if", 970 + "libc", 971 + "log", 972 + "rustversion", 973 + "windows", 974 + ] 975 + 976 + [[package]] 977 + name = "generic-array" 978 + version = "0.14.7" 979 + source = "registry+https://github.com/rust-lang/crates.io-index" 980 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 981 + dependencies = [ 982 + "typenum", 983 + "version_check", 984 + "zeroize", 985 + ] 986 + 987 + [[package]] 988 + name = "getrandom" 989 + version = "0.2.16" 990 + source = "registry+https://github.com/rust-lang/crates.io-index" 991 + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 992 + dependencies = [ 993 + "cfg-if", 994 + "js-sys", 995 + "libc", 996 + "wasi 0.11.1+wasi-snapshot-preview1", 997 + "wasm-bindgen", 998 + ] 999 + 1000 + [[package]] 1001 + name = "getrandom" 1002 + version = "0.3.3" 1003 + source = "registry+https://github.com/rust-lang/crates.io-index" 1004 + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 1005 + dependencies = [ 1006 + "cfg-if", 1007 + "js-sys", 1008 + "libc", 1009 + "r-efi", 1010 + "wasi 0.14.2+wasi-0.2.4", 1011 + "wasm-bindgen", 1012 + ] 1013 + 1014 + [[package]] 1015 + name = "gimli" 1016 + version = "0.31.1" 1017 + source = "registry+https://github.com/rust-lang/crates.io-index" 1018 + checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1019 + 1020 + [[package]] 1021 + name = "glob" 1022 + version = "0.3.2" 1023 + source = "registry+https://github.com/rust-lang/crates.io-index" 1024 + checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 1025 + 1026 + [[package]] 1027 + name = "gloo-timers" 1028 + version = "0.3.0" 1029 + source = "registry+https://github.com/rust-lang/crates.io-index" 1030 + checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" 1031 + dependencies = [ 1032 + "futures-channel", 1033 + "futures-core", 1034 + "js-sys", 1035 + "wasm-bindgen", 1036 + ] 1037 + 1038 + [[package]] 1039 + name = "goblin" 1040 + version = "0.8.2" 1041 + source = "registry+https://github.com/rust-lang/crates.io-index" 1042 + checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" 1043 + dependencies = [ 1044 + "log", 1045 + "plain", 1046 + "scroll", 1047 + ] 1048 + 1049 + [[package]] 1050 + name = "h2" 1051 + version = "0.4.11" 1052 + source = "registry+https://github.com/rust-lang/crates.io-index" 1053 + checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" 1054 + dependencies = [ 1055 + "atomic-waker", 1056 + "bytes", 1057 + "fnv", 1058 + "futures-core", 1059 + "futures-sink", 1060 + "http", 1061 + "indexmap", 1062 + "slab", 1063 + "tokio", 1064 + "tokio-util", 1065 + "tracing", 1066 + ] 1067 + 1068 + [[package]] 1069 + name = "hash32" 1070 + version = "0.2.1" 1071 + source = "registry+https://github.com/rust-lang/crates.io-index" 1072 + checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1073 + dependencies = [ 1074 + "byteorder", 1075 + ] 1076 + 1077 + [[package]] 1078 + name = "hashbrown" 1079 + version = "0.15.4" 1080 + source = "registry+https://github.com/rust-lang/crates.io-index" 1081 + checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" 1082 + dependencies = [ 1083 + "allocator-api2", 1084 + "equivalent", 1085 + "foldhash", 1086 + ] 1087 + 1088 + [[package]] 1089 + name = "heapless" 1090 + version = "0.7.17" 1091 + source = "registry+https://github.com/rust-lang/crates.io-index" 1092 + checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1093 + dependencies = [ 1094 + "atomic-polyfill", 1095 + "hash32", 1096 + "rustc_version", 1097 + "serde", 1098 + "spin 0.9.8", 1099 + "stable_deref_trait", 1100 + ] 1101 + 1102 + [[package]] 1103 + name = "heck" 1104 + version = "0.5.0" 1105 + source = "registry+https://github.com/rust-lang/crates.io-index" 1106 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1107 + 1108 + [[package]] 1109 + name = "hex" 1110 + version = "0.4.3" 1111 + source = "registry+https://github.com/rust-lang/crates.io-index" 1112 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1113 + 1114 + [[package]] 1115 + name = "hickory-proto" 1116 + version = "0.25.2" 1117 + source = "registry+https://github.com/rust-lang/crates.io-index" 1118 + checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" 1119 + dependencies = [ 1120 + "async-trait", 1121 + "cfg-if", 1122 + "data-encoding", 1123 + "enum-as-inner", 1124 + "futures-channel", 1125 + "futures-io", 1126 + "futures-util", 1127 + "idna", 1128 + "ipnet", 1129 + "once_cell", 1130 + "rand 0.9.2", 1131 + "ring", 1132 + "thiserror 2.0.12", 1133 + "tinyvec", 1134 + "tokio", 1135 + "tracing", 1136 + "url", 1137 + ] 1138 + 1139 + [[package]] 1140 + name = "hickory-resolver" 1141 + version = "0.25.2" 1142 + source = "registry+https://github.com/rust-lang/crates.io-index" 1143 + checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" 1144 + dependencies = [ 1145 + "cfg-if", 1146 + "futures-util", 1147 + "hickory-proto", 1148 + "ipconfig", 1149 + "moka", 1150 + "once_cell", 1151 + "parking_lot", 1152 + "rand 0.9.2", 1153 + "resolv-conf", 1154 + "smallvec", 1155 + "thiserror 2.0.12", 1156 + "tokio", 1157 + "tracing", 1158 + ] 1159 + 1160 + [[package]] 1161 + name = "hmac" 1162 + version = "0.12.1" 1163 + source = "registry+https://github.com/rust-lang/crates.io-index" 1164 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1165 + dependencies = [ 1166 + "digest", 1167 + ] 1168 + 1169 + [[package]] 1170 + name = "hmac-sha1" 1171 + version = "0.2.2" 1172 + source = "registry+https://github.com/rust-lang/crates.io-index" 1173 + checksum = "6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88" 1174 + dependencies = [ 1175 + "hmac", 1176 + "sha1", 1177 + ] 1178 + 1179 + [[package]] 1180 + name = "hmac-sha256" 1181 + version = "1.1.12" 1182 + source = "registry+https://github.com/rust-lang/crates.io-index" 1183 + checksum = "ad6880c8d4a9ebf39c6e8b77007ce223f646a4d21ce29d99f70cb16420545425" 1184 + 1185 + [[package]] 1186 + name = "hostname-validator" 1187 + version = "1.1.1" 1188 + source = "registry+https://github.com/rust-lang/crates.io-index" 1189 + checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2" 1190 + 1191 + [[package]] 1192 + name = "http" 1193 + version = "1.3.1" 1194 + source = "registry+https://github.com/rust-lang/crates.io-index" 1195 + checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 1196 + dependencies = [ 1197 + "bytes", 1198 + "fnv", 1199 + "itoa", 1200 + ] 1201 + 1202 + [[package]] 1203 + name = "http-body" 1204 + version = "1.0.1" 1205 + source = "registry+https://github.com/rust-lang/crates.io-index" 1206 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 1207 + dependencies = [ 1208 + "bytes", 1209 + "http", 1210 + ] 1211 + 1212 + [[package]] 1213 + name = "http-body-util" 1214 + version = "0.1.3" 1215 + source = "registry+https://github.com/rust-lang/crates.io-index" 1216 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 1217 + dependencies = [ 1218 + "bytes", 1219 + "futures-core", 1220 + "http", 1221 + "http-body", 1222 + "pin-project-lite", 1223 + ] 1224 + 1225 + [[package]] 1226 + name = "httparse" 1227 + version = "1.10.1" 1228 + source = "registry+https://github.com/rust-lang/crates.io-index" 1229 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1230 + 1231 + [[package]] 1232 + name = "httpdate" 1233 + version = "1.0.3" 1234 + source = "registry+https://github.com/rust-lang/crates.io-index" 1235 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1236 + 1237 + [[package]] 1238 + name = "hyper" 1239 + version = "1.6.0" 1240 + source = "registry+https://github.com/rust-lang/crates.io-index" 1241 + checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 1242 + dependencies = [ 1243 + "bytes", 1244 + "futures-channel", 1245 + "futures-util", 1246 + "h2", 1247 + "http", 1248 + "http-body", 1249 + "httparse", 1250 + "httpdate", 1251 + "itoa", 1252 + "pin-project-lite", 1253 + "smallvec", 1254 + "tokio", 1255 + "want", 1256 + ] 1257 + 1258 + [[package]] 1259 + name = "hyper-rustls" 1260 + version = "0.27.7" 1261 + source = "registry+https://github.com/rust-lang/crates.io-index" 1262 + checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" 1263 + dependencies = [ 1264 + "http", 1265 + "hyper", 1266 + "hyper-util", 1267 + "rustls", 1268 + "rustls-pki-types", 1269 + "tokio", 1270 + "tokio-rustls", 1271 + "tower-service", 1272 + "webpki-roots 1.0.2", 1273 + ] 1274 + 1275 + [[package]] 1276 + name = "hyper-util" 1277 + version = "0.1.16" 1278 + source = "registry+https://github.com/rust-lang/crates.io-index" 1279 + checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" 1280 + dependencies = [ 1281 + "base64", 1282 + "bytes", 1283 + "futures-channel", 1284 + "futures-core", 1285 + "futures-util", 1286 + "http", 1287 + "http-body", 1288 + "hyper", 1289 + "ipnet", 1290 + "libc", 1291 + "percent-encoding", 1292 + "pin-project-lite", 1293 + "socket2 0.6.0", 1294 + "tokio", 1295 + "tower-service", 1296 + "tracing", 1297 + ] 1298 + 1299 + [[package]] 1300 + name = "iana-time-zone" 1301 + version = "0.1.63" 1302 + source = "registry+https://github.com/rust-lang/crates.io-index" 1303 + checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" 1304 + dependencies = [ 1305 + "android_system_properties", 1306 + "core-foundation-sys", 1307 + "iana-time-zone-haiku", 1308 + "js-sys", 1309 + "log", 1310 + "wasm-bindgen", 1311 + "windows-core", 1312 + ] 1313 + 1314 + [[package]] 1315 + name = "iana-time-zone-haiku" 1316 + version = "0.1.2" 1317 + source = "registry+https://github.com/rust-lang/crates.io-index" 1318 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1319 + dependencies = [ 1320 + "cc", 1321 + ] 1322 + 1323 + [[package]] 1324 + name = "icu_collections" 1325 + version = "2.0.0" 1326 + source = "registry+https://github.com/rust-lang/crates.io-index" 1327 + checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 1328 + dependencies = [ 1329 + "displaydoc", 1330 + "potential_utf", 1331 + "yoke", 1332 + "zerofrom", 1333 + "zerovec", 1334 + ] 1335 + 1336 + [[package]] 1337 + name = "icu_locale_core" 1338 + version = "2.0.0" 1339 + source = "registry+https://github.com/rust-lang/crates.io-index" 1340 + checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 1341 + dependencies = [ 1342 + "displaydoc", 1343 + "litemap", 1344 + "tinystr", 1345 + "writeable", 1346 + "zerovec", 1347 + ] 1348 + 1349 + [[package]] 1350 + name = "icu_normalizer" 1351 + version = "2.0.0" 1352 + source = "registry+https://github.com/rust-lang/crates.io-index" 1353 + checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 1354 + dependencies = [ 1355 + "displaydoc", 1356 + "icu_collections", 1357 + "icu_normalizer_data", 1358 + "icu_properties", 1359 + "icu_provider", 1360 + "smallvec", 1361 + "zerovec", 1362 + ] 1363 + 1364 + [[package]] 1365 + name = "icu_normalizer_data" 1366 + version = "2.0.0" 1367 + source = "registry+https://github.com/rust-lang/crates.io-index" 1368 + checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 1369 + 1370 + [[package]] 1371 + name = "icu_properties" 1372 + version = "2.0.1" 1373 + source = "registry+https://github.com/rust-lang/crates.io-index" 1374 + checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 1375 + dependencies = [ 1376 + "displaydoc", 1377 + "icu_collections", 1378 + "icu_locale_core", 1379 + "icu_properties_data", 1380 + "icu_provider", 1381 + "potential_utf", 1382 + "zerotrie", 1383 + "zerovec", 1384 + ] 1385 + 1386 + [[package]] 1387 + name = "icu_properties_data" 1388 + version = "2.0.1" 1389 + source = "registry+https://github.com/rust-lang/crates.io-index" 1390 + checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 1391 + 1392 + [[package]] 1393 + name = "icu_provider" 1394 + version = "2.0.0" 1395 + source = "registry+https://github.com/rust-lang/crates.io-index" 1396 + checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 1397 + dependencies = [ 1398 + "displaydoc", 1399 + "icu_locale_core", 1400 + "stable_deref_trait", 1401 + "tinystr", 1402 + "writeable", 1403 + "yoke", 1404 + "zerofrom", 1405 + "zerotrie", 1406 + "zerovec", 1407 + ] 1408 + 1409 + [[package]] 1410 + name = "idna" 1411 + version = "1.0.3" 1412 + source = "registry+https://github.com/rust-lang/crates.io-index" 1413 + checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 1414 + dependencies = [ 1415 + "idna_adapter", 1416 + "smallvec", 1417 + "utf8_iter", 1418 + ] 1419 + 1420 + [[package]] 1421 + name = "idna_adapter" 1422 + version = "1.2.1" 1423 + source = "registry+https://github.com/rust-lang/crates.io-index" 1424 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1425 + dependencies = [ 1426 + "icu_normalizer", 1427 + "icu_properties", 1428 + ] 1429 + 1430 + [[package]] 1431 + name = "igd-next" 1432 + version = "0.16.2" 1433 + source = "registry+https://github.com/rust-lang/crates.io-index" 1434 + checksum = "516893339c97f6011282d5825ac94fc1c7aad5cad26bdc2d0cee068c0bf97f97" 1435 + dependencies = [ 1436 + "async-trait", 1437 + "attohttpc", 1438 + "bytes", 1439 + "futures", 1440 + "http", 1441 + "http-body-util", 1442 + "hyper", 1443 + "hyper-util", 1444 + "log", 1445 + "rand 0.9.2", 1446 + "tokio", 1447 + "url", 1448 + "xmltree", 1449 + ] 1450 + 1451 + [[package]] 1452 + name = "indexmap" 1453 + version = "2.10.0" 1454 + source = "registry+https://github.com/rust-lang/crates.io-index" 1455 + checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 1456 + dependencies = [ 1457 + "equivalent", 1458 + "hashbrown", 1459 + ] 1460 + 1461 + [[package]] 1462 + name = "inout" 1463 + version = "0.1.4" 1464 + source = "registry+https://github.com/rust-lang/crates.io-index" 1465 + checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" 1466 + dependencies = [ 1467 + "generic-array", 1468 + ] 1469 + 1470 + [[package]] 1471 + name = "instant" 1472 + version = "0.1.13" 1473 + source = "registry+https://github.com/rust-lang/crates.io-index" 1474 + checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 1475 + dependencies = [ 1476 + "cfg-if", 1477 + "js-sys", 1478 + "wasm-bindgen", 1479 + "web-sys", 1480 + ] 1481 + 1482 + [[package]] 1483 + name = "io-uring" 1484 + version = "0.7.9" 1485 + source = "registry+https://github.com/rust-lang/crates.io-index" 1486 + checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" 1487 + dependencies = [ 1488 + "bitflags", 1489 + "cfg-if", 1490 + "libc", 1491 + ] 1492 + 1493 + [[package]] 1494 + name = "ipconfig" 1495 + version = "0.3.2" 1496 + source = "registry+https://github.com/rust-lang/crates.io-index" 1497 + checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" 1498 + dependencies = [ 1499 + "socket2 0.5.10", 1500 + "widestring", 1501 + "windows-sys 0.48.0", 1502 + "winreg", 1503 + ] 1504 + 1505 + [[package]] 1506 + name = "ipnet" 1507 + version = "2.11.0" 1508 + source = "registry+https://github.com/rust-lang/crates.io-index" 1509 + checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 1510 + 1511 + [[package]] 1512 + name = "iri-string" 1513 + version = "0.7.8" 1514 + source = "registry+https://github.com/rust-lang/crates.io-index" 1515 + checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 1516 + dependencies = [ 1517 + "memchr", 1518 + "serde", 1519 + ] 1520 + 1521 + [[package]] 1522 + name = "iroh" 1523 + version = "0.91.1" 1524 + source = "registry+https://github.com/rust-lang/crates.io-index" 1525 + checksum = "c6a98c47bb5f720edeb77be502a8acd238a3c0755f0b1ad865a716224d794a59" 1526 + dependencies = [ 1527 + "aead", 1528 + "backon", 1529 + "bytes", 1530 + "cfg_aliases", 1531 + "crypto_box", 1532 + "data-encoding", 1533 + "der", 1534 + "derive_more 2.0.1", 1535 + "ed25519-dalek", 1536 + "futures-buffered", 1537 + "futures-util", 1538 + "getrandom 0.3.3", 1539 + "hickory-resolver", 1540 + "http", 1541 + "igd-next", 1542 + "instant", 1543 + "iroh-base", 1544 + "iroh-metrics", 1545 + "iroh-quinn", 1546 + "iroh-quinn-proto", 1547 + "iroh-quinn-udp", 1548 + "iroh-relay", 1549 + "n0-future", 1550 + "n0-snafu", 1551 + "n0-watcher", 1552 + "nested_enum_utils", 1553 + "netdev", 1554 + "netwatch", 1555 + "pin-project", 1556 + "pkarr", 1557 + "portmapper", 1558 + "rand 0.8.5", 1559 + "reqwest", 1560 + "ring", 1561 + "rustls", 1562 + "rustls-pki-types", 1563 + "rustls-webpki", 1564 + "serde", 1565 + "smallvec", 1566 + "snafu", 1567 + "spki", 1568 + "strum", 1569 + "stun-rs", 1570 + "surge-ping", 1571 + "time", 1572 + "tokio", 1573 + "tokio-stream", 1574 + "tokio-util", 1575 + "tracing", 1576 + "url", 1577 + "wasm-bindgen-futures", 1578 + "webpki-roots 0.26.11", 1579 + "z32", 1580 + ] 1581 + 1582 + [[package]] 1583 + name = "iroh-base" 1584 + version = "0.91.1" 1585 + source = "registry+https://github.com/rust-lang/crates.io-index" 1586 + checksum = "78bde4e612191173e8ade55e3aa719044514edfff952292ffbf581be35cbb59c" 1587 + dependencies = [ 1588 + "curve25519-dalek", 1589 + "data-encoding", 1590 + "derive_more 2.0.1", 1591 + "ed25519-dalek", 1592 + "n0-snafu", 1593 + "nested_enum_utils", 1594 + "rand_core 0.6.4", 1595 + "serde", 1596 + "snafu", 1597 + "url", 1598 + ] 1599 + 1600 + [[package]] 1601 + name = "iroh-metrics" 1602 + version = "0.35.0" 1603 + source = "registry+https://github.com/rust-lang/crates.io-index" 1604 + checksum = "c8922c169f1b84d39d325c02ef1bbe1419d4de6e35f0403462b3c7e60cc19634" 1605 + dependencies = [ 1606 + "iroh-metrics-derive", 1607 + "itoa", 1608 + "postcard", 1609 + "serde", 1610 + "snafu", 1611 + "tracing", 1612 + ] 1613 + 1614 + [[package]] 1615 + name = "iroh-metrics-derive" 1616 + version = "0.2.0" 1617 + source = "registry+https://github.com/rust-lang/crates.io-index" 1618 + checksum = "8d12f5c45c4ed2436302a4e03cad9a0ad34b2962ad0c5791e1019c0ee30eeb09" 1619 + dependencies = [ 1620 + "heck", 1621 + "proc-macro2", 1622 + "quote", 1623 + "syn 2.0.104", 1624 + ] 1625 + 1626 + [[package]] 1627 + name = "iroh-quinn" 1628 + version = "0.14.0" 1629 + source = "registry+https://github.com/rust-lang/crates.io-index" 1630 + checksum = "0cde160ebee7aabede6ae887460cd303c8b809054224815addf1469d54a6fcf7" 1631 + dependencies = [ 1632 + "bytes", 1633 + "cfg_aliases", 1634 + "iroh-quinn-proto", 1635 + "iroh-quinn-udp", 1636 + "pin-project-lite", 1637 + "rustc-hash", 1638 + "rustls", 1639 + "socket2 0.5.10", 1640 + "thiserror 2.0.12", 1641 + "tokio", 1642 + "tracing", 1643 + "web-time", 1644 + ] 1645 + 1646 + [[package]] 1647 + name = "iroh-quinn-proto" 1648 + version = "0.13.0" 1649 + source = "registry+https://github.com/rust-lang/crates.io-index" 1650 + checksum = "929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535" 1651 + dependencies = [ 1652 + "bytes", 1653 + "getrandom 0.2.16", 1654 + "rand 0.8.5", 1655 + "ring", 1656 + "rustc-hash", 1657 + "rustls", 1658 + "rustls-pki-types", 1659 + "slab", 1660 + "thiserror 2.0.12", 1661 + "tinyvec", 1662 + "tracing", 1663 + "web-time", 1664 + ] 1665 + 1666 + [[package]] 1667 + name = "iroh-quinn-udp" 1668 + version = "0.5.7" 1669 + source = "registry+https://github.com/rust-lang/crates.io-index" 1670 + checksum = "c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973" 1671 + dependencies = [ 1672 + "cfg_aliases", 1673 + "libc", 1674 + "once_cell", 1675 + "socket2 0.5.10", 1676 + "tracing", 1677 + "windows-sys 0.59.0", 1678 + ] 1679 + 1680 + [[package]] 1681 + name = "iroh-relay" 1682 + version = "0.91.1" 1683 + source = "registry+https://github.com/rust-lang/crates.io-index" 1684 + checksum = "9f19e43de2cfc04748054e1cbf7854ae1e192ddc45a4adeae7be7076a8f1fd43" 1685 + dependencies = [ 1686 + "blake3", 1687 + "bytes", 1688 + "cfg_aliases", 1689 + "data-encoding", 1690 + "derive_more 2.0.1", 1691 + "getrandom 0.3.3", 1692 + "hickory-resolver", 1693 + "http", 1694 + "http-body-util", 1695 + "hyper", 1696 + "hyper-util", 1697 + "iroh-base", 1698 + "iroh-metrics", 1699 + "iroh-quinn", 1700 + "iroh-quinn-proto", 1701 + "lru", 1702 + "n0-future", 1703 + "n0-snafu", 1704 + "nested_enum_utils", 1705 + "num_enum", 1706 + "pin-project", 1707 + "pkarr", 1708 + "postcard", 1709 + "rand 0.8.5", 1710 + "reqwest", 1711 + "rustls", 1712 + "rustls-pki-types", 1713 + "rustls-webpki", 1714 + "serde", 1715 + "serde_bytes", 1716 + "sha1", 1717 + "snafu", 1718 + "strum", 1719 + "tokio", 1720 + "tokio-rustls", 1721 + "tokio-util", 1722 + "tokio-websockets", 1723 + "tracing", 1724 + "url", 1725 + "webpki-roots 0.26.11", 1726 + "ws_stream_wasm", 1727 + "z32", 1728 + ] 1729 + 1730 + [[package]] 1731 + name = "iroh-streamplace" 1732 + version = "0.1.0" 1733 + dependencies = [ 1734 + "iroh", 1735 + "uniffi", 1736 + ] 1737 + 1738 + [[package]] 1739 + name = "itoa" 1740 + version = "1.0.15" 1741 + source = "registry+https://github.com/rust-lang/crates.io-index" 1742 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1743 + 1744 + [[package]] 1745 + name = "js-sys" 1746 + version = "0.3.77" 1747 + source = "registry+https://github.com/rust-lang/crates.io-index" 1748 + checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 1749 + dependencies = [ 1750 + "once_cell", 1751 + "wasm-bindgen", 1752 + ] 1753 + 1754 + [[package]] 1755 + name = "lazy_static" 1756 + version = "1.5.0" 1757 + source = "registry+https://github.com/rust-lang/crates.io-index" 1758 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1759 + 1760 + [[package]] 1761 + name = "libc" 1762 + version = "0.2.174" 1763 + source = "registry+https://github.com/rust-lang/crates.io-index" 1764 + checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" 1765 + 1766 + [[package]] 1767 + name = "litemap" 1768 + version = "0.8.0" 1769 + source = "registry+https://github.com/rust-lang/crates.io-index" 1770 + checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 1771 + 1772 + [[package]] 1773 + name = "litrs" 1774 + version = "0.4.2" 1775 + source = "registry+https://github.com/rust-lang/crates.io-index" 1776 + checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" 1777 + 1778 + [[package]] 1779 + name = "lock_api" 1780 + version = "0.4.13" 1781 + source = "registry+https://github.com/rust-lang/crates.io-index" 1782 + checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 1783 + dependencies = [ 1784 + "autocfg", 1785 + "scopeguard", 1786 + ] 1787 + 1788 + [[package]] 1789 + name = "log" 1790 + version = "0.4.27" 1791 + source = "registry+https://github.com/rust-lang/crates.io-index" 1792 + checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1793 + 1794 + [[package]] 1795 + name = "loom" 1796 + version = "0.7.2" 1797 + source = "registry+https://github.com/rust-lang/crates.io-index" 1798 + checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" 1799 + dependencies = [ 1800 + "cfg-if", 1801 + "generator", 1802 + "scoped-tls", 1803 + "tracing", 1804 + "tracing-subscriber", 1805 + ] 1806 + 1807 + [[package]] 1808 + name = "lru" 1809 + version = "0.13.0" 1810 + source = "registry+https://github.com/rust-lang/crates.io-index" 1811 + checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" 1812 + dependencies = [ 1813 + "hashbrown", 1814 + ] 1815 + 1816 + [[package]] 1817 + name = "lru-slab" 1818 + version = "0.1.2" 1819 + source = "registry+https://github.com/rust-lang/crates.io-index" 1820 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 1821 + 1822 + [[package]] 1823 + name = "matchers" 1824 + version = "0.1.0" 1825 + source = "registry+https://github.com/rust-lang/crates.io-index" 1826 + checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 1827 + dependencies = [ 1828 + "regex-automata 0.1.10", 1829 + ] 1830 + 1831 + [[package]] 1832 + name = "md5" 1833 + version = "0.7.0" 1834 + source = "registry+https://github.com/rust-lang/crates.io-index" 1835 + checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" 1836 + 1837 + [[package]] 1838 + name = "memchr" 1839 + version = "2.7.5" 1840 + source = "registry+https://github.com/rust-lang/crates.io-index" 1841 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 1842 + 1843 + [[package]] 1844 + name = "mime" 1845 + version = "0.3.17" 1846 + source = "registry+https://github.com/rust-lang/crates.io-index" 1847 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1848 + 1849 + [[package]] 1850 + name = "mime_guess" 1851 + version = "2.0.5" 1852 + source = "registry+https://github.com/rust-lang/crates.io-index" 1853 + checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 1854 + dependencies = [ 1855 + "mime", 1856 + "unicase", 1857 + ] 1858 + 1859 + [[package]] 1860 + name = "minimal-lexical" 1861 + version = "0.2.1" 1862 + source = "registry+https://github.com/rust-lang/crates.io-index" 1863 + checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1864 + 1865 + [[package]] 1866 + name = "miniz_oxide" 1867 + version = "0.8.9" 1868 + source = "registry+https://github.com/rust-lang/crates.io-index" 1869 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1870 + dependencies = [ 1871 + "adler2", 1872 + ] 1873 + 1874 + [[package]] 1875 + name = "mio" 1876 + version = "1.0.4" 1877 + source = "registry+https://github.com/rust-lang/crates.io-index" 1878 + checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 1879 + dependencies = [ 1880 + "libc", 1881 + "wasi 0.11.1+wasi-snapshot-preview1", 1882 + "windows-sys 0.59.0", 1883 + ] 1884 + 1885 + [[package]] 1886 + name = "moka" 1887 + version = "0.12.10" 1888 + source = "registry+https://github.com/rust-lang/crates.io-index" 1889 + checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" 1890 + dependencies = [ 1891 + "crossbeam-channel", 1892 + "crossbeam-epoch", 1893 + "crossbeam-utils", 1894 + "loom", 1895 + "parking_lot", 1896 + "portable-atomic", 1897 + "rustc_version", 1898 + "smallvec", 1899 + "tagptr", 1900 + "thiserror 1.0.69", 1901 + "uuid", 1902 + ] 1903 + 1904 + [[package]] 1905 + name = "n0-future" 1906 + version = "0.1.3" 1907 + source = "registry+https://github.com/rust-lang/crates.io-index" 1908 + checksum = "7bb0e5d99e681ab3c938842b96fcb41bf8a7bb4bfdb11ccbd653a7e83e06c794" 1909 + dependencies = [ 1910 + "cfg_aliases", 1911 + "derive_more 1.0.0", 1912 + "futures-buffered", 1913 + "futures-lite", 1914 + "futures-util", 1915 + "js-sys", 1916 + "pin-project", 1917 + "send_wrapper", 1918 + "tokio", 1919 + "tokio-util", 1920 + "wasm-bindgen", 1921 + "wasm-bindgen-futures", 1922 + "web-time", 1923 + ] 1924 + 1925 + [[package]] 1926 + name = "n0-snafu" 1927 + version = "0.2.1" 1928 + source = "registry+https://github.com/rust-lang/crates.io-index" 1929 + checksum = "c4fed465ff57041f29db78a9adc8864296ef93c6c16029f9e192dc303404ebd0" 1930 + dependencies = [ 1931 + "anyhow", 1932 + "btparse", 1933 + "color-backtrace", 1934 + "snafu", 1935 + "tracing-error", 1936 + ] 1937 + 1938 + [[package]] 1939 + name = "n0-watcher" 1940 + version = "0.3.0" 1941 + source = "registry+https://github.com/rust-lang/crates.io-index" 1942 + checksum = "c31462392a10d5ada4b945e840cbec2d5f3fee752b96c4b33eb41414d8f45c2a" 1943 + dependencies = [ 1944 + "derive_more 1.0.0", 1945 + "n0-future", 1946 + "snafu", 1947 + ] 1948 + 1949 + [[package]] 1950 + name = "nested_enum_utils" 1951 + version = "0.2.2" 1952 + source = "registry+https://github.com/rust-lang/crates.io-index" 1953 + checksum = "43fa9161ed44d30e9702fe42bd78693bceac0fed02f647da749f36109023d3a3" 1954 + dependencies = [ 1955 + "proc-macro-crate", 1956 + "proc-macro2", 1957 + "quote", 1958 + "syn 1.0.109", 1959 + ] 1960 + 1961 + [[package]] 1962 + name = "netdev" 1963 + version = "0.36.0" 1964 + source = "registry+https://github.com/rust-lang/crates.io-index" 1965 + checksum = "862209dce034f82a44c95ce2b5183730d616f2a68746b9c1959aa2572e77c0a1" 1966 + dependencies = [ 1967 + "dlopen2", 1968 + "ipnet", 1969 + "libc", 1970 + "netlink-packet-core", 1971 + "netlink-packet-route 0.22.0", 1972 + "netlink-sys", 1973 + "once_cell", 1974 + "system-configuration", 1975 + "windows-sys 0.59.0", 1976 + ] 1977 + 1978 + [[package]] 1979 + name = "netlink-packet-core" 1980 + version = "0.7.0" 1981 + source = "registry+https://github.com/rust-lang/crates.io-index" 1982 + checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" 1983 + dependencies = [ 1984 + "anyhow", 1985 + "byteorder", 1986 + "netlink-packet-utils", 1987 + ] 1988 + 1989 + [[package]] 1990 + name = "netlink-packet-route" 1991 + version = "0.22.0" 1992 + source = "registry+https://github.com/rust-lang/crates.io-index" 1993 + checksum = "fc0e7987b28514adf555dc1f9a5c30dfc3e50750bbaffb1aec41ca7b23dcd8e4" 1994 + dependencies = [ 1995 + "anyhow", 1996 + "bitflags", 1997 + "byteorder", 1998 + "libc", 1999 + "log", 2000 + "netlink-packet-core", 2001 + "netlink-packet-utils", 2002 + ] 2003 + 2004 + [[package]] 2005 + name = "netlink-packet-route" 2006 + version = "0.24.0" 2007 + source = "registry+https://github.com/rust-lang/crates.io-index" 2008 + checksum = "56d83370a96813d7c977f8b63054f1162df6e5784f1c598d689236564fb5a6f2" 2009 + dependencies = [ 2010 + "anyhow", 2011 + "bitflags", 2012 + "byteorder", 2013 + "libc", 2014 + "log", 2015 + "netlink-packet-core", 2016 + "netlink-packet-utils", 2017 + ] 2018 + 2019 + [[package]] 2020 + name = "netlink-packet-utils" 2021 + version = "0.5.2" 2022 + source = "registry+https://github.com/rust-lang/crates.io-index" 2023 + checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" 2024 + dependencies = [ 2025 + "anyhow", 2026 + "byteorder", 2027 + "paste", 2028 + "thiserror 1.0.69", 2029 + ] 2030 + 2031 + [[package]] 2032 + name = "netlink-proto" 2033 + version = "0.11.5" 2034 + source = "registry+https://github.com/rust-lang/crates.io-index" 2035 + checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" 2036 + dependencies = [ 2037 + "bytes", 2038 + "futures", 2039 + "log", 2040 + "netlink-packet-core", 2041 + "netlink-sys", 2042 + "thiserror 2.0.12", 2043 + ] 2044 + 2045 + [[package]] 2046 + name = "netlink-sys" 2047 + version = "0.8.7" 2048 + source = "registry+https://github.com/rust-lang/crates.io-index" 2049 + checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" 2050 + dependencies = [ 2051 + "bytes", 2052 + "futures", 2053 + "libc", 2054 + "log", 2055 + "tokio", 2056 + ] 2057 + 2058 + [[package]] 2059 + name = "netwatch" 2060 + version = "0.8.0" 2061 + source = "registry+https://github.com/rust-lang/crates.io-index" 2062 + checksum = "8901dbb408894af3df3fc51420ba0c6faf3a7d896077b797c39b7001e2f787bd" 2063 + dependencies = [ 2064 + "atomic-waker", 2065 + "bytes", 2066 + "cfg_aliases", 2067 + "derive_more 2.0.1", 2068 + "iroh-quinn-udp", 2069 + "js-sys", 2070 + "libc", 2071 + "n0-future", 2072 + "n0-watcher", 2073 + "nested_enum_utils", 2074 + "netdev", 2075 + "netlink-packet-core", 2076 + "netlink-packet-route 0.24.0", 2077 + "netlink-proto", 2078 + "netlink-sys", 2079 + "pin-project-lite", 2080 + "serde", 2081 + "snafu", 2082 + "socket2 0.6.0", 2083 + "time", 2084 + "tokio", 2085 + "tokio-util", 2086 + "tracing", 2087 + "web-sys", 2088 + "windows", 2089 + "windows-result", 2090 + "wmi", 2091 + ] 2092 + 2093 + [[package]] 2094 + name = "no-std-net" 2095 + version = "0.6.0" 2096 + source = "registry+https://github.com/rust-lang/crates.io-index" 2097 + checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" 2098 + 2099 + [[package]] 2100 + name = "nom" 2101 + version = "7.1.3" 2102 + source = "registry+https://github.com/rust-lang/crates.io-index" 2103 + checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2104 + dependencies = [ 2105 + "memchr", 2106 + "minimal-lexical", 2107 + ] 2108 + 2109 + [[package]] 2110 + name = "ntimestamp" 2111 + version = "1.0.0" 2112 + source = "registry+https://github.com/rust-lang/crates.io-index" 2113 + checksum = "c50f94c405726d3e0095e89e72f75ce7f6587b94a8bd8dc8054b73f65c0fd68c" 2114 + dependencies = [ 2115 + "base32", 2116 + "document-features", 2117 + "getrandom 0.2.16", 2118 + "httpdate", 2119 + "js-sys", 2120 + "once_cell", 2121 + "serde", 2122 + ] 2123 + 2124 + [[package]] 2125 + name = "nu-ansi-term" 2126 + version = "0.46.0" 2127 + source = "registry+https://github.com/rust-lang/crates.io-index" 2128 + checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 2129 + dependencies = [ 2130 + "overload", 2131 + "winapi", 2132 + ] 2133 + 2134 + [[package]] 2135 + name = "num-conv" 2136 + version = "0.1.0" 2137 + source = "registry+https://github.com/rust-lang/crates.io-index" 2138 + checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 2139 + 2140 + [[package]] 2141 + name = "num-traits" 2142 + version = "0.2.19" 2143 + source = "registry+https://github.com/rust-lang/crates.io-index" 2144 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2145 + dependencies = [ 2146 + "autocfg", 2147 + ] 2148 + 2149 + [[package]] 2150 + name = "num_enum" 2151 + version = "0.7.4" 2152 + source = "registry+https://github.com/rust-lang/crates.io-index" 2153 + checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" 2154 + dependencies = [ 2155 + "num_enum_derive", 2156 + "rustversion", 2157 + ] 2158 + 2159 + [[package]] 2160 + name = "num_enum_derive" 2161 + version = "0.7.4" 2162 + source = "registry+https://github.com/rust-lang/crates.io-index" 2163 + checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" 2164 + dependencies = [ 2165 + "proc-macro-crate", 2166 + "proc-macro2", 2167 + "quote", 2168 + "syn 2.0.104", 2169 + ] 2170 + 2171 + [[package]] 2172 + name = "object" 2173 + version = "0.36.7" 2174 + source = "registry+https://github.com/rust-lang/crates.io-index" 2175 + checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 2176 + dependencies = [ 2177 + "memchr", 2178 + ] 2179 + 2180 + [[package]] 2181 + name = "once_cell" 2182 + version = "1.21.3" 2183 + source = "registry+https://github.com/rust-lang/crates.io-index" 2184 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 2185 + dependencies = [ 2186 + "critical-section", 2187 + "portable-atomic", 2188 + ] 2189 + 2190 + [[package]] 2191 + name = "opaque-debug" 2192 + version = "0.3.1" 2193 + source = "registry+https://github.com/rust-lang/crates.io-index" 2194 + checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 2195 + 2196 + [[package]] 2197 + name = "overload" 2198 + version = "0.1.1" 2199 + source = "registry+https://github.com/rust-lang/crates.io-index" 2200 + checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 2201 + 2202 + [[package]] 2203 + name = "parking" 2204 + version = "2.2.1" 2205 + source = "registry+https://github.com/rust-lang/crates.io-index" 2206 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 2207 + 2208 + [[package]] 2209 + name = "parking_lot" 2210 + version = "0.12.4" 2211 + source = "registry+https://github.com/rust-lang/crates.io-index" 2212 + checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 2213 + dependencies = [ 2214 + "lock_api", 2215 + "parking_lot_core", 2216 + ] 2217 + 2218 + [[package]] 2219 + name = "parking_lot_core" 2220 + version = "0.9.11" 2221 + source = "registry+https://github.com/rust-lang/crates.io-index" 2222 + checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 2223 + dependencies = [ 2224 + "cfg-if", 2225 + "libc", 2226 + "redox_syscall", 2227 + "smallvec", 2228 + "windows-targets 0.52.6", 2229 + ] 2230 + 2231 + [[package]] 2232 + name = "paste" 2233 + version = "1.0.15" 2234 + source = "registry+https://github.com/rust-lang/crates.io-index" 2235 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 2236 + 2237 + [[package]] 2238 + name = "pem-rfc7468" 2239 + version = "0.7.0" 2240 + source = "registry+https://github.com/rust-lang/crates.io-index" 2241 + checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 2242 + dependencies = [ 2243 + "base64ct", 2244 + ] 2245 + 2246 + [[package]] 2247 + name = "percent-encoding" 2248 + version = "2.3.1" 2249 + source = "registry+https://github.com/rust-lang/crates.io-index" 2250 + checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2251 + 2252 + [[package]] 2253 + name = "pest" 2254 + version = "2.8.1" 2255 + source = "registry+https://github.com/rust-lang/crates.io-index" 2256 + checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" 2257 + dependencies = [ 2258 + "memchr", 2259 + "thiserror 2.0.12", 2260 + "ucd-trie", 2261 + ] 2262 + 2263 + [[package]] 2264 + name = "pest_derive" 2265 + version = "2.8.1" 2266 + source = "registry+https://github.com/rust-lang/crates.io-index" 2267 + checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" 2268 + dependencies = [ 2269 + "pest", 2270 + "pest_generator", 2271 + ] 2272 + 2273 + [[package]] 2274 + name = "pest_generator" 2275 + version = "2.8.1" 2276 + source = "registry+https://github.com/rust-lang/crates.io-index" 2277 + checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" 2278 + dependencies = [ 2279 + "pest", 2280 + "pest_meta", 2281 + "proc-macro2", 2282 + "quote", 2283 + "syn 2.0.104", 2284 + ] 2285 + 2286 + [[package]] 2287 + name = "pest_meta" 2288 + version = "2.8.1" 2289 + source = "registry+https://github.com/rust-lang/crates.io-index" 2290 + checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" 2291 + dependencies = [ 2292 + "pest", 2293 + "sha2", 2294 + ] 2295 + 2296 + [[package]] 2297 + name = "pharos" 2298 + version = "0.5.3" 2299 + source = "registry+https://github.com/rust-lang/crates.io-index" 2300 + checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" 2301 + dependencies = [ 2302 + "futures", 2303 + "rustc_version", 2304 + ] 2305 + 2306 + [[package]] 2307 + name = "pin-project" 2308 + version = "1.1.10" 2309 + source = "registry+https://github.com/rust-lang/crates.io-index" 2310 + checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 2311 + dependencies = [ 2312 + "pin-project-internal", 2313 + ] 2314 + 2315 + [[package]] 2316 + name = "pin-project-internal" 2317 + version = "1.1.10" 2318 + source = "registry+https://github.com/rust-lang/crates.io-index" 2319 + checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 2320 + dependencies = [ 2321 + "proc-macro2", 2322 + "quote", 2323 + "syn 2.0.104", 2324 + ] 2325 + 2326 + [[package]] 2327 + name = "pin-project-lite" 2328 + version = "0.2.16" 2329 + source = "registry+https://github.com/rust-lang/crates.io-index" 2330 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 2331 + 2332 + [[package]] 2333 + name = "pin-utils" 2334 + version = "0.1.0" 2335 + source = "registry+https://github.com/rust-lang/crates.io-index" 2336 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2337 + 2338 + [[package]] 2339 + name = "pkarr" 2340 + version = "3.10.0" 2341 + source = "registry+https://github.com/rust-lang/crates.io-index" 2342 + checksum = "5eb1f2f4311bae1da11f930c804c724c9914cf55ae51a9ee0440fc98826984f7" 2343 + dependencies = [ 2344 + "async-compat", 2345 + "base32", 2346 + "bytes", 2347 + "cfg_aliases", 2348 + "document-features", 2349 + "dyn-clone", 2350 + "ed25519-dalek", 2351 + "futures-buffered", 2352 + "futures-lite", 2353 + "getrandom 0.2.16", 2354 + "log", 2355 + "lru", 2356 + "ntimestamp", 2357 + "reqwest", 2358 + "self_cell", 2359 + "serde", 2360 + "sha1_smol", 2361 + "simple-dns", 2362 + "thiserror 2.0.12", 2363 + "tokio", 2364 + "tracing", 2365 + "url", 2366 + "wasm-bindgen-futures", 2367 + ] 2368 + 2369 + [[package]] 2370 + name = "pkcs8" 2371 + version = "0.10.2" 2372 + source = "registry+https://github.com/rust-lang/crates.io-index" 2373 + checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 2374 + dependencies = [ 2375 + "der", 2376 + "spki", 2377 + ] 2378 + 2379 + [[package]] 2380 + name = "plain" 2381 + version = "0.2.3" 2382 + source = "registry+https://github.com/rust-lang/crates.io-index" 2383 + checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 2384 + 2385 + [[package]] 2386 + name = "pnet_base" 2387 + version = "0.34.0" 2388 + source = "registry+https://github.com/rust-lang/crates.io-index" 2389 + checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c" 2390 + dependencies = [ 2391 + "no-std-net", 2392 + ] 2393 + 2394 + [[package]] 2395 + name = "pnet_macros" 2396 + version = "0.34.0" 2397 + source = "registry+https://github.com/rust-lang/crates.io-index" 2398 + checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804" 2399 + dependencies = [ 2400 + "proc-macro2", 2401 + "quote", 2402 + "regex", 2403 + "syn 2.0.104", 2404 + ] 2405 + 2406 + [[package]] 2407 + name = "pnet_macros_support" 2408 + version = "0.34.0" 2409 + source = "registry+https://github.com/rust-lang/crates.io-index" 2410 + checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56" 2411 + dependencies = [ 2412 + "pnet_base", 2413 + ] 2414 + 2415 + [[package]] 2416 + name = "pnet_packet" 2417 + version = "0.34.0" 2418 + source = "registry+https://github.com/rust-lang/crates.io-index" 2419 + checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba" 2420 + dependencies = [ 2421 + "glob", 2422 + "pnet_base", 2423 + "pnet_macros", 2424 + "pnet_macros_support", 2425 + ] 2426 + 2427 + [[package]] 2428 + name = "poly1305" 2429 + version = "0.8.0" 2430 + source = "registry+https://github.com/rust-lang/crates.io-index" 2431 + checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" 2432 + dependencies = [ 2433 + "cpufeatures", 2434 + "opaque-debug", 2435 + "universal-hash", 2436 + ] 2437 + 2438 + [[package]] 2439 + name = "portable-atomic" 2440 + version = "1.11.1" 2441 + source = "registry+https://github.com/rust-lang/crates.io-index" 2442 + checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 2443 + 2444 + [[package]] 2445 + name = "portmapper" 2446 + version = "0.8.0" 2447 + source = "registry+https://github.com/rust-lang/crates.io-index" 2448 + checksum = "62f1975debe62a70557e42b9ff9466e4890cf9d3d156d296408a711f1c5f642b" 2449 + dependencies = [ 2450 + "base64", 2451 + "bytes", 2452 + "derive_more 2.0.1", 2453 + "futures-lite", 2454 + "futures-util", 2455 + "hyper-util", 2456 + "igd-next", 2457 + "iroh-metrics", 2458 + "libc", 2459 + "nested_enum_utils", 2460 + "netwatch", 2461 + "num_enum", 2462 + "rand 0.9.2", 2463 + "serde", 2464 + "smallvec", 2465 + "snafu", 2466 + "socket2 0.6.0", 2467 + "time", 2468 + "tokio", 2469 + "tokio-util", 2470 + "tower-layer", 2471 + "tracing", 2472 + "url", 2473 + ] 2474 + 2475 + [[package]] 2476 + name = "postcard" 2477 + version = "1.1.3" 2478 + source = "registry+https://github.com/rust-lang/crates.io-index" 2479 + checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" 2480 + dependencies = [ 2481 + "cobs", 2482 + "embedded-io 0.4.0", 2483 + "embedded-io 0.6.1", 2484 + "heapless", 2485 + "postcard-derive", 2486 + "serde", 2487 + ] 2488 + 2489 + [[package]] 2490 + name = "postcard-derive" 2491 + version = "0.2.2" 2492 + source = "registry+https://github.com/rust-lang/crates.io-index" 2493 + checksum = "e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb" 2494 + dependencies = [ 2495 + "proc-macro2", 2496 + "quote", 2497 + "syn 2.0.104", 2498 + ] 2499 + 2500 + [[package]] 2501 + name = "potential_utf" 2502 + version = "0.1.2" 2503 + source = "registry+https://github.com/rust-lang/crates.io-index" 2504 + checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 2505 + dependencies = [ 2506 + "zerovec", 2507 + ] 2508 + 2509 + [[package]] 2510 + name = "powerfmt" 2511 + version = "0.2.0" 2512 + source = "registry+https://github.com/rust-lang/crates.io-index" 2513 + checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2514 + 2515 + [[package]] 2516 + name = "ppv-lite86" 2517 + version = "0.2.21" 2518 + source = "registry+https://github.com/rust-lang/crates.io-index" 2519 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 2520 + dependencies = [ 2521 + "zerocopy", 2522 + ] 2523 + 2524 + [[package]] 2525 + name = "precis-core" 2526 + version = "0.1.11" 2527 + source = "registry+https://github.com/rust-lang/crates.io-index" 2528 + checksum = "9c2e7b31f132e0c6f8682cfb7bf4a5340dbe925b7986618d0826a56dfe0c8e56" 2529 + dependencies = [ 2530 + "precis-tools", 2531 + "ucd-parse", 2532 + "unicode-normalization", 2533 + ] 2534 + 2535 + [[package]] 2536 + name = "precis-profiles" 2537 + version = "0.1.12" 2538 + source = "registry+https://github.com/rust-lang/crates.io-index" 2539 + checksum = "dc4f67f78f50388f03494794766ba824a704db16fb5d400fe8d545fa7bc0d3f1" 2540 + dependencies = [ 2541 + "lazy_static", 2542 + "precis-core", 2543 + "precis-tools", 2544 + "unicode-normalization", 2545 + ] 2546 + 2547 + [[package]] 2548 + name = "precis-tools" 2549 + version = "0.1.9" 2550 + source = "registry+https://github.com/rust-lang/crates.io-index" 2551 + checksum = "6cc1eb2d5887ac7bfd2c0b745764db89edb84b856e4214e204ef48ef96d10c4a" 2552 + dependencies = [ 2553 + "lazy_static", 2554 + "regex", 2555 + "ucd-parse", 2556 + ] 2557 + 2558 + [[package]] 2559 + name = "proc-macro-crate" 2560 + version = "3.3.0" 2561 + source = "registry+https://github.com/rust-lang/crates.io-index" 2562 + checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" 2563 + dependencies = [ 2564 + "toml_edit", 2565 + ] 2566 + 2567 + [[package]] 2568 + name = "proc-macro2" 2569 + version = "1.0.95" 2570 + source = "registry+https://github.com/rust-lang/crates.io-index" 2571 + checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 2572 + dependencies = [ 2573 + "unicode-ident", 2574 + ] 2575 + 2576 + [[package]] 2577 + name = "quinn" 2578 + version = "0.11.8" 2579 + source = "registry+https://github.com/rust-lang/crates.io-index" 2580 + checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" 2581 + dependencies = [ 2582 + "bytes", 2583 + "cfg_aliases", 2584 + "pin-project-lite", 2585 + "quinn-proto", 2586 + "quinn-udp", 2587 + "rustc-hash", 2588 + "rustls", 2589 + "socket2 0.5.10", 2590 + "thiserror 2.0.12", 2591 + "tokio", 2592 + "tracing", 2593 + "web-time", 2594 + ] 2595 + 2596 + [[package]] 2597 + name = "quinn-proto" 2598 + version = "0.11.12" 2599 + source = "registry+https://github.com/rust-lang/crates.io-index" 2600 + checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" 2601 + dependencies = [ 2602 + "bytes", 2603 + "getrandom 0.3.3", 2604 + "lru-slab", 2605 + "rand 0.9.2", 2606 + "ring", 2607 + "rustc-hash", 2608 + "rustls", 2609 + "rustls-pki-types", 2610 + "slab", 2611 + "thiserror 2.0.12", 2612 + "tinyvec", 2613 + "tracing", 2614 + "web-time", 2615 + ] 2616 + 2617 + [[package]] 2618 + name = "quinn-udp" 2619 + version = "0.5.13" 2620 + source = "registry+https://github.com/rust-lang/crates.io-index" 2621 + checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" 2622 + dependencies = [ 2623 + "cfg_aliases", 2624 + "libc", 2625 + "once_cell", 2626 + "socket2 0.5.10", 2627 + "tracing", 2628 + "windows-sys 0.59.0", 2629 + ] 2630 + 2631 + [[package]] 2632 + name = "quote" 2633 + version = "1.0.40" 2634 + source = "registry+https://github.com/rust-lang/crates.io-index" 2635 + checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 2636 + dependencies = [ 2637 + "proc-macro2", 2638 + ] 2639 + 2640 + [[package]] 2641 + name = "quoted-string-parser" 2642 + version = "0.1.0" 2643 + source = "registry+https://github.com/rust-lang/crates.io-index" 2644 + checksum = "0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9" 2645 + dependencies = [ 2646 + "pest", 2647 + "pest_derive", 2648 + ] 2649 + 2650 + [[package]] 2651 + name = "r-efi" 2652 + version = "5.3.0" 2653 + source = "registry+https://github.com/rust-lang/crates.io-index" 2654 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 2655 + 2656 + [[package]] 2657 + name = "rand" 2658 + version = "0.8.5" 2659 + source = "registry+https://github.com/rust-lang/crates.io-index" 2660 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2661 + dependencies = [ 2662 + "libc", 2663 + "rand_chacha 0.3.1", 2664 + "rand_core 0.6.4", 2665 + ] 2666 + 2667 + [[package]] 2668 + name = "rand" 2669 + version = "0.9.2" 2670 + source = "registry+https://github.com/rust-lang/crates.io-index" 2671 + checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 2672 + dependencies = [ 2673 + "rand_chacha 0.9.0", 2674 + "rand_core 0.9.3", 2675 + ] 2676 + 2677 + [[package]] 2678 + name = "rand_chacha" 2679 + version = "0.3.1" 2680 + source = "registry+https://github.com/rust-lang/crates.io-index" 2681 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2682 + dependencies = [ 2683 + "ppv-lite86", 2684 + "rand_core 0.6.4", 2685 + ] 2686 + 2687 + [[package]] 2688 + name = "rand_chacha" 2689 + version = "0.9.0" 2690 + source = "registry+https://github.com/rust-lang/crates.io-index" 2691 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 2692 + dependencies = [ 2693 + "ppv-lite86", 2694 + "rand_core 0.9.3", 2695 + ] 2696 + 2697 + [[package]] 2698 + name = "rand_core" 2699 + version = "0.6.4" 2700 + source = "registry+https://github.com/rust-lang/crates.io-index" 2701 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2702 + dependencies = [ 2703 + "getrandom 0.2.16", 2704 + ] 2705 + 2706 + [[package]] 2707 + name = "rand_core" 2708 + version = "0.9.3" 2709 + source = "registry+https://github.com/rust-lang/crates.io-index" 2710 + checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 2711 + dependencies = [ 2712 + "getrandom 0.3.3", 2713 + ] 2714 + 2715 + [[package]] 2716 + name = "redox_syscall" 2717 + version = "0.5.17" 2718 + source = "registry+https://github.com/rust-lang/crates.io-index" 2719 + checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 2720 + dependencies = [ 2721 + "bitflags", 2722 + ] 2723 + 2724 + [[package]] 2725 + name = "regex" 2726 + version = "1.11.1" 2727 + source = "registry+https://github.com/rust-lang/crates.io-index" 2728 + checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 2729 + dependencies = [ 2730 + "aho-corasick", 2731 + "memchr", 2732 + "regex-automata 0.4.9", 2733 + "regex-syntax 0.8.5", 2734 + ] 2735 + 2736 + [[package]] 2737 + name = "regex-automata" 2738 + version = "0.1.10" 2739 + source = "registry+https://github.com/rust-lang/crates.io-index" 2740 + checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 2741 + dependencies = [ 2742 + "regex-syntax 0.6.29", 2743 + ] 2744 + 2745 + [[package]] 2746 + name = "regex-automata" 2747 + version = "0.4.9" 2748 + source = "registry+https://github.com/rust-lang/crates.io-index" 2749 + checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 2750 + dependencies = [ 2751 + "aho-corasick", 2752 + "memchr", 2753 + "regex-syntax 0.8.5", 2754 + ] 2755 + 2756 + [[package]] 2757 + name = "regex-lite" 2758 + version = "0.1.6" 2759 + source = "registry+https://github.com/rust-lang/crates.io-index" 2760 + checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" 2761 + 2762 + [[package]] 2763 + name = "regex-syntax" 2764 + version = "0.6.29" 2765 + source = "registry+https://github.com/rust-lang/crates.io-index" 2766 + checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 2767 + 2768 + [[package]] 2769 + name = "regex-syntax" 2770 + version = "0.8.5" 2771 + source = "registry+https://github.com/rust-lang/crates.io-index" 2772 + checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 2773 + 2774 + [[package]] 2775 + name = "reqwest" 2776 + version = "0.12.22" 2777 + source = "registry+https://github.com/rust-lang/crates.io-index" 2778 + checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" 2779 + dependencies = [ 2780 + "base64", 2781 + "bytes", 2782 + "futures-core", 2783 + "futures-util", 2784 + "http", 2785 + "http-body", 2786 + "http-body-util", 2787 + "hyper", 2788 + "hyper-rustls", 2789 + "hyper-util", 2790 + "js-sys", 2791 + "log", 2792 + "percent-encoding", 2793 + "pin-project-lite", 2794 + "quinn", 2795 + "rustls", 2796 + "rustls-pki-types", 2797 + "serde", 2798 + "serde_json", 2799 + "serde_urlencoded", 2800 + "sync_wrapper", 2801 + "tokio", 2802 + "tokio-rustls", 2803 + "tokio-util", 2804 + "tower", 2805 + "tower-http", 2806 + "tower-service", 2807 + "url", 2808 + "wasm-bindgen", 2809 + "wasm-bindgen-futures", 2810 + "wasm-streams", 2811 + "web-sys", 2812 + "webpki-roots 1.0.2", 2813 + ] 2814 + 2815 + [[package]] 2816 + name = "resolv-conf" 2817 + version = "0.7.4" 2818 + source = "registry+https://github.com/rust-lang/crates.io-index" 2819 + checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" 2820 + 2821 + [[package]] 2822 + name = "ring" 2823 + version = "0.17.14" 2824 + source = "registry+https://github.com/rust-lang/crates.io-index" 2825 + checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 2826 + dependencies = [ 2827 + "cc", 2828 + "cfg-if", 2829 + "getrandom 0.2.16", 2830 + "libc", 2831 + "untrusted", 2832 + "windows-sys 0.52.0", 2833 + ] 2834 + 2835 + [[package]] 2836 + name = "rustc-demangle" 2837 + version = "0.1.26" 2838 + source = "registry+https://github.com/rust-lang/crates.io-index" 2839 + checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 2840 + 2841 + [[package]] 2842 + name = "rustc-hash" 2843 + version = "2.1.1" 2844 + source = "registry+https://github.com/rust-lang/crates.io-index" 2845 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 2846 + 2847 + [[package]] 2848 + name = "rustc_version" 2849 + version = "0.4.1" 2850 + source = "registry+https://github.com/rust-lang/crates.io-index" 2851 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2852 + dependencies = [ 2853 + "semver", 2854 + ] 2855 + 2856 + [[package]] 2857 + name = "rustls" 2858 + version = "0.23.31" 2859 + source = "registry+https://github.com/rust-lang/crates.io-index" 2860 + checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" 2861 + dependencies = [ 2862 + "log", 2863 + "once_cell", 2864 + "ring", 2865 + "rustls-pki-types", 2866 + "rustls-webpki", 2867 + "subtle", 2868 + "zeroize", 2869 + ] 2870 + 2871 + [[package]] 2872 + name = "rustls-pki-types" 2873 + version = "1.12.0" 2874 + source = "registry+https://github.com/rust-lang/crates.io-index" 2875 + checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 2876 + dependencies = [ 2877 + "web-time", 2878 + "zeroize", 2879 + ] 2880 + 2881 + [[package]] 2882 + name = "rustls-webpki" 2883 + version = "0.103.4" 2884 + source = "registry+https://github.com/rust-lang/crates.io-index" 2885 + checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" 2886 + dependencies = [ 2887 + "ring", 2888 + "rustls-pki-types", 2889 + "untrusted", 2890 + ] 2891 + 2892 + [[package]] 2893 + name = "rustversion" 2894 + version = "1.0.21" 2895 + source = "registry+https://github.com/rust-lang/crates.io-index" 2896 + checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" 2897 + 2898 + [[package]] 2899 + name = "ryu" 2900 + version = "1.0.20" 2901 + source = "registry+https://github.com/rust-lang/crates.io-index" 2902 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 2903 + 2904 + [[package]] 2905 + name = "salsa20" 2906 + version = "0.10.2" 2907 + source = "registry+https://github.com/rust-lang/crates.io-index" 2908 + checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 2909 + dependencies = [ 2910 + "cipher", 2911 + ] 2912 + 2913 + [[package]] 2914 + name = "scoped-tls" 2915 + version = "1.0.1" 2916 + source = "registry+https://github.com/rust-lang/crates.io-index" 2917 + checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2918 + 2919 + [[package]] 2920 + name = "scopeguard" 2921 + version = "1.2.0" 2922 + source = "registry+https://github.com/rust-lang/crates.io-index" 2923 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2924 + 2925 + [[package]] 2926 + name = "scroll" 2927 + version = "0.12.0" 2928 + source = "registry+https://github.com/rust-lang/crates.io-index" 2929 + checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" 2930 + dependencies = [ 2931 + "scroll_derive", 2932 + ] 2933 + 2934 + [[package]] 2935 + name = "scroll_derive" 2936 + version = "0.12.1" 2937 + source = "registry+https://github.com/rust-lang/crates.io-index" 2938 + checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" 2939 + dependencies = [ 2940 + "proc-macro2", 2941 + "quote", 2942 + "syn 2.0.104", 2943 + ] 2944 + 2945 + [[package]] 2946 + name = "self_cell" 2947 + version = "1.2.0" 2948 + source = "registry+https://github.com/rust-lang/crates.io-index" 2949 + checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" 2950 + 2951 + [[package]] 2952 + name = "semver" 2953 + version = "1.0.26" 2954 + source = "registry+https://github.com/rust-lang/crates.io-index" 2955 + checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 2956 + dependencies = [ 2957 + "serde", 2958 + ] 2959 + 2960 + [[package]] 2961 + name = "send_wrapper" 2962 + version = "0.6.0" 2963 + source = "registry+https://github.com/rust-lang/crates.io-index" 2964 + checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 2965 + 2966 + [[package]] 2967 + name = "serde" 2968 + version = "1.0.219" 2969 + source = "registry+https://github.com/rust-lang/crates.io-index" 2970 + checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 2971 + dependencies = [ 2972 + "serde_derive", 2973 + ] 2974 + 2975 + [[package]] 2976 + name = "serde_bytes" 2977 + version = "0.11.17" 2978 + source = "registry+https://github.com/rust-lang/crates.io-index" 2979 + checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" 2980 + dependencies = [ 2981 + "serde", 2982 + ] 2983 + 2984 + [[package]] 2985 + name = "serde_derive" 2986 + version = "1.0.219" 2987 + source = "registry+https://github.com/rust-lang/crates.io-index" 2988 + checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 2989 + dependencies = [ 2990 + "proc-macro2", 2991 + "quote", 2992 + "syn 2.0.104", 2993 + ] 2994 + 2995 + [[package]] 2996 + name = "serde_json" 2997 + version = "1.0.142" 2998 + source = "registry+https://github.com/rust-lang/crates.io-index" 2999 + checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" 3000 + dependencies = [ 3001 + "itoa", 3002 + "memchr", 3003 + "ryu", 3004 + "serde", 3005 + ] 3006 + 3007 + [[package]] 3008 + name = "serde_urlencoded" 3009 + version = "0.7.1" 3010 + source = "registry+https://github.com/rust-lang/crates.io-index" 3011 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 3012 + dependencies = [ 3013 + "form_urlencoded", 3014 + "itoa", 3015 + "ryu", 3016 + "serde", 3017 + ] 3018 + 3019 + [[package]] 3020 + name = "serdect" 3021 + version = "0.2.0" 3022 + source = "registry+https://github.com/rust-lang/crates.io-index" 3023 + checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" 3024 + dependencies = [ 3025 + "base16ct", 3026 + "serde", 3027 + ] 3028 + 3029 + [[package]] 3030 + name = "sha1" 3031 + version = "0.10.6" 3032 + source = "registry+https://github.com/rust-lang/crates.io-index" 3033 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 3034 + dependencies = [ 3035 + "cfg-if", 3036 + "cpufeatures", 3037 + "digest", 3038 + ] 3039 + 3040 + [[package]] 3041 + name = "sha1_smol" 3042 + version = "1.0.1" 3043 + source = "registry+https://github.com/rust-lang/crates.io-index" 3044 + checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" 3045 + 3046 + [[package]] 3047 + name = "sha2" 3048 + version = "0.10.9" 3049 + source = "registry+https://github.com/rust-lang/crates.io-index" 3050 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 3051 + dependencies = [ 3052 + "cfg-if", 3053 + "cpufeatures", 3054 + "digest", 3055 + ] 3056 + 3057 + [[package]] 3058 + name = "sharded-slab" 3059 + version = "0.1.7" 3060 + source = "registry+https://github.com/rust-lang/crates.io-index" 3061 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 3062 + dependencies = [ 3063 + "lazy_static", 3064 + ] 3065 + 3066 + [[package]] 3067 + name = "shlex" 3068 + version = "1.3.0" 3069 + source = "registry+https://github.com/rust-lang/crates.io-index" 3070 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3071 + 3072 + [[package]] 3073 + name = "signal-hook-registry" 3074 + version = "1.4.6" 3075 + source = "registry+https://github.com/rust-lang/crates.io-index" 3076 + checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 3077 + dependencies = [ 3078 + "libc", 3079 + ] 3080 + 3081 + [[package]] 3082 + name = "signature" 3083 + version = "2.2.0" 3084 + source = "registry+https://github.com/rust-lang/crates.io-index" 3085 + checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 3086 + dependencies = [ 3087 + "rand_core 0.6.4", 3088 + ] 3089 + 3090 + [[package]] 3091 + name = "simdutf8" 3092 + version = "0.1.5" 3093 + source = "registry+https://github.com/rust-lang/crates.io-index" 3094 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 3095 + 3096 + [[package]] 3097 + name = "simple-dns" 3098 + version = "0.9.3" 3099 + source = "registry+https://github.com/rust-lang/crates.io-index" 3100 + checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" 3101 + dependencies = [ 3102 + "bitflags", 3103 + ] 3104 + 3105 + [[package]] 3106 + name = "siphasher" 3107 + version = "0.3.11" 3108 + source = "registry+https://github.com/rust-lang/crates.io-index" 3109 + checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 3110 + 3111 + [[package]] 3112 + name = "slab" 3113 + version = "0.4.10" 3114 + source = "registry+https://github.com/rust-lang/crates.io-index" 3115 + checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" 3116 + 3117 + [[package]] 3118 + name = "smallvec" 3119 + version = "1.15.1" 3120 + source = "registry+https://github.com/rust-lang/crates.io-index" 3121 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 3122 + 3123 + [[package]] 3124 + name = "smawk" 3125 + version = "0.3.2" 3126 + source = "registry+https://github.com/rust-lang/crates.io-index" 3127 + checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 3128 + 3129 + [[package]] 3130 + name = "snafu" 3131 + version = "0.8.6" 3132 + source = "registry+https://github.com/rust-lang/crates.io-index" 3133 + checksum = "320b01e011bf8d5d7a4a4a4be966d9160968935849c83b918827f6a435e7f627" 3134 + dependencies = [ 3135 + "backtrace", 3136 + "snafu-derive", 3137 + ] 3138 + 3139 + [[package]] 3140 + name = "snafu-derive" 3141 + version = "0.8.6" 3142 + source = "registry+https://github.com/rust-lang/crates.io-index" 3143 + checksum = "1961e2ef424c1424204d3a5d6975f934f56b6d50ff5732382d84ebf460e147f7" 3144 + dependencies = [ 3145 + "heck", 3146 + "proc-macro2", 3147 + "quote", 3148 + "syn 2.0.104", 3149 + ] 3150 + 3151 + [[package]] 3152 + name = "socket2" 3153 + version = "0.5.10" 3154 + source = "registry+https://github.com/rust-lang/crates.io-index" 3155 + checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 3156 + dependencies = [ 3157 + "libc", 3158 + "windows-sys 0.52.0", 3159 + ] 3160 + 3161 + [[package]] 3162 + name = "socket2" 3163 + version = "0.6.0" 3164 + source = "registry+https://github.com/rust-lang/crates.io-index" 3165 + checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" 3166 + dependencies = [ 3167 + "libc", 3168 + "windows-sys 0.59.0", 3169 + ] 3170 + 3171 + [[package]] 3172 + name = "spin" 3173 + version = "0.9.8" 3174 + source = "registry+https://github.com/rust-lang/crates.io-index" 3175 + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 3176 + dependencies = [ 3177 + "lock_api", 3178 + ] 3179 + 3180 + [[package]] 3181 + name = "spin" 3182 + version = "0.10.0" 3183 + source = "registry+https://github.com/rust-lang/crates.io-index" 3184 + checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" 3185 + 3186 + [[package]] 3187 + name = "spki" 3188 + version = "0.7.3" 3189 + source = "registry+https://github.com/rust-lang/crates.io-index" 3190 + checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 3191 + dependencies = [ 3192 + "base64ct", 3193 + "der", 3194 + ] 3195 + 3196 + [[package]] 3197 + name = "stable_deref_trait" 3198 + version = "1.2.0" 3199 + source = "registry+https://github.com/rust-lang/crates.io-index" 3200 + checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 3201 + 3202 + [[package]] 3203 + name = "static_assertions" 3204 + version = "1.1.0" 3205 + source = "registry+https://github.com/rust-lang/crates.io-index" 3206 + checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3207 + 3208 + [[package]] 3209 + name = "strum" 3210 + version = "0.27.2" 3211 + source = "registry+https://github.com/rust-lang/crates.io-index" 3212 + checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" 3213 + dependencies = [ 3214 + "strum_macros", 3215 + ] 3216 + 3217 + [[package]] 3218 + name = "strum_macros" 3219 + version = "0.27.2" 3220 + source = "registry+https://github.com/rust-lang/crates.io-index" 3221 + checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" 3222 + dependencies = [ 3223 + "heck", 3224 + "proc-macro2", 3225 + "quote", 3226 + "syn 2.0.104", 3227 + ] 3228 + 3229 + [[package]] 3230 + name = "stun-rs" 3231 + version = "0.1.11" 3232 + source = "registry+https://github.com/rust-lang/crates.io-index" 3233 + checksum = "fb921f10397d5669e1af6455e9e2d367bf1f9cebcd6b1dd1dc50e19f6a9ac2ac" 3234 + dependencies = [ 3235 + "base64", 3236 + "bounded-integer", 3237 + "byteorder", 3238 + "crc", 3239 + "enumflags2", 3240 + "fallible-iterator", 3241 + "hmac-sha1", 3242 + "hmac-sha256", 3243 + "hostname-validator", 3244 + "lazy_static", 3245 + "md5", 3246 + "paste", 3247 + "precis-core", 3248 + "precis-profiles", 3249 + "quoted-string-parser", 3250 + "rand 0.9.2", 3251 + ] 3252 + 3253 + [[package]] 3254 + name = "subtle" 3255 + version = "2.6.1" 3256 + source = "registry+https://github.com/rust-lang/crates.io-index" 3257 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 3258 + 3259 + [[package]] 3260 + name = "surge-ping" 3261 + version = "0.8.2" 3262 + source = "registry+https://github.com/rust-lang/crates.io-index" 3263 + checksum = "6fda78103d8016bb25c331ddc54af634e801806463682cc3e549d335df644d95" 3264 + dependencies = [ 3265 + "hex", 3266 + "parking_lot", 3267 + "pnet_packet", 3268 + "rand 0.9.2", 3269 + "socket2 0.5.10", 3270 + "thiserror 1.0.69", 3271 + "tokio", 3272 + "tracing", 3273 + ] 3274 + 3275 + [[package]] 3276 + name = "syn" 3277 + version = "1.0.109" 3278 + source = "registry+https://github.com/rust-lang/crates.io-index" 3279 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 3280 + dependencies = [ 3281 + "proc-macro2", 3282 + "quote", 3283 + "unicode-ident", 3284 + ] 3285 + 3286 + [[package]] 3287 + name = "syn" 3288 + version = "2.0.104" 3289 + source = "registry+https://github.com/rust-lang/crates.io-index" 3290 + checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" 3291 + dependencies = [ 3292 + "proc-macro2", 3293 + "quote", 3294 + "unicode-ident", 3295 + ] 3296 + 3297 + [[package]] 3298 + name = "sync_wrapper" 3299 + version = "1.0.2" 3300 + source = "registry+https://github.com/rust-lang/crates.io-index" 3301 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 3302 + dependencies = [ 3303 + "futures-core", 3304 + ] 3305 + 3306 + [[package]] 3307 + name = "synstructure" 3308 + version = "0.13.2" 3309 + source = "registry+https://github.com/rust-lang/crates.io-index" 3310 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 3311 + dependencies = [ 3312 + "proc-macro2", 3313 + "quote", 3314 + "syn 2.0.104", 3315 + ] 3316 + 3317 + [[package]] 3318 + name = "system-configuration" 3319 + version = "0.6.1" 3320 + source = "registry+https://github.com/rust-lang/crates.io-index" 3321 + checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 3322 + dependencies = [ 3323 + "bitflags", 3324 + "core-foundation", 3325 + "system-configuration-sys", 3326 + ] 3327 + 3328 + [[package]] 3329 + name = "system-configuration-sys" 3330 + version = "0.6.0" 3331 + source = "registry+https://github.com/rust-lang/crates.io-index" 3332 + checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 3333 + dependencies = [ 3334 + "core-foundation-sys", 3335 + "libc", 3336 + ] 3337 + 3338 + [[package]] 3339 + name = "tagptr" 3340 + version = "0.2.0" 3341 + source = "registry+https://github.com/rust-lang/crates.io-index" 3342 + checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 3343 + 3344 + [[package]] 3345 + name = "termcolor" 3346 + version = "1.4.1" 3347 + source = "registry+https://github.com/rust-lang/crates.io-index" 3348 + checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3349 + dependencies = [ 3350 + "winapi-util", 3351 + ] 3352 + 3353 + [[package]] 3354 + name = "textwrap" 3355 + version = "0.16.2" 3356 + source = "registry+https://github.com/rust-lang/crates.io-index" 3357 + checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 3358 + dependencies = [ 3359 + "smawk", 3360 + ] 3361 + 3362 + [[package]] 3363 + name = "thiserror" 3364 + version = "1.0.69" 3365 + source = "registry+https://github.com/rust-lang/crates.io-index" 3366 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3367 + dependencies = [ 3368 + "thiserror-impl 1.0.69", 3369 + ] 3370 + 3371 + [[package]] 3372 + name = "thiserror" 3373 + version = "2.0.12" 3374 + source = "registry+https://github.com/rust-lang/crates.io-index" 3375 + checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 3376 + dependencies = [ 3377 + "thiserror-impl 2.0.12", 3378 + ] 3379 + 3380 + [[package]] 3381 + name = "thiserror-impl" 3382 + version = "1.0.69" 3383 + source = "registry+https://github.com/rust-lang/crates.io-index" 3384 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3385 + dependencies = [ 3386 + "proc-macro2", 3387 + "quote", 3388 + "syn 2.0.104", 3389 + ] 3390 + 3391 + [[package]] 3392 + name = "thiserror-impl" 3393 + version = "2.0.12" 3394 + source = "registry+https://github.com/rust-lang/crates.io-index" 3395 + checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 3396 + dependencies = [ 3397 + "proc-macro2", 3398 + "quote", 3399 + "syn 2.0.104", 3400 + ] 3401 + 3402 + [[package]] 3403 + name = "thread_local" 3404 + version = "1.1.9" 3405 + source = "registry+https://github.com/rust-lang/crates.io-index" 3406 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 3407 + dependencies = [ 3408 + "cfg-if", 3409 + ] 3410 + 3411 + [[package]] 3412 + name = "time" 3413 + version = "0.3.41" 3414 + source = "registry+https://github.com/rust-lang/crates.io-index" 3415 + checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 3416 + dependencies = [ 3417 + "deranged", 3418 + "js-sys", 3419 + "num-conv", 3420 + "powerfmt", 3421 + "serde", 3422 + "time-core", 3423 + ] 3424 + 3425 + [[package]] 3426 + name = "time-core" 3427 + version = "0.1.4" 3428 + source = "registry+https://github.com/rust-lang/crates.io-index" 3429 + checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 3430 + 3431 + [[package]] 3432 + name = "tinystr" 3433 + version = "0.8.1" 3434 + source = "registry+https://github.com/rust-lang/crates.io-index" 3435 + checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 3436 + dependencies = [ 3437 + "displaydoc", 3438 + "zerovec", 3439 + ] 3440 + 3441 + [[package]] 3442 + name = "tinyvec" 3443 + version = "1.9.0" 3444 + source = "registry+https://github.com/rust-lang/crates.io-index" 3445 + checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 3446 + dependencies = [ 3447 + "tinyvec_macros", 3448 + ] 3449 + 3450 + [[package]] 3451 + name = "tinyvec_macros" 3452 + version = "0.1.1" 3453 + source = "registry+https://github.com/rust-lang/crates.io-index" 3454 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3455 + 3456 + [[package]] 3457 + name = "tokio" 3458 + version = "1.47.1" 3459 + source = "registry+https://github.com/rust-lang/crates.io-index" 3460 + checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 3461 + dependencies = [ 3462 + "backtrace", 3463 + "bytes", 3464 + "io-uring", 3465 + "libc", 3466 + "mio", 3467 + "pin-project-lite", 3468 + "signal-hook-registry", 3469 + "slab", 3470 + "socket2 0.6.0", 3471 + "tokio-macros", 3472 + "windows-sys 0.59.0", 3473 + ] 3474 + 3475 + [[package]] 3476 + name = "tokio-macros" 3477 + version = "2.5.0" 3478 + source = "registry+https://github.com/rust-lang/crates.io-index" 3479 + checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 3480 + dependencies = [ 3481 + "proc-macro2", 3482 + "quote", 3483 + "syn 2.0.104", 3484 + ] 3485 + 3486 + [[package]] 3487 + name = "tokio-rustls" 3488 + version = "0.26.2" 3489 + source = "registry+https://github.com/rust-lang/crates.io-index" 3490 + checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" 3491 + dependencies = [ 3492 + "rustls", 3493 + "tokio", 3494 + ] 3495 + 3496 + [[package]] 3497 + name = "tokio-stream" 3498 + version = "0.1.17" 3499 + source = "registry+https://github.com/rust-lang/crates.io-index" 3500 + checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" 3501 + dependencies = [ 3502 + "futures-core", 3503 + "pin-project-lite", 3504 + "tokio", 3505 + "tokio-util", 3506 + ] 3507 + 3508 + [[package]] 3509 + name = "tokio-util" 3510 + version = "0.7.16" 3511 + source = "registry+https://github.com/rust-lang/crates.io-index" 3512 + checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 3513 + dependencies = [ 3514 + "bytes", 3515 + "futures-core", 3516 + "futures-sink", 3517 + "futures-util", 3518 + "pin-project-lite", 3519 + "tokio", 3520 + ] 3521 + 3522 + [[package]] 3523 + name = "tokio-websockets" 3524 + version = "0.12.0" 3525 + source = "registry+https://github.com/rust-lang/crates.io-index" 3526 + checksum = "3f29ba084eb43becc9864ba514b4a64f5f65b82f9a6ffbafa5436c1c80605f03" 3527 + dependencies = [ 3528 + "base64", 3529 + "bytes", 3530 + "futures-core", 3531 + "futures-sink", 3532 + "getrandom 0.3.3", 3533 + "http", 3534 + "httparse", 3535 + "rand 0.9.2", 3536 + "ring", 3537 + "rustls-pki-types", 3538 + "simdutf8", 3539 + "tokio", 3540 + "tokio-rustls", 3541 + "tokio-util", 3542 + ] 3543 + 3544 + [[package]] 3545 + name = "toml" 3546 + version = "0.5.11" 3547 + source = "registry+https://github.com/rust-lang/crates.io-index" 3548 + checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 3549 + dependencies = [ 3550 + "serde", 3551 + ] 3552 + 3553 + [[package]] 3554 + name = "toml_datetime" 3555 + version = "0.6.11" 3556 + source = "registry+https://github.com/rust-lang/crates.io-index" 3557 + checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 3558 + 3559 + [[package]] 3560 + name = "toml_edit" 3561 + version = "0.22.27" 3562 + source = "registry+https://github.com/rust-lang/crates.io-index" 3563 + checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 3564 + dependencies = [ 3565 + "indexmap", 3566 + "toml_datetime", 3567 + "winnow", 3568 + ] 3569 + 3570 + [[package]] 3571 + name = "tower" 3572 + version = "0.5.2" 3573 + source = "registry+https://github.com/rust-lang/crates.io-index" 3574 + checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 3575 + dependencies = [ 3576 + "futures-core", 3577 + "futures-util", 3578 + "pin-project-lite", 3579 + "sync_wrapper", 3580 + "tokio", 3581 + "tower-layer", 3582 + "tower-service", 3583 + ] 3584 + 3585 + [[package]] 3586 + name = "tower-http" 3587 + version = "0.6.6" 3588 + source = "registry+https://github.com/rust-lang/crates.io-index" 3589 + checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 3590 + dependencies = [ 3591 + "bitflags", 3592 + "bytes", 3593 + "futures-util", 3594 + "http", 3595 + "http-body", 3596 + "iri-string", 3597 + "pin-project-lite", 3598 + "tower", 3599 + "tower-layer", 3600 + "tower-service", 3601 + ] 3602 + 3603 + [[package]] 3604 + name = "tower-layer" 3605 + version = "0.3.3" 3606 + source = "registry+https://github.com/rust-lang/crates.io-index" 3607 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 3608 + 3609 + [[package]] 3610 + name = "tower-service" 3611 + version = "0.3.3" 3612 + source = "registry+https://github.com/rust-lang/crates.io-index" 3613 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 3614 + 3615 + [[package]] 3616 + name = "tracing" 3617 + version = "0.1.41" 3618 + source = "registry+https://github.com/rust-lang/crates.io-index" 3619 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 3620 + dependencies = [ 3621 + "log", 3622 + "pin-project-lite", 3623 + "tracing-attributes", 3624 + "tracing-core", 3625 + ] 3626 + 3627 + [[package]] 3628 + name = "tracing-attributes" 3629 + version = "0.1.30" 3630 + source = "registry+https://github.com/rust-lang/crates.io-index" 3631 + checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 3632 + dependencies = [ 3633 + "proc-macro2", 3634 + "quote", 3635 + "syn 2.0.104", 3636 + ] 3637 + 3638 + [[package]] 3639 + name = "tracing-core" 3640 + version = "0.1.34" 3641 + source = "registry+https://github.com/rust-lang/crates.io-index" 3642 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 3643 + dependencies = [ 3644 + "once_cell", 3645 + "valuable", 3646 + ] 3647 + 3648 + [[package]] 3649 + name = "tracing-error" 3650 + version = "0.2.1" 3651 + source = "registry+https://github.com/rust-lang/crates.io-index" 3652 + checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" 3653 + dependencies = [ 3654 + "tracing", 3655 + "tracing-subscriber", 3656 + ] 3657 + 3658 + [[package]] 3659 + name = "tracing-log" 3660 + version = "0.2.0" 3661 + source = "registry+https://github.com/rust-lang/crates.io-index" 3662 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 3663 + dependencies = [ 3664 + "log", 3665 + "once_cell", 3666 + "tracing-core", 3667 + ] 3668 + 3669 + [[package]] 3670 + name = "tracing-subscriber" 3671 + version = "0.3.19" 3672 + source = "registry+https://github.com/rust-lang/crates.io-index" 3673 + checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 3674 + dependencies = [ 3675 + "matchers", 3676 + "nu-ansi-term", 3677 + "once_cell", 3678 + "regex", 3679 + "sharded-slab", 3680 + "smallvec", 3681 + "thread_local", 3682 + "tracing", 3683 + "tracing-core", 3684 + "tracing-log", 3685 + ] 3686 + 3687 + [[package]] 3688 + name = "try-lock" 3689 + version = "0.2.5" 3690 + source = "registry+https://github.com/rust-lang/crates.io-index" 3691 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3692 + 3693 + [[package]] 3694 + name = "typenum" 3695 + version = "1.18.0" 3696 + source = "registry+https://github.com/rust-lang/crates.io-index" 3697 + checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 3698 + 3699 + [[package]] 3700 + name = "ucd-parse" 3701 + version = "0.1.13" 3702 + source = "registry+https://github.com/rust-lang/crates.io-index" 3703 + checksum = "c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9" 3704 + dependencies = [ 3705 + "regex-lite", 3706 + ] 3707 + 3708 + [[package]] 3709 + name = "ucd-trie" 3710 + version = "0.1.7" 3711 + source = "registry+https://github.com/rust-lang/crates.io-index" 3712 + checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 3713 + 3714 + [[package]] 3715 + name = "unicase" 3716 + version = "2.8.1" 3717 + source = "registry+https://github.com/rust-lang/crates.io-index" 3718 + checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 3719 + 3720 + [[package]] 3721 + name = "unicode-ident" 3722 + version = "1.0.18" 3723 + source = "registry+https://github.com/rust-lang/crates.io-index" 3724 + checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 3725 + 3726 + [[package]] 3727 + name = "unicode-normalization" 3728 + version = "0.1.24" 3729 + source = "registry+https://github.com/rust-lang/crates.io-index" 3730 + checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 3731 + dependencies = [ 3732 + "tinyvec", 3733 + ] 3734 + 3735 + [[package]] 3736 + name = "unicode-xid" 3737 + version = "0.2.6" 3738 + source = "registry+https://github.com/rust-lang/crates.io-index" 3739 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 3740 + 3741 + [[package]] 3742 + name = "uniffi" 3743 + version = "0.28.3" 3744 + source = "registry+https://github.com/rust-lang/crates.io-index" 3745 + checksum = "4cb08c58c7ed7033150132febe696bef553f891b1ede57424b40d87a89e3c170" 3746 + dependencies = [ 3747 + "anyhow", 3748 + "cargo_metadata", 3749 + "uniffi_bindgen", 3750 + "uniffi_core", 3751 + "uniffi_macros", 3752 + ] 3753 + 3754 + [[package]] 3755 + name = "uniffi_bindgen" 3756 + version = "0.28.3" 3757 + source = "registry+https://github.com/rust-lang/crates.io-index" 3758 + checksum = "cade167af943e189a55020eda2c314681e223f1e42aca7c4e52614c2b627698f" 3759 + dependencies = [ 3760 + "anyhow", 3761 + "askama", 3762 + "camino", 3763 + "cargo_metadata", 3764 + "fs-err", 3765 + "glob", 3766 + "goblin", 3767 + "heck", 3768 + "once_cell", 3769 + "paste", 3770 + "serde", 3771 + "textwrap", 3772 + "toml", 3773 + "uniffi_meta", 3774 + "uniffi_udl", 3775 + ] 3776 + 3777 + [[package]] 3778 + name = "uniffi_checksum_derive" 3779 + version = "0.28.3" 3780 + source = "registry+https://github.com/rust-lang/crates.io-index" 3781 + checksum = "802d2051a700e3ec894c79f80d2705b69d85844dafbbe5d1a92776f8f48b563a" 3782 + dependencies = [ 3783 + "quote", 3784 + "syn 2.0.104", 3785 + ] 3786 + 3787 + [[package]] 3788 + name = "uniffi_core" 3789 + version = "0.28.3" 3790 + source = "registry+https://github.com/rust-lang/crates.io-index" 3791 + checksum = "bc7687007d2546c454d8ae609b105daceb88175477dac280707ad6d95bcd6f1f" 3792 + dependencies = [ 3793 + "anyhow", 3794 + "async-compat", 3795 + "bytes", 3796 + "log", 3797 + "once_cell", 3798 + "paste", 3799 + "static_assertions", 3800 + ] 3801 + 3802 + [[package]] 3803 + name = "uniffi_macros" 3804 + version = "0.28.3" 3805 + source = "registry+https://github.com/rust-lang/crates.io-index" 3806 + checksum = "12c65a5b12ec544ef136693af8759fb9d11aefce740fb76916721e876639033b" 3807 + dependencies = [ 3808 + "bincode", 3809 + "camino", 3810 + "fs-err", 3811 + "once_cell", 3812 + "proc-macro2", 3813 + "quote", 3814 + "serde", 3815 + "syn 2.0.104", 3816 + "toml", 3817 + "uniffi_meta", 3818 + ] 3819 + 3820 + [[package]] 3821 + name = "uniffi_meta" 3822 + version = "0.28.3" 3823 + source = "registry+https://github.com/rust-lang/crates.io-index" 3824 + checksum = "4a74ed96c26882dac1ca9b93ca23c827e284bacbd7ec23c6f0b0372f747d59e4" 3825 + dependencies = [ 3826 + "anyhow", 3827 + "bytes", 3828 + "siphasher", 3829 + "uniffi_checksum_derive", 3830 + ] 3831 + 3832 + [[package]] 3833 + name = "uniffi_testing" 3834 + version = "0.28.3" 3835 + source = "registry+https://github.com/rust-lang/crates.io-index" 3836 + checksum = "6a6f984f0781f892cc864a62c3a5c60361b1ccbd68e538e6c9fbced5d82268ac" 3837 + dependencies = [ 3838 + "anyhow", 3839 + "camino", 3840 + "cargo_metadata", 3841 + "fs-err", 3842 + "once_cell", 3843 + ] 3844 + 3845 + [[package]] 3846 + name = "uniffi_udl" 3847 + version = "0.28.3" 3848 + source = "registry+https://github.com/rust-lang/crates.io-index" 3849 + checksum = "037820a4cfc4422db1eaa82f291a3863c92c7d1789dc513489c36223f9b4cdfc" 3850 + dependencies = [ 3851 + "anyhow", 3852 + "textwrap", 3853 + "uniffi_meta", 3854 + "uniffi_testing", 3855 + "weedle2", 3856 + ] 3857 + 3858 + [[package]] 3859 + name = "universal-hash" 3860 + version = "0.5.1" 3861 + source = "registry+https://github.com/rust-lang/crates.io-index" 3862 + checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" 3863 + dependencies = [ 3864 + "crypto-common", 3865 + "subtle", 3866 + ] 3867 + 3868 + [[package]] 3869 + name = "untrusted" 3870 + version = "0.9.0" 3871 + source = "registry+https://github.com/rust-lang/crates.io-index" 3872 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 3873 + 3874 + [[package]] 3875 + name = "url" 3876 + version = "2.5.4" 3877 + source = "registry+https://github.com/rust-lang/crates.io-index" 3878 + checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 3879 + dependencies = [ 3880 + "form_urlencoded", 3881 + "idna", 3882 + "percent-encoding", 3883 + "serde", 3884 + ] 3885 + 3886 + [[package]] 3887 + name = "utf8_iter" 3888 + version = "1.0.4" 3889 + source = "registry+https://github.com/rust-lang/crates.io-index" 3890 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 3891 + 3892 + [[package]] 3893 + name = "uuid" 3894 + version = "1.17.0" 3895 + source = "registry+https://github.com/rust-lang/crates.io-index" 3896 + checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" 3897 + dependencies = [ 3898 + "getrandom 0.3.3", 3899 + "js-sys", 3900 + "wasm-bindgen", 3901 + ] 3902 + 3903 + [[package]] 3904 + name = "valuable" 3905 + version = "0.1.1" 3906 + source = "registry+https://github.com/rust-lang/crates.io-index" 3907 + checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 3908 + 3909 + [[package]] 3910 + name = "version_check" 3911 + version = "0.9.5" 3912 + source = "registry+https://github.com/rust-lang/crates.io-index" 3913 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3914 + 3915 + [[package]] 3916 + name = "want" 3917 + version = "0.3.1" 3918 + source = "registry+https://github.com/rust-lang/crates.io-index" 3919 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 3920 + dependencies = [ 3921 + "try-lock", 3922 + ] 3923 + 3924 + [[package]] 3925 + name = "wasi" 3926 + version = "0.11.1+wasi-snapshot-preview1" 3927 + source = "registry+https://github.com/rust-lang/crates.io-index" 3928 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 3929 + 3930 + [[package]] 3931 + name = "wasi" 3932 + version = "0.14.2+wasi-0.2.4" 3933 + source = "registry+https://github.com/rust-lang/crates.io-index" 3934 + checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 3935 + dependencies = [ 3936 + "wit-bindgen-rt", 3937 + ] 3938 + 3939 + [[package]] 3940 + name = "wasm-bindgen" 3941 + version = "0.2.100" 3942 + source = "registry+https://github.com/rust-lang/crates.io-index" 3943 + checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 3944 + dependencies = [ 3945 + "cfg-if", 3946 + "once_cell", 3947 + "rustversion", 3948 + "wasm-bindgen-macro", 3949 + ] 3950 + 3951 + [[package]] 3952 + name = "wasm-bindgen-backend" 3953 + version = "0.2.100" 3954 + source = "registry+https://github.com/rust-lang/crates.io-index" 3955 + checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 3956 + dependencies = [ 3957 + "bumpalo", 3958 + "log", 3959 + "proc-macro2", 3960 + "quote", 3961 + "syn 2.0.104", 3962 + "wasm-bindgen-shared", 3963 + ] 3964 + 3965 + [[package]] 3966 + name = "wasm-bindgen-futures" 3967 + version = "0.4.50" 3968 + source = "registry+https://github.com/rust-lang/crates.io-index" 3969 + checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 3970 + dependencies = [ 3971 + "cfg-if", 3972 + "js-sys", 3973 + "once_cell", 3974 + "wasm-bindgen", 3975 + "web-sys", 3976 + ] 3977 + 3978 + [[package]] 3979 + name = "wasm-bindgen-macro" 3980 + version = "0.2.100" 3981 + source = "registry+https://github.com/rust-lang/crates.io-index" 3982 + checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 3983 + dependencies = [ 3984 + "quote", 3985 + "wasm-bindgen-macro-support", 3986 + ] 3987 + 3988 + [[package]] 3989 + name = "wasm-bindgen-macro-support" 3990 + version = "0.2.100" 3991 + source = "registry+https://github.com/rust-lang/crates.io-index" 3992 + checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 3993 + dependencies = [ 3994 + "proc-macro2", 3995 + "quote", 3996 + "syn 2.0.104", 3997 + "wasm-bindgen-backend", 3998 + "wasm-bindgen-shared", 3999 + ] 4000 + 4001 + [[package]] 4002 + name = "wasm-bindgen-shared" 4003 + version = "0.2.100" 4004 + source = "registry+https://github.com/rust-lang/crates.io-index" 4005 + checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 4006 + dependencies = [ 4007 + "unicode-ident", 4008 + ] 4009 + 4010 + [[package]] 4011 + name = "wasm-streams" 4012 + version = "0.4.2" 4013 + source = "registry+https://github.com/rust-lang/crates.io-index" 4014 + checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 4015 + dependencies = [ 4016 + "futures-util", 4017 + "js-sys", 4018 + "wasm-bindgen", 4019 + "wasm-bindgen-futures", 4020 + "web-sys", 4021 + ] 4022 + 4023 + [[package]] 4024 + name = "web-sys" 4025 + version = "0.3.77" 4026 + source = "registry+https://github.com/rust-lang/crates.io-index" 4027 + checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 4028 + dependencies = [ 4029 + "js-sys", 4030 + "wasm-bindgen", 4031 + ] 4032 + 4033 + [[package]] 4034 + name = "web-time" 4035 + version = "1.1.0" 4036 + source = "registry+https://github.com/rust-lang/crates.io-index" 4037 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 4038 + dependencies = [ 4039 + "js-sys", 4040 + "wasm-bindgen", 4041 + ] 4042 + 4043 + [[package]] 4044 + name = "webpki-roots" 4045 + version = "0.26.11" 4046 + source = "registry+https://github.com/rust-lang/crates.io-index" 4047 + checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" 4048 + dependencies = [ 4049 + "webpki-roots 1.0.2", 4050 + ] 4051 + 4052 + [[package]] 4053 + name = "webpki-roots" 4054 + version = "1.0.2" 4055 + source = "registry+https://github.com/rust-lang/crates.io-index" 4056 + checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" 4057 + dependencies = [ 4058 + "rustls-pki-types", 4059 + ] 4060 + 4061 + [[package]] 4062 + name = "weedle2" 4063 + version = "5.0.0" 4064 + source = "registry+https://github.com/rust-lang/crates.io-index" 4065 + checksum = "998d2c24ec099a87daf9467808859f9d82b61f1d9c9701251aea037f514eae0e" 4066 + dependencies = [ 4067 + "nom", 4068 + ] 4069 + 4070 + [[package]] 4071 + name = "widestring" 4072 + version = "1.2.0" 4073 + source = "registry+https://github.com/rust-lang/crates.io-index" 4074 + checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" 4075 + 4076 + [[package]] 4077 + name = "winapi" 4078 + version = "0.3.9" 4079 + source = "registry+https://github.com/rust-lang/crates.io-index" 4080 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4081 + dependencies = [ 4082 + "winapi-i686-pc-windows-gnu", 4083 + "winapi-x86_64-pc-windows-gnu", 4084 + ] 4085 + 4086 + [[package]] 4087 + name = "winapi-i686-pc-windows-gnu" 4088 + version = "0.4.0" 4089 + source = "registry+https://github.com/rust-lang/crates.io-index" 4090 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4091 + 4092 + [[package]] 4093 + name = "winapi-util" 4094 + version = "0.1.9" 4095 + source = "registry+https://github.com/rust-lang/crates.io-index" 4096 + checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 4097 + dependencies = [ 4098 + "windows-sys 0.59.0", 4099 + ] 4100 + 4101 + [[package]] 4102 + name = "winapi-x86_64-pc-windows-gnu" 4103 + version = "0.4.0" 4104 + source = "registry+https://github.com/rust-lang/crates.io-index" 4105 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4106 + 4107 + [[package]] 4108 + name = "windows" 4109 + version = "0.61.3" 4110 + source = "registry+https://github.com/rust-lang/crates.io-index" 4111 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 4112 + dependencies = [ 4113 + "windows-collections", 4114 + "windows-core", 4115 + "windows-future", 4116 + "windows-link", 4117 + "windows-numerics", 4118 + ] 4119 + 4120 + [[package]] 4121 + name = "windows-collections" 4122 + version = "0.2.0" 4123 + source = "registry+https://github.com/rust-lang/crates.io-index" 4124 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 4125 + dependencies = [ 4126 + "windows-core", 4127 + ] 4128 + 4129 + [[package]] 4130 + name = "windows-core" 4131 + version = "0.61.2" 4132 + source = "registry+https://github.com/rust-lang/crates.io-index" 4133 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 4134 + dependencies = [ 4135 + "windows-implement", 4136 + "windows-interface", 4137 + "windows-link", 4138 + "windows-result", 4139 + "windows-strings", 4140 + ] 4141 + 4142 + [[package]] 4143 + name = "windows-future" 4144 + version = "0.2.1" 4145 + source = "registry+https://github.com/rust-lang/crates.io-index" 4146 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 4147 + dependencies = [ 4148 + "windows-core", 4149 + "windows-link", 4150 + "windows-threading", 4151 + ] 4152 + 4153 + [[package]] 4154 + name = "windows-implement" 4155 + version = "0.60.0" 4156 + source = "registry+https://github.com/rust-lang/crates.io-index" 4157 + checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" 4158 + dependencies = [ 4159 + "proc-macro2", 4160 + "quote", 4161 + "syn 2.0.104", 4162 + ] 4163 + 4164 + [[package]] 4165 + name = "windows-interface" 4166 + version = "0.59.1" 4167 + source = "registry+https://github.com/rust-lang/crates.io-index" 4168 + checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" 4169 + dependencies = [ 4170 + "proc-macro2", 4171 + "quote", 4172 + "syn 2.0.104", 4173 + ] 4174 + 4175 + [[package]] 4176 + name = "windows-link" 4177 + version = "0.1.3" 4178 + source = "registry+https://github.com/rust-lang/crates.io-index" 4179 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 4180 + 4181 + [[package]] 4182 + name = "windows-numerics" 4183 + version = "0.2.0" 4184 + source = "registry+https://github.com/rust-lang/crates.io-index" 4185 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 4186 + dependencies = [ 4187 + "windows-core", 4188 + "windows-link", 4189 + ] 4190 + 4191 + [[package]] 4192 + name = "windows-result" 4193 + version = "0.3.4" 4194 + source = "registry+https://github.com/rust-lang/crates.io-index" 4195 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 4196 + dependencies = [ 4197 + "windows-link", 4198 + ] 4199 + 4200 + [[package]] 4201 + name = "windows-strings" 4202 + version = "0.4.2" 4203 + source = "registry+https://github.com/rust-lang/crates.io-index" 4204 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 4205 + dependencies = [ 4206 + "windows-link", 4207 + ] 4208 + 4209 + [[package]] 4210 + name = "windows-sys" 4211 + version = "0.48.0" 4212 + source = "registry+https://github.com/rust-lang/crates.io-index" 4213 + checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 4214 + dependencies = [ 4215 + "windows-targets 0.48.5", 4216 + ] 4217 + 4218 + [[package]] 4219 + name = "windows-sys" 4220 + version = "0.52.0" 4221 + source = "registry+https://github.com/rust-lang/crates.io-index" 4222 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4223 + dependencies = [ 4224 + "windows-targets 0.52.6", 4225 + ] 4226 + 4227 + [[package]] 4228 + name = "windows-sys" 4229 + version = "0.59.0" 4230 + source = "registry+https://github.com/rust-lang/crates.io-index" 4231 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4232 + dependencies = [ 4233 + "windows-targets 0.52.6", 4234 + ] 4235 + 4236 + [[package]] 4237 + name = "windows-targets" 4238 + version = "0.48.5" 4239 + source = "registry+https://github.com/rust-lang/crates.io-index" 4240 + checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 4241 + dependencies = [ 4242 + "windows_aarch64_gnullvm 0.48.5", 4243 + "windows_aarch64_msvc 0.48.5", 4244 + "windows_i686_gnu 0.48.5", 4245 + "windows_i686_msvc 0.48.5", 4246 + "windows_x86_64_gnu 0.48.5", 4247 + "windows_x86_64_gnullvm 0.48.5", 4248 + "windows_x86_64_msvc 0.48.5", 4249 + ] 4250 + 4251 + [[package]] 4252 + name = "windows-targets" 4253 + version = "0.52.6" 4254 + source = "registry+https://github.com/rust-lang/crates.io-index" 4255 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4256 + dependencies = [ 4257 + "windows_aarch64_gnullvm 0.52.6", 4258 + "windows_aarch64_msvc 0.52.6", 4259 + "windows_i686_gnu 0.52.6", 4260 + "windows_i686_gnullvm", 4261 + "windows_i686_msvc 0.52.6", 4262 + "windows_x86_64_gnu 0.52.6", 4263 + "windows_x86_64_gnullvm 0.52.6", 4264 + "windows_x86_64_msvc 0.52.6", 4265 + ] 4266 + 4267 + [[package]] 4268 + name = "windows-threading" 4269 + version = "0.1.0" 4270 + source = "registry+https://github.com/rust-lang/crates.io-index" 4271 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 4272 + dependencies = [ 4273 + "windows-link", 4274 + ] 4275 + 4276 + [[package]] 4277 + name = "windows_aarch64_gnullvm" 4278 + version = "0.48.5" 4279 + source = "registry+https://github.com/rust-lang/crates.io-index" 4280 + checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 4281 + 4282 + [[package]] 4283 + name = "windows_aarch64_gnullvm" 4284 + version = "0.52.6" 4285 + source = "registry+https://github.com/rust-lang/crates.io-index" 4286 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4287 + 4288 + [[package]] 4289 + name = "windows_aarch64_msvc" 4290 + version = "0.48.5" 4291 + source = "registry+https://github.com/rust-lang/crates.io-index" 4292 + checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 4293 + 4294 + [[package]] 4295 + name = "windows_aarch64_msvc" 4296 + version = "0.52.6" 4297 + source = "registry+https://github.com/rust-lang/crates.io-index" 4298 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4299 + 4300 + [[package]] 4301 + name = "windows_i686_gnu" 4302 + version = "0.48.5" 4303 + source = "registry+https://github.com/rust-lang/crates.io-index" 4304 + checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 4305 + 4306 + [[package]] 4307 + name = "windows_i686_gnu" 4308 + version = "0.52.6" 4309 + source = "registry+https://github.com/rust-lang/crates.io-index" 4310 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4311 + 4312 + [[package]] 4313 + name = "windows_i686_gnullvm" 4314 + version = "0.52.6" 4315 + source = "registry+https://github.com/rust-lang/crates.io-index" 4316 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4317 + 4318 + [[package]] 4319 + name = "windows_i686_msvc" 4320 + version = "0.48.5" 4321 + source = "registry+https://github.com/rust-lang/crates.io-index" 4322 + checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 4323 + 4324 + [[package]] 4325 + name = "windows_i686_msvc" 4326 + version = "0.52.6" 4327 + source = "registry+https://github.com/rust-lang/crates.io-index" 4328 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4329 + 4330 + [[package]] 4331 + name = "windows_x86_64_gnu" 4332 + version = "0.48.5" 4333 + source = "registry+https://github.com/rust-lang/crates.io-index" 4334 + checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 4335 + 4336 + [[package]] 4337 + name = "windows_x86_64_gnu" 4338 + version = "0.52.6" 4339 + source = "registry+https://github.com/rust-lang/crates.io-index" 4340 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4341 + 4342 + [[package]] 4343 + name = "windows_x86_64_gnullvm" 4344 + version = "0.48.5" 4345 + source = "registry+https://github.com/rust-lang/crates.io-index" 4346 + checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 4347 + 4348 + [[package]] 4349 + name = "windows_x86_64_gnullvm" 4350 + version = "0.52.6" 4351 + source = "registry+https://github.com/rust-lang/crates.io-index" 4352 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4353 + 4354 + [[package]] 4355 + name = "windows_x86_64_msvc" 4356 + version = "0.48.5" 4357 + source = "registry+https://github.com/rust-lang/crates.io-index" 4358 + checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 4359 + 4360 + [[package]] 4361 + name = "windows_x86_64_msvc" 4362 + version = "0.52.6" 4363 + source = "registry+https://github.com/rust-lang/crates.io-index" 4364 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4365 + 4366 + [[package]] 4367 + name = "winnow" 4368 + version = "0.7.12" 4369 + source = "registry+https://github.com/rust-lang/crates.io-index" 4370 + checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 4371 + dependencies = [ 4372 + "memchr", 4373 + ] 4374 + 4375 + [[package]] 4376 + name = "winreg" 4377 + version = "0.50.0" 4378 + source = "registry+https://github.com/rust-lang/crates.io-index" 4379 + checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 4380 + dependencies = [ 4381 + "cfg-if", 4382 + "windows-sys 0.48.0", 4383 + ] 4384 + 4385 + [[package]] 4386 + name = "wit-bindgen-rt" 4387 + version = "0.39.0" 4388 + source = "registry+https://github.com/rust-lang/crates.io-index" 4389 + checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 4390 + dependencies = [ 4391 + "bitflags", 4392 + ] 4393 + 4394 + [[package]] 4395 + name = "wmi" 4396 + version = "0.17.2" 4397 + source = "registry+https://github.com/rust-lang/crates.io-index" 4398 + checksum = "3d3de777dce4cbcdc661d5d18e78ce4b46a37adc2bb7c0078a556c7f07bcce2f" 4399 + dependencies = [ 4400 + "chrono", 4401 + "futures", 4402 + "log", 4403 + "serde", 4404 + "thiserror 2.0.12", 4405 + "windows", 4406 + "windows-core", 4407 + ] 4408 + 4409 + [[package]] 4410 + name = "writeable" 4411 + version = "0.6.1" 4412 + source = "registry+https://github.com/rust-lang/crates.io-index" 4413 + checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 4414 + 4415 + [[package]] 4416 + name = "ws_stream_wasm" 4417 + version = "0.7.5" 4418 + source = "registry+https://github.com/rust-lang/crates.io-index" 4419 + checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" 4420 + dependencies = [ 4421 + "async_io_stream", 4422 + "futures", 4423 + "js-sys", 4424 + "log", 4425 + "pharos", 4426 + "rustc_version", 4427 + "send_wrapper", 4428 + "thiserror 2.0.12", 4429 + "wasm-bindgen", 4430 + "wasm-bindgen-futures", 4431 + "web-sys", 4432 + ] 4433 + 4434 + [[package]] 4435 + name = "xml-rs" 4436 + version = "0.8.27" 4437 + source = "registry+https://github.com/rust-lang/crates.io-index" 4438 + checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" 4439 + 4440 + [[package]] 4441 + name = "xmltree" 4442 + version = "0.10.3" 4443 + source = "registry+https://github.com/rust-lang/crates.io-index" 4444 + checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" 4445 + dependencies = [ 4446 + "xml-rs", 4447 + ] 4448 + 4449 + [[package]] 4450 + name = "yoke" 4451 + version = "0.8.0" 4452 + source = "registry+https://github.com/rust-lang/crates.io-index" 4453 + checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 4454 + dependencies = [ 4455 + "serde", 4456 + "stable_deref_trait", 4457 + "yoke-derive", 4458 + "zerofrom", 4459 + ] 4460 + 4461 + [[package]] 4462 + name = "yoke-derive" 4463 + version = "0.8.0" 4464 + source = "registry+https://github.com/rust-lang/crates.io-index" 4465 + checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 4466 + dependencies = [ 4467 + "proc-macro2", 4468 + "quote", 4469 + "syn 2.0.104", 4470 + "synstructure", 4471 + ] 4472 + 4473 + [[package]] 4474 + name = "z32" 4475 + version = "1.3.0" 4476 + source = "registry+https://github.com/rust-lang/crates.io-index" 4477 + checksum = "2164e798d9e3d84ee2c91139ace54638059a3b23e361f5c11781c2c6459bde0f" 4478 + 4479 + [[package]] 4480 + name = "zerocopy" 4481 + version = "0.8.26" 4482 + source = "registry+https://github.com/rust-lang/crates.io-index" 4483 + checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 4484 + dependencies = [ 4485 + "zerocopy-derive", 4486 + ] 4487 + 4488 + [[package]] 4489 + name = "zerocopy-derive" 4490 + version = "0.8.26" 4491 + source = "registry+https://github.com/rust-lang/crates.io-index" 4492 + checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 4493 + dependencies = [ 4494 + "proc-macro2", 4495 + "quote", 4496 + "syn 2.0.104", 4497 + ] 4498 + 4499 + [[package]] 4500 + name = "zerofrom" 4501 + version = "0.1.6" 4502 + source = "registry+https://github.com/rust-lang/crates.io-index" 4503 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 4504 + dependencies = [ 4505 + "zerofrom-derive", 4506 + ] 4507 + 4508 + [[package]] 4509 + name = "zerofrom-derive" 4510 + version = "0.1.6" 4511 + source = "registry+https://github.com/rust-lang/crates.io-index" 4512 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 4513 + dependencies = [ 4514 + "proc-macro2", 4515 + "quote", 4516 + "syn 2.0.104", 4517 + "synstructure", 4518 + ] 4519 + 4520 + [[package]] 4521 + name = "zeroize" 4522 + version = "1.8.1" 4523 + source = "registry+https://github.com/rust-lang/crates.io-index" 4524 + checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 4525 + 4526 + [[package]] 4527 + name = "zerotrie" 4528 + version = "0.2.2" 4529 + source = "registry+https://github.com/rust-lang/crates.io-index" 4530 + checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 4531 + dependencies = [ 4532 + "displaydoc", 4533 + "yoke", 4534 + "zerofrom", 4535 + ] 4536 + 4537 + [[package]] 4538 + name = "zerovec" 4539 + version = "0.11.3" 4540 + source = "registry+https://github.com/rust-lang/crates.io-index" 4541 + checksum = "bdbb9122ea75b11bf96e7492afb723e8a7fbe12c67417aa95e7e3d18144d37cd" 4542 + dependencies = [ 4543 + "yoke", 4544 + "zerofrom", 4545 + "zerovec-derive", 4546 + ] 4547 + 4548 + [[package]] 4549 + name = "zerovec-derive" 4550 + version = "0.11.1" 4551 + source = "registry+https://github.com/rust-lang/crates.io-index" 4552 + checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 4553 + dependencies = [ 4554 + "proc-macro2", 4555 + "quote", 4556 + "syn 2.0.104", 4557 + ]
+13
Cargo.toml
··· 1 + [package] 2 + name = "iroh-streamplace" 3 + version = "0.1.0" 4 + edition = "2024" 5 + 6 + [lib] 7 + name = "iroh_streamplace" 8 + crate-type = ["staticlib", "cdylib"] 9 + 10 + [dependencies] 11 + iroh = "0.91.1" 12 + 13 + uniffi = { version = "=0.28.3", features = ["tokio"] }
+16
Makefile
··· 1 + .PHONY: all 2 + all: rust go 3 + 4 + .PHONY: rust 5 + rust: 6 + cargo install uniffi-bindgen-go --git https://github.com/NordSecurity/uniffi-bindgen-go --tag v0.3.0+v0.28.3 7 + cargo build --release 8 + 9 + .PHONY: go 10 + go: 11 + mkdir -p dist 12 + uniffi-bindgen-go --out-dir pkg/iroh_streamplace/generated --library ./target/release/libiroh_streamplace.dylib 13 + 14 + .PHONY: test 15 + test: 16 + go test ./pkg/...
+11
README.md
··· 1 + # iroh-streamplace 2 + 3 + 4 + ## Development 5 + 6 + ```sh 7 + # Building 8 + > make 9 + # Testing 10 + > make test 11 + ```
+3
go.mod
··· 1 + module github.com/n0-computer/iroh-streamplace 2 + 3 + go 1.22.2
+617
pkg/iroh_streamplace/generated/iroh_streamplace/iroh_streamplace.go
··· 1 + package iroh_streamplace 2 + 3 + // #include <iroh_streamplace.h> 4 + import "C" 5 + 6 + import ( 7 + "bytes" 8 + "encoding/binary" 9 + "fmt" 10 + "io" 11 + "math" 12 + "runtime" 13 + "runtime/cgo" 14 + "sync/atomic" 15 + "unsafe" 16 + ) 17 + 18 + // This is needed, because as of go 1.24 19 + // type RustBuffer C.RustBuffer cannot have methods, 20 + // RustBuffer is treated as non-local type 21 + type GoRustBuffer struct { 22 + inner C.RustBuffer 23 + } 24 + 25 + type RustBufferI interface { 26 + AsReader() *bytes.Reader 27 + Free() 28 + ToGoBytes() []byte 29 + Data() unsafe.Pointer 30 + Len() uint64 31 + Capacity() uint64 32 + } 33 + 34 + func RustBufferFromExternal(b RustBufferI) GoRustBuffer { 35 + return GoRustBuffer{ 36 + inner: C.RustBuffer{ 37 + capacity: C.uint64_t(b.Capacity()), 38 + len: C.uint64_t(b.Len()), 39 + data: (*C.uchar)(b.Data()), 40 + }, 41 + } 42 + } 43 + 44 + func (cb GoRustBuffer) Capacity() uint64 { 45 + return uint64(cb.inner.capacity) 46 + } 47 + 48 + func (cb GoRustBuffer) Len() uint64 { 49 + return uint64(cb.inner.len) 50 + } 51 + 52 + func (cb GoRustBuffer) Data() unsafe.Pointer { 53 + return unsafe.Pointer(cb.inner.data) 54 + } 55 + 56 + func (cb GoRustBuffer) AsReader() *bytes.Reader { 57 + b := unsafe.Slice((*byte)(cb.inner.data), C.uint64_t(cb.inner.len)) 58 + return bytes.NewReader(b) 59 + } 60 + 61 + func (cb GoRustBuffer) Free() { 62 + rustCall(func(status *C.RustCallStatus) bool { 63 + C.ffi_iroh_streamplace_rustbuffer_free(cb.inner, status) 64 + return false 65 + }) 66 + } 67 + 68 + func (cb GoRustBuffer) ToGoBytes() []byte { 69 + return C.GoBytes(unsafe.Pointer(cb.inner.data), C.int(cb.inner.len)) 70 + } 71 + 72 + func stringToRustBuffer(str string) C.RustBuffer { 73 + return bytesToRustBuffer([]byte(str)) 74 + } 75 + 76 + func bytesToRustBuffer(b []byte) C.RustBuffer { 77 + if len(b) == 0 { 78 + return C.RustBuffer{} 79 + } 80 + // We can pass the pointer along here, as it is pinned 81 + // for the duration of this call 82 + foreign := C.ForeignBytes{ 83 + len: C.int(len(b)), 84 + data: (*C.uchar)(unsafe.Pointer(&b[0])), 85 + } 86 + 87 + return rustCall(func(status *C.RustCallStatus) C.RustBuffer { 88 + return C.ffi_iroh_streamplace_rustbuffer_from_bytes(foreign, status) 89 + }) 90 + } 91 + 92 + type BufLifter[GoType any] interface { 93 + Lift(value RustBufferI) GoType 94 + } 95 + 96 + type BufLowerer[GoType any] interface { 97 + Lower(value GoType) C.RustBuffer 98 + } 99 + 100 + type BufReader[GoType any] interface { 101 + Read(reader io.Reader) GoType 102 + } 103 + 104 + type BufWriter[GoType any] interface { 105 + Write(writer io.Writer, value GoType) 106 + } 107 + 108 + func LowerIntoRustBuffer[GoType any](bufWriter BufWriter[GoType], value GoType) C.RustBuffer { 109 + // This might be not the most efficient way but it does not require knowing allocation size 110 + // beforehand 111 + var buffer bytes.Buffer 112 + bufWriter.Write(&buffer, value) 113 + 114 + bytes, err := io.ReadAll(&buffer) 115 + if err != nil { 116 + panic(fmt.Errorf("reading written data: %w", err)) 117 + } 118 + return bytesToRustBuffer(bytes) 119 + } 120 + 121 + func LiftFromRustBuffer[GoType any](bufReader BufReader[GoType], rbuf RustBufferI) GoType { 122 + defer rbuf.Free() 123 + reader := rbuf.AsReader() 124 + item := bufReader.Read(reader) 125 + if reader.Len() > 0 { 126 + // TODO: Remove this 127 + leftover, _ := io.ReadAll(reader) 128 + panic(fmt.Errorf("Junk remaining in buffer after lifting: %s", string(leftover))) 129 + } 130 + return item 131 + } 132 + 133 + func rustCallWithError[E any, U any](converter BufReader[*E], callback func(*C.RustCallStatus) U) (U, *E) { 134 + var status C.RustCallStatus 135 + returnValue := callback(&status) 136 + err := checkCallStatus(converter, status) 137 + return returnValue, err 138 + } 139 + 140 + func checkCallStatus[E any](converter BufReader[*E], status C.RustCallStatus) *E { 141 + switch status.code { 142 + case 0: 143 + return nil 144 + case 1: 145 + return LiftFromRustBuffer(converter, GoRustBuffer{inner: status.errorBuf}) 146 + case 2: 147 + // when the rust code sees a panic, it tries to construct a rustBuffer 148 + // with the message. but if that code panics, then it just sends back 149 + // an empty buffer. 150 + if status.errorBuf.len > 0 { 151 + panic(fmt.Errorf("%s", FfiConverterStringINSTANCE.Lift(GoRustBuffer{inner: status.errorBuf}))) 152 + } else { 153 + panic(fmt.Errorf("Rust panicked while handling Rust panic")) 154 + } 155 + default: 156 + panic(fmt.Errorf("unknown status code: %d", status.code)) 157 + } 158 + } 159 + 160 + func checkCallStatusUnknown(status C.RustCallStatus) error { 161 + switch status.code { 162 + case 0: 163 + return nil 164 + case 1: 165 + panic(fmt.Errorf("function not returning an error returned an error")) 166 + case 2: 167 + // when the rust code sees a panic, it tries to construct a C.RustBuffer 168 + // with the message. but if that code panics, then it just sends back 169 + // an empty buffer. 170 + if status.errorBuf.len > 0 { 171 + panic(fmt.Errorf("%s", FfiConverterStringINSTANCE.Lift(GoRustBuffer{ 172 + inner: status.errorBuf, 173 + }))) 174 + } else { 175 + panic(fmt.Errorf("Rust panicked while handling Rust panic")) 176 + } 177 + default: 178 + return fmt.Errorf("unknown status code: %d", status.code) 179 + } 180 + } 181 + 182 + func rustCall[U any](callback func(*C.RustCallStatus) U) U { 183 + returnValue, err := rustCallWithError[error](nil, callback) 184 + if err != nil { 185 + panic(err) 186 + } 187 + return returnValue 188 + } 189 + 190 + type NativeError interface { 191 + AsError() error 192 + } 193 + 194 + func writeInt8(writer io.Writer, value int8) { 195 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 196 + panic(err) 197 + } 198 + } 199 + 200 + func writeUint8(writer io.Writer, value uint8) { 201 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 202 + panic(err) 203 + } 204 + } 205 + 206 + func writeInt16(writer io.Writer, value int16) { 207 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 208 + panic(err) 209 + } 210 + } 211 + 212 + func writeUint16(writer io.Writer, value uint16) { 213 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 214 + panic(err) 215 + } 216 + } 217 + 218 + func writeInt32(writer io.Writer, value int32) { 219 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 220 + panic(err) 221 + } 222 + } 223 + 224 + func writeUint32(writer io.Writer, value uint32) { 225 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 226 + panic(err) 227 + } 228 + } 229 + 230 + func writeInt64(writer io.Writer, value int64) { 231 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 232 + panic(err) 233 + } 234 + } 235 + 236 + func writeUint64(writer io.Writer, value uint64) { 237 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 238 + panic(err) 239 + } 240 + } 241 + 242 + func writeFloat32(writer io.Writer, value float32) { 243 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 244 + panic(err) 245 + } 246 + } 247 + 248 + func writeFloat64(writer io.Writer, value float64) { 249 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 250 + panic(err) 251 + } 252 + } 253 + 254 + func readInt8(reader io.Reader) int8 { 255 + var result int8 256 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 257 + panic(err) 258 + } 259 + return result 260 + } 261 + 262 + func readUint8(reader io.Reader) uint8 { 263 + var result uint8 264 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 265 + panic(err) 266 + } 267 + return result 268 + } 269 + 270 + func readInt16(reader io.Reader) int16 { 271 + var result int16 272 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 273 + panic(err) 274 + } 275 + return result 276 + } 277 + 278 + func readUint16(reader io.Reader) uint16 { 279 + var result uint16 280 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 281 + panic(err) 282 + } 283 + return result 284 + } 285 + 286 + func readInt32(reader io.Reader) int32 { 287 + var result int32 288 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 289 + panic(err) 290 + } 291 + return result 292 + } 293 + 294 + func readUint32(reader io.Reader) uint32 { 295 + var result uint32 296 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 297 + panic(err) 298 + } 299 + return result 300 + } 301 + 302 + func readInt64(reader io.Reader) int64 { 303 + var result int64 304 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 305 + panic(err) 306 + } 307 + return result 308 + } 309 + 310 + func readUint64(reader io.Reader) uint64 { 311 + var result uint64 312 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 313 + panic(err) 314 + } 315 + return result 316 + } 317 + 318 + func readFloat32(reader io.Reader) float32 { 319 + var result float32 320 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 321 + panic(err) 322 + } 323 + return result 324 + } 325 + 326 + func readFloat64(reader io.Reader) float64 { 327 + var result float64 328 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 329 + panic(err) 330 + } 331 + return result 332 + } 333 + 334 + func init() { 335 + 336 + uniffiCheckChecksums() 337 + } 338 + 339 + func uniffiCheckChecksums() { 340 + // Get the bindings contract version from our ComponentInterface 341 + bindingsContractVersion := 26 342 + // Get the scaffolding contract version by calling the into the dylib 343 + scaffoldingContractVersion := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint32_t { 344 + return C.ffi_iroh_streamplace_uniffi_contract_version() 345 + }) 346 + if bindingsContractVersion != int(scaffoldingContractVersion) { 347 + // If this happens try cleaning and rebuilding your project 348 + panic("iroh_streamplace: UniFFI contract version mismatch") 349 + } 350 + { 351 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 352 + return C.uniffi_iroh_streamplace_checksum_constructor_senderendpoint_new() 353 + }) 354 + if checksum != 37772 { 355 + // If this happens try cleaning and rebuilding your project 356 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_senderendpoint_new: UniFFI API checksum mismatch") 357 + } 358 + } 359 + } 360 + 361 + type FfiConverterString struct{} 362 + 363 + var FfiConverterStringINSTANCE = FfiConverterString{} 364 + 365 + func (FfiConverterString) Lift(rb RustBufferI) string { 366 + defer rb.Free() 367 + reader := rb.AsReader() 368 + b, err := io.ReadAll(reader) 369 + if err != nil { 370 + panic(fmt.Errorf("reading reader: %w", err)) 371 + } 372 + return string(b) 373 + } 374 + 375 + func (FfiConverterString) Read(reader io.Reader) string { 376 + length := readInt32(reader) 377 + buffer := make([]byte, length) 378 + read_length, err := reader.Read(buffer) 379 + if err != nil { 380 + panic(err) 381 + } 382 + if read_length != int(length) { 383 + panic(fmt.Errorf("bad read length when reading string, expected %d, read %d", length, read_length)) 384 + } 385 + return string(buffer) 386 + } 387 + 388 + func (FfiConverterString) Lower(value string) C.RustBuffer { 389 + return stringToRustBuffer(value) 390 + } 391 + 392 + func (FfiConverterString) Write(writer io.Writer, value string) { 393 + if len(value) > math.MaxInt32 { 394 + panic("String is too large to fit into Int32") 395 + } 396 + 397 + writeInt32(writer, int32(len(value))) 398 + write_length, err := io.WriteString(writer, value) 399 + if err != nil { 400 + panic(err) 401 + } 402 + if write_length != len(value) { 403 + panic(fmt.Errorf("bad write length when writing string, expected %d, written %d", len(value), write_length)) 404 + } 405 + } 406 + 407 + type FfiDestroyerString struct{} 408 + 409 + func (FfiDestroyerString) Destroy(_ string) {} 410 + 411 + // Below is an implementation of synchronization requirements outlined in the link. 412 + // https://github.com/mozilla/uniffi-rs/blob/0dc031132d9493ca812c3af6e7dd60ad2ea95bf0/uniffi_bindgen/src/bindings/kotlin/templates/ObjectRuntime.kt#L31 413 + 414 + type FfiObject struct { 415 + pointer unsafe.Pointer 416 + callCounter atomic.Int64 417 + cloneFunction func(unsafe.Pointer, *C.RustCallStatus) unsafe.Pointer 418 + freeFunction func(unsafe.Pointer, *C.RustCallStatus) 419 + destroyed atomic.Bool 420 + } 421 + 422 + func newFfiObject( 423 + pointer unsafe.Pointer, 424 + cloneFunction func(unsafe.Pointer, *C.RustCallStatus) unsafe.Pointer, 425 + freeFunction func(unsafe.Pointer, *C.RustCallStatus), 426 + ) FfiObject { 427 + return FfiObject{ 428 + pointer: pointer, 429 + cloneFunction: cloneFunction, 430 + freeFunction: freeFunction, 431 + } 432 + } 433 + 434 + func (ffiObject *FfiObject) incrementPointer(debugName string) unsafe.Pointer { 435 + for { 436 + counter := ffiObject.callCounter.Load() 437 + if counter <= -1 { 438 + panic(fmt.Errorf("%v object has already been destroyed", debugName)) 439 + } 440 + if counter == math.MaxInt64 { 441 + panic(fmt.Errorf("%v object call counter would overflow", debugName)) 442 + } 443 + if ffiObject.callCounter.CompareAndSwap(counter, counter+1) { 444 + break 445 + } 446 + } 447 + 448 + return rustCall(func(status *C.RustCallStatus) unsafe.Pointer { 449 + return ffiObject.cloneFunction(ffiObject.pointer, status) 450 + }) 451 + } 452 + 453 + func (ffiObject *FfiObject) decrementPointer() { 454 + if ffiObject.callCounter.Add(-1) == -1 { 455 + ffiObject.freeRustArcPtr() 456 + } 457 + } 458 + 459 + func (ffiObject *FfiObject) destroy() { 460 + if ffiObject.destroyed.CompareAndSwap(false, true) { 461 + if ffiObject.callCounter.Add(-1) == -1 { 462 + ffiObject.freeRustArcPtr() 463 + } 464 + } 465 + } 466 + 467 + func (ffiObject *FfiObject) freeRustArcPtr() { 468 + rustCall(func(status *C.RustCallStatus) int32 { 469 + ffiObject.freeFunction(ffiObject.pointer, status) 470 + return 0 471 + }) 472 + } 473 + 474 + type SenderEndpointInterface interface { 475 + } 476 + type SenderEndpoint struct { 477 + ffiObject FfiObject 478 + } 479 + 480 + // Create a new sender endpoint. 481 + func NewSenderEndpoint() *SenderEndpoint { 482 + res, _ := uniffiRustCallAsync[struct{}]( 483 + nil, 484 + // completeFn 485 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 486 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 487 + return res 488 + }, 489 + // liftFn 490 + func(ffi unsafe.Pointer) *SenderEndpoint { 491 + return FfiConverterSenderEndpointINSTANCE.Lift(ffi) 492 + }, 493 + C.uniffi_iroh_streamplace_fn_constructor_senderendpoint_new(), 494 + // pollFn 495 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 496 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 497 + }, 498 + // freeFn 499 + func(handle C.uint64_t) { 500 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 501 + }, 502 + ) 503 + 504 + return res 505 + } 506 + 507 + func (object *SenderEndpoint) Destroy() { 508 + runtime.SetFinalizer(object, nil) 509 + object.ffiObject.destroy() 510 + } 511 + 512 + type FfiConverterSenderEndpoint struct{} 513 + 514 + var FfiConverterSenderEndpointINSTANCE = FfiConverterSenderEndpoint{} 515 + 516 + func (c FfiConverterSenderEndpoint) Lift(pointer unsafe.Pointer) *SenderEndpoint { 517 + result := &SenderEndpoint{ 518 + newFfiObject( 519 + pointer, 520 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 521 + return C.uniffi_iroh_streamplace_fn_clone_senderendpoint(pointer, status) 522 + }, 523 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 524 + C.uniffi_iroh_streamplace_fn_free_senderendpoint(pointer, status) 525 + }, 526 + ), 527 + } 528 + runtime.SetFinalizer(result, (*SenderEndpoint).Destroy) 529 + return result 530 + } 531 + 532 + func (c FfiConverterSenderEndpoint) Read(reader io.Reader) *SenderEndpoint { 533 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 534 + } 535 + 536 + func (c FfiConverterSenderEndpoint) Lower(value *SenderEndpoint) unsafe.Pointer { 537 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 538 + // because the pointer will be decremented immediately after this function returns, 539 + // and someone will be left holding onto a non-locked pointer. 540 + pointer := value.ffiObject.incrementPointer("*SenderEndpoint") 541 + defer value.ffiObject.decrementPointer() 542 + return pointer 543 + 544 + } 545 + 546 + func (c FfiConverterSenderEndpoint) Write(writer io.Writer, value *SenderEndpoint) { 547 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 548 + } 549 + 550 + type FfiDestroyerSenderEndpoint struct{} 551 + 552 + func (_ FfiDestroyerSenderEndpoint) Destroy(value *SenderEndpoint) { 553 + value.Destroy() 554 + } 555 + 556 + const ( 557 + uniffiRustFuturePollReady int8 = 0 558 + uniffiRustFuturePollMaybeReady int8 = 1 559 + ) 560 + 561 + type rustFuturePollFunc func(C.uint64_t, C.UniffiRustFutureContinuationCallback, C.uint64_t) 562 + type rustFutureCompleteFunc[T any] func(C.uint64_t, *C.RustCallStatus) T 563 + type rustFutureFreeFunc func(C.uint64_t) 564 + 565 + //export iroh_streamplace_uniffiFutureContinuationCallback 566 + func iroh_streamplace_uniffiFutureContinuationCallback(data C.uint64_t, pollResult C.int8_t) { 567 + h := cgo.Handle(uintptr(data)) 568 + waiter := h.Value().(chan int8) 569 + waiter <- int8(pollResult) 570 + } 571 + 572 + func uniffiRustCallAsync[E any, T any, F any]( 573 + errConverter BufReader[*E], 574 + completeFunc rustFutureCompleteFunc[F], 575 + liftFunc func(F) T, 576 + rustFuture C.uint64_t, 577 + pollFunc rustFuturePollFunc, 578 + freeFunc rustFutureFreeFunc, 579 + ) (T, *E) { 580 + defer freeFunc(rustFuture) 581 + 582 + pollResult := int8(-1) 583 + waiter := make(chan int8, 1) 584 + 585 + chanHandle := cgo.NewHandle(waiter) 586 + defer chanHandle.Delete() 587 + 588 + for pollResult != uniffiRustFuturePollReady { 589 + pollFunc( 590 + rustFuture, 591 + (C.UniffiRustFutureContinuationCallback)(C.iroh_streamplace_uniffiFutureContinuationCallback), 592 + C.uint64_t(chanHandle), 593 + ) 594 + pollResult = <-waiter 595 + } 596 + 597 + var goValue T 598 + var ffiValue F 599 + var err *E 600 + 601 + ffiValue, err = rustCallWithError(errConverter, func(status *C.RustCallStatus) F { 602 + return completeFunc(rustFuture, status) 603 + }) 604 + if err != nil { 605 + return goValue, err 606 + } 607 + return liftFunc(ffiValue), nil 608 + } 609 + 610 + //export iroh_streamplace_uniffiFreeGorutine 611 + func iroh_streamplace_uniffiFreeGorutine(data C.uint64_t) { 612 + handle := cgo.Handle(uintptr(data)) 613 + defer handle.Delete() 614 + 615 + guard := handle.Value().(chan struct{}) 616 + guard <- struct{}{} 617 + }
+692
pkg/iroh_streamplace/generated/iroh_streamplace/iroh_streamplace.h
··· 1 + 2 + 3 + // This file was autogenerated by some hot garbage in the `uniffi` crate. 4 + // Trust me, you don't want to mess with it! 5 + 6 + 7 + 8 + #include <stdbool.h> 9 + #include <stdint.h> 10 + 11 + // The following structs are used to implement the lowest level 12 + // of the FFI, and thus useful to multiple uniffied crates. 13 + // We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H. 14 + #ifdef UNIFFI_SHARED_H 15 + // We also try to prevent mixing versions of shared uniffi header structs. 16 + // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_HEADER_V6 17 + #ifndef UNIFFI_SHARED_HEADER_V6 18 + #error Combining helper code from multiple versions of uniffi is not supported 19 + #endif // ndef UNIFFI_SHARED_HEADER_V6 20 + #else 21 + #define UNIFFI_SHARED_H 22 + #define UNIFFI_SHARED_HEADER_V6 23 + // ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* ⚠️ 24 + // ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V6 in this file. ⚠️ 25 + 26 + typedef struct RustBuffer { 27 + uint64_t capacity; 28 + uint64_t len; 29 + uint8_t *data; 30 + } RustBuffer; 31 + 32 + typedef struct ForeignBytes { 33 + int32_t len; 34 + const uint8_t *data; 35 + } ForeignBytes; 36 + 37 + // Error definitions 38 + typedef struct RustCallStatus { 39 + int8_t code; 40 + RustBuffer errorBuf; 41 + } RustCallStatus; 42 + 43 + #endif // UNIFFI_SHARED_H 44 + 45 + 46 + #ifndef UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK 47 + #define UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK 48 + typedef void (*UniffiRustFutureContinuationCallback)(uint64_t data, int8_t poll_result); 49 + 50 + // Making function static works arround: 51 + // https://github.com/golang/go/issues/11263 52 + static void call_UniffiRustFutureContinuationCallback( 53 + UniffiRustFutureContinuationCallback cb, uint64_t data, int8_t poll_result) 54 + { 55 + return cb(data, poll_result); 56 + } 57 + 58 + 59 + #endif 60 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE 61 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE 62 + typedef void (*UniffiForeignFutureFree)(uint64_t handle); 63 + 64 + // Making function static works arround: 65 + // https://github.com/golang/go/issues/11263 66 + static void call_UniffiForeignFutureFree( 67 + UniffiForeignFutureFree cb, uint64_t handle) 68 + { 69 + return cb(handle); 70 + } 71 + 72 + 73 + #endif 74 + #ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE 75 + #define UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE 76 + typedef void (*UniffiCallbackInterfaceFree)(uint64_t handle); 77 + 78 + // Making function static works arround: 79 + // https://github.com/golang/go/issues/11263 80 + static void call_UniffiCallbackInterfaceFree( 81 + UniffiCallbackInterfaceFree cb, uint64_t handle) 82 + { 83 + return cb(handle); 84 + } 85 + 86 + 87 + #endif 88 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE 89 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE 90 + typedef struct UniffiForeignFuture { 91 + uint64_t handle; 92 + UniffiForeignFutureFree free; 93 + } UniffiForeignFuture; 94 + 95 + #endif 96 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 97 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 98 + typedef struct UniffiForeignFutureStructU8 { 99 + uint8_t returnValue; 100 + RustCallStatus callStatus; 101 + } UniffiForeignFutureStructU8; 102 + 103 + #endif 104 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 105 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 106 + typedef void (*UniffiForeignFutureCompleteU8)(uint64_t callback_data, UniffiForeignFutureStructU8 result); 107 + 108 + // Making function static works arround: 109 + // https://github.com/golang/go/issues/11263 110 + static void call_UniffiForeignFutureCompleteU8( 111 + UniffiForeignFutureCompleteU8 cb, uint64_t callback_data, UniffiForeignFutureStructU8 result) 112 + { 113 + return cb(callback_data, result); 114 + } 115 + 116 + 117 + #endif 118 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 119 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 120 + typedef struct UniffiForeignFutureStructI8 { 121 + int8_t returnValue; 122 + RustCallStatus callStatus; 123 + } UniffiForeignFutureStructI8; 124 + 125 + #endif 126 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 127 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 128 + typedef void (*UniffiForeignFutureCompleteI8)(uint64_t callback_data, UniffiForeignFutureStructI8 result); 129 + 130 + // Making function static works arround: 131 + // https://github.com/golang/go/issues/11263 132 + static void call_UniffiForeignFutureCompleteI8( 133 + UniffiForeignFutureCompleteI8 cb, uint64_t callback_data, UniffiForeignFutureStructI8 result) 134 + { 135 + return cb(callback_data, result); 136 + } 137 + 138 + 139 + #endif 140 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 141 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 142 + typedef struct UniffiForeignFutureStructU16 { 143 + uint16_t returnValue; 144 + RustCallStatus callStatus; 145 + } UniffiForeignFutureStructU16; 146 + 147 + #endif 148 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 149 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 150 + typedef void (*UniffiForeignFutureCompleteU16)(uint64_t callback_data, UniffiForeignFutureStructU16 result); 151 + 152 + // Making function static works arround: 153 + // https://github.com/golang/go/issues/11263 154 + static void call_UniffiForeignFutureCompleteU16( 155 + UniffiForeignFutureCompleteU16 cb, uint64_t callback_data, UniffiForeignFutureStructU16 result) 156 + { 157 + return cb(callback_data, result); 158 + } 159 + 160 + 161 + #endif 162 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 163 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 164 + typedef struct UniffiForeignFutureStructI16 { 165 + int16_t returnValue; 166 + RustCallStatus callStatus; 167 + } UniffiForeignFutureStructI16; 168 + 169 + #endif 170 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 171 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 172 + typedef void (*UniffiForeignFutureCompleteI16)(uint64_t callback_data, UniffiForeignFutureStructI16 result); 173 + 174 + // Making function static works arround: 175 + // https://github.com/golang/go/issues/11263 176 + static void call_UniffiForeignFutureCompleteI16( 177 + UniffiForeignFutureCompleteI16 cb, uint64_t callback_data, UniffiForeignFutureStructI16 result) 178 + { 179 + return cb(callback_data, result); 180 + } 181 + 182 + 183 + #endif 184 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 185 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 186 + typedef struct UniffiForeignFutureStructU32 { 187 + uint32_t returnValue; 188 + RustCallStatus callStatus; 189 + } UniffiForeignFutureStructU32; 190 + 191 + #endif 192 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 193 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 194 + typedef void (*UniffiForeignFutureCompleteU32)(uint64_t callback_data, UniffiForeignFutureStructU32 result); 195 + 196 + // Making function static works arround: 197 + // https://github.com/golang/go/issues/11263 198 + static void call_UniffiForeignFutureCompleteU32( 199 + UniffiForeignFutureCompleteU32 cb, uint64_t callback_data, UniffiForeignFutureStructU32 result) 200 + { 201 + return cb(callback_data, result); 202 + } 203 + 204 + 205 + #endif 206 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 207 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 208 + typedef struct UniffiForeignFutureStructI32 { 209 + int32_t returnValue; 210 + RustCallStatus callStatus; 211 + } UniffiForeignFutureStructI32; 212 + 213 + #endif 214 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 215 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 216 + typedef void (*UniffiForeignFutureCompleteI32)(uint64_t callback_data, UniffiForeignFutureStructI32 result); 217 + 218 + // Making function static works arround: 219 + // https://github.com/golang/go/issues/11263 220 + static void call_UniffiForeignFutureCompleteI32( 221 + UniffiForeignFutureCompleteI32 cb, uint64_t callback_data, UniffiForeignFutureStructI32 result) 222 + { 223 + return cb(callback_data, result); 224 + } 225 + 226 + 227 + #endif 228 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 229 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 230 + typedef struct UniffiForeignFutureStructU64 { 231 + uint64_t returnValue; 232 + RustCallStatus callStatus; 233 + } UniffiForeignFutureStructU64; 234 + 235 + #endif 236 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 237 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 238 + typedef void (*UniffiForeignFutureCompleteU64)(uint64_t callback_data, UniffiForeignFutureStructU64 result); 239 + 240 + // Making function static works arround: 241 + // https://github.com/golang/go/issues/11263 242 + static void call_UniffiForeignFutureCompleteU64( 243 + UniffiForeignFutureCompleteU64 cb, uint64_t callback_data, UniffiForeignFutureStructU64 result) 244 + { 245 + return cb(callback_data, result); 246 + } 247 + 248 + 249 + #endif 250 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 251 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 252 + typedef struct UniffiForeignFutureStructI64 { 253 + int64_t returnValue; 254 + RustCallStatus callStatus; 255 + } UniffiForeignFutureStructI64; 256 + 257 + #endif 258 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 259 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 260 + typedef void (*UniffiForeignFutureCompleteI64)(uint64_t callback_data, UniffiForeignFutureStructI64 result); 261 + 262 + // Making function static works arround: 263 + // https://github.com/golang/go/issues/11263 264 + static void call_UniffiForeignFutureCompleteI64( 265 + UniffiForeignFutureCompleteI64 cb, uint64_t callback_data, UniffiForeignFutureStructI64 result) 266 + { 267 + return cb(callback_data, result); 268 + } 269 + 270 + 271 + #endif 272 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 273 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 274 + typedef struct UniffiForeignFutureStructF32 { 275 + float returnValue; 276 + RustCallStatus callStatus; 277 + } UniffiForeignFutureStructF32; 278 + 279 + #endif 280 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 281 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 282 + typedef void (*UniffiForeignFutureCompleteF32)(uint64_t callback_data, UniffiForeignFutureStructF32 result); 283 + 284 + // Making function static works arround: 285 + // https://github.com/golang/go/issues/11263 286 + static void call_UniffiForeignFutureCompleteF32( 287 + UniffiForeignFutureCompleteF32 cb, uint64_t callback_data, UniffiForeignFutureStructF32 result) 288 + { 289 + return cb(callback_data, result); 290 + } 291 + 292 + 293 + #endif 294 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 295 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 296 + typedef struct UniffiForeignFutureStructF64 { 297 + double returnValue; 298 + RustCallStatus callStatus; 299 + } UniffiForeignFutureStructF64; 300 + 301 + #endif 302 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 303 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 304 + typedef void (*UniffiForeignFutureCompleteF64)(uint64_t callback_data, UniffiForeignFutureStructF64 result); 305 + 306 + // Making function static works arround: 307 + // https://github.com/golang/go/issues/11263 308 + static void call_UniffiForeignFutureCompleteF64( 309 + UniffiForeignFutureCompleteF64 cb, uint64_t callback_data, UniffiForeignFutureStructF64 result) 310 + { 311 + return cb(callback_data, result); 312 + } 313 + 314 + 315 + #endif 316 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER 317 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER 318 + typedef struct UniffiForeignFutureStructPointer { 319 + void* returnValue; 320 + RustCallStatus callStatus; 321 + } UniffiForeignFutureStructPointer; 322 + 323 + #endif 324 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER 325 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER 326 + typedef void (*UniffiForeignFutureCompletePointer)(uint64_t callback_data, UniffiForeignFutureStructPointer result); 327 + 328 + // Making function static works arround: 329 + // https://github.com/golang/go/issues/11263 330 + static void call_UniffiForeignFutureCompletePointer( 331 + UniffiForeignFutureCompletePointer cb, uint64_t callback_data, UniffiForeignFutureStructPointer result) 332 + { 333 + return cb(callback_data, result); 334 + } 335 + 336 + 337 + #endif 338 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER 339 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER 340 + typedef struct UniffiForeignFutureStructRustBuffer { 341 + RustBuffer returnValue; 342 + RustCallStatus callStatus; 343 + } UniffiForeignFutureStructRustBuffer; 344 + 345 + #endif 346 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER 347 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER 348 + typedef void (*UniffiForeignFutureCompleteRustBuffer)(uint64_t callback_data, UniffiForeignFutureStructRustBuffer result); 349 + 350 + // Making function static works arround: 351 + // https://github.com/golang/go/issues/11263 352 + static void call_UniffiForeignFutureCompleteRustBuffer( 353 + UniffiForeignFutureCompleteRustBuffer cb, uint64_t callback_data, UniffiForeignFutureStructRustBuffer result) 354 + { 355 + return cb(callback_data, result); 356 + } 357 + 358 + 359 + #endif 360 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID 361 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID 362 + typedef struct UniffiForeignFutureStructVoid { 363 + RustCallStatus callStatus; 364 + } UniffiForeignFutureStructVoid; 365 + 366 + #endif 367 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID 368 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID 369 + typedef void (*UniffiForeignFutureCompleteVoid)(uint64_t callback_data, UniffiForeignFutureStructVoid result); 370 + 371 + // Making function static works arround: 372 + // https://github.com/golang/go/issues/11263 373 + static void call_UniffiForeignFutureCompleteVoid( 374 + UniffiForeignFutureCompleteVoid cb, uint64_t callback_data, UniffiForeignFutureStructVoid result) 375 + { 376 + return cb(callback_data, result); 377 + } 378 + 379 + 380 + #endif 381 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_SENDERENDPOINT 382 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_SENDERENDPOINT 383 + void* uniffi_iroh_streamplace_fn_clone_senderendpoint(void* ptr, RustCallStatus *out_status 384 + ); 385 + #endif 386 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_SENDERENDPOINT 387 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_SENDERENDPOINT 388 + void uniffi_iroh_streamplace_fn_free_senderendpoint(void* ptr, RustCallStatus *out_status 389 + ); 390 + #endif 391 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_SENDERENDPOINT_NEW 392 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_SENDERENDPOINT_NEW 393 + uint64_t uniffi_iroh_streamplace_fn_constructor_senderendpoint_new(void 394 + 395 + ); 396 + #endif 397 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_ALLOC 398 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_ALLOC 399 + RustBuffer ffi_iroh_streamplace_rustbuffer_alloc(uint64_t size, RustCallStatus *out_status 400 + ); 401 + #endif 402 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FROM_BYTES 403 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FROM_BYTES 404 + RustBuffer ffi_iroh_streamplace_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *out_status 405 + ); 406 + #endif 407 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FREE 408 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FREE 409 + void ffi_iroh_streamplace_rustbuffer_free(RustBuffer buf, RustCallStatus *out_status 410 + ); 411 + #endif 412 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_RESERVE 413 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_RESERVE 414 + RustBuffer ffi_iroh_streamplace_rustbuffer_reserve(RustBuffer buf, uint64_t additional, RustCallStatus *out_status 415 + ); 416 + #endif 417 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U8 418 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U8 419 + void ffi_iroh_streamplace_rust_future_poll_u8(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 420 + ); 421 + #endif 422 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U8 423 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U8 424 + void ffi_iroh_streamplace_rust_future_cancel_u8(uint64_t handle 425 + ); 426 + #endif 427 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U8 428 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U8 429 + void ffi_iroh_streamplace_rust_future_free_u8(uint64_t handle 430 + ); 431 + #endif 432 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U8 433 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U8 434 + uint8_t ffi_iroh_streamplace_rust_future_complete_u8(uint64_t handle, RustCallStatus *out_status 435 + ); 436 + #endif 437 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I8 438 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I8 439 + void ffi_iroh_streamplace_rust_future_poll_i8(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 440 + ); 441 + #endif 442 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I8 443 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I8 444 + void ffi_iroh_streamplace_rust_future_cancel_i8(uint64_t handle 445 + ); 446 + #endif 447 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I8 448 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I8 449 + void ffi_iroh_streamplace_rust_future_free_i8(uint64_t handle 450 + ); 451 + #endif 452 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I8 453 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I8 454 + int8_t ffi_iroh_streamplace_rust_future_complete_i8(uint64_t handle, RustCallStatus *out_status 455 + ); 456 + #endif 457 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U16 458 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U16 459 + void ffi_iroh_streamplace_rust_future_poll_u16(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 460 + ); 461 + #endif 462 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U16 463 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U16 464 + void ffi_iroh_streamplace_rust_future_cancel_u16(uint64_t handle 465 + ); 466 + #endif 467 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U16 468 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U16 469 + void ffi_iroh_streamplace_rust_future_free_u16(uint64_t handle 470 + ); 471 + #endif 472 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U16 473 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U16 474 + uint16_t ffi_iroh_streamplace_rust_future_complete_u16(uint64_t handle, RustCallStatus *out_status 475 + ); 476 + #endif 477 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I16 478 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I16 479 + void ffi_iroh_streamplace_rust_future_poll_i16(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 480 + ); 481 + #endif 482 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I16 483 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I16 484 + void ffi_iroh_streamplace_rust_future_cancel_i16(uint64_t handle 485 + ); 486 + #endif 487 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I16 488 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I16 489 + void ffi_iroh_streamplace_rust_future_free_i16(uint64_t handle 490 + ); 491 + #endif 492 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I16 493 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I16 494 + int16_t ffi_iroh_streamplace_rust_future_complete_i16(uint64_t handle, RustCallStatus *out_status 495 + ); 496 + #endif 497 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U32 498 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U32 499 + void ffi_iroh_streamplace_rust_future_poll_u32(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 500 + ); 501 + #endif 502 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U32 503 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U32 504 + void ffi_iroh_streamplace_rust_future_cancel_u32(uint64_t handle 505 + ); 506 + #endif 507 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U32 508 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U32 509 + void ffi_iroh_streamplace_rust_future_free_u32(uint64_t handle 510 + ); 511 + #endif 512 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U32 513 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U32 514 + uint32_t ffi_iroh_streamplace_rust_future_complete_u32(uint64_t handle, RustCallStatus *out_status 515 + ); 516 + #endif 517 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I32 518 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I32 519 + void ffi_iroh_streamplace_rust_future_poll_i32(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 520 + ); 521 + #endif 522 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I32 523 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I32 524 + void ffi_iroh_streamplace_rust_future_cancel_i32(uint64_t handle 525 + ); 526 + #endif 527 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I32 528 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I32 529 + void ffi_iroh_streamplace_rust_future_free_i32(uint64_t handle 530 + ); 531 + #endif 532 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I32 533 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I32 534 + int32_t ffi_iroh_streamplace_rust_future_complete_i32(uint64_t handle, RustCallStatus *out_status 535 + ); 536 + #endif 537 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U64 538 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U64 539 + void ffi_iroh_streamplace_rust_future_poll_u64(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 540 + ); 541 + #endif 542 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U64 543 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U64 544 + void ffi_iroh_streamplace_rust_future_cancel_u64(uint64_t handle 545 + ); 546 + #endif 547 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U64 548 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U64 549 + void ffi_iroh_streamplace_rust_future_free_u64(uint64_t handle 550 + ); 551 + #endif 552 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U64 553 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U64 554 + uint64_t ffi_iroh_streamplace_rust_future_complete_u64(uint64_t handle, RustCallStatus *out_status 555 + ); 556 + #endif 557 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I64 558 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I64 559 + void ffi_iroh_streamplace_rust_future_poll_i64(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 560 + ); 561 + #endif 562 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I64 563 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I64 564 + void ffi_iroh_streamplace_rust_future_cancel_i64(uint64_t handle 565 + ); 566 + #endif 567 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I64 568 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I64 569 + void ffi_iroh_streamplace_rust_future_free_i64(uint64_t handle 570 + ); 571 + #endif 572 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I64 573 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I64 574 + int64_t ffi_iroh_streamplace_rust_future_complete_i64(uint64_t handle, RustCallStatus *out_status 575 + ); 576 + #endif 577 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F32 578 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F32 579 + void ffi_iroh_streamplace_rust_future_poll_f32(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 580 + ); 581 + #endif 582 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F32 583 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F32 584 + void ffi_iroh_streamplace_rust_future_cancel_f32(uint64_t handle 585 + ); 586 + #endif 587 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F32 588 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F32 589 + void ffi_iroh_streamplace_rust_future_free_f32(uint64_t handle 590 + ); 591 + #endif 592 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F32 593 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F32 594 + float ffi_iroh_streamplace_rust_future_complete_f32(uint64_t handle, RustCallStatus *out_status 595 + ); 596 + #endif 597 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F64 598 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F64 599 + void ffi_iroh_streamplace_rust_future_poll_f64(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 600 + ); 601 + #endif 602 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F64 603 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F64 604 + void ffi_iroh_streamplace_rust_future_cancel_f64(uint64_t handle 605 + ); 606 + #endif 607 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F64 608 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F64 609 + void ffi_iroh_streamplace_rust_future_free_f64(uint64_t handle 610 + ); 611 + #endif 612 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F64 613 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F64 614 + double ffi_iroh_streamplace_rust_future_complete_f64(uint64_t handle, RustCallStatus *out_status 615 + ); 616 + #endif 617 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_POINTER 618 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_POINTER 619 + void ffi_iroh_streamplace_rust_future_poll_pointer(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 620 + ); 621 + #endif 622 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_POINTER 623 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_POINTER 624 + void ffi_iroh_streamplace_rust_future_cancel_pointer(uint64_t handle 625 + ); 626 + #endif 627 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_POINTER 628 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_POINTER 629 + void ffi_iroh_streamplace_rust_future_free_pointer(uint64_t handle 630 + ); 631 + #endif 632 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_POINTER 633 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_POINTER 634 + void* ffi_iroh_streamplace_rust_future_complete_pointer(uint64_t handle, RustCallStatus *out_status 635 + ); 636 + #endif 637 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_RUST_BUFFER 638 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_RUST_BUFFER 639 + void ffi_iroh_streamplace_rust_future_poll_rust_buffer(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 640 + ); 641 + #endif 642 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_RUST_BUFFER 643 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_RUST_BUFFER 644 + void ffi_iroh_streamplace_rust_future_cancel_rust_buffer(uint64_t handle 645 + ); 646 + #endif 647 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_RUST_BUFFER 648 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_RUST_BUFFER 649 + void ffi_iroh_streamplace_rust_future_free_rust_buffer(uint64_t handle 650 + ); 651 + #endif 652 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_RUST_BUFFER 653 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_RUST_BUFFER 654 + RustBuffer ffi_iroh_streamplace_rust_future_complete_rust_buffer(uint64_t handle, RustCallStatus *out_status 655 + ); 656 + #endif 657 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_VOID 658 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_VOID 659 + void ffi_iroh_streamplace_rust_future_poll_void(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 660 + ); 661 + #endif 662 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_VOID 663 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_VOID 664 + void ffi_iroh_streamplace_rust_future_cancel_void(uint64_t handle 665 + ); 666 + #endif 667 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_VOID 668 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_VOID 669 + void ffi_iroh_streamplace_rust_future_free_void(uint64_t handle 670 + ); 671 + #endif 672 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_VOID 673 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_VOID 674 + void ffi_iroh_streamplace_rust_future_complete_void(uint64_t handle, RustCallStatus *out_status 675 + ); 676 + #endif 677 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_SENDERENDPOINT_NEW 678 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_SENDERENDPOINT_NEW 679 + uint16_t uniffi_iroh_streamplace_checksum_constructor_senderendpoint_new(void 680 + 681 + ); 682 + #endif 683 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_UNIFFI_CONTRACT_VERSION 684 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_UNIFFI_CONTRACT_VERSION 685 + uint32_t ffi_iroh_streamplace_uniffi_contract_version(void 686 + 687 + ); 688 + #endif 689 + 690 + 691 + void iroh_streamplace_uniffiFutureContinuationCallback(uint64_t, int8_t); 692 + void iroh_streamplace_uniffiFreeGorutine(uint64_t);
+14
pkg/iroh_streamplace/iroh_streamplace.go
··· 1 + package iroh_streamplace 2 + 3 + import ( 4 + iroh "github.com/n0-computer/iroh-streamplace/pkg/iroh_streamplace/generated/iroh_streamplace" 5 + ) 6 + 7 + // #cgo LDFLAGS: -L../../target/release -liroh_streamplace -lm 8 + // #cgo darwin LDFLAGS: -framework Security 9 + import "C" 10 + 11 + func NewSenderEndpoint() *iroh.SenderEndpoint { 12 + ep := iroh.NewSenderEndpoint() 13 + return ep 14 + }
+9
pkg/iroh_streamplace/iroh_streamplace_test.go
··· 1 + package iroh_streamplace 2 + 3 + import ( 4 + "testing" 5 + ) 6 + 7 + func TestSender(*testing.T) { 8 + _ = NewSenderEndpoint() 9 + }
+17
src/lib.rs
··· 1 + uniffi::setup_scaffolding!(); 2 + 3 + #[derive(uniffi::Object)] 4 + pub struct SenderEndpoint { 5 + endpoint: iroh::Endpoint, 6 + } 7 + 8 + #[uniffi::export] 9 + impl SenderEndpoint { 10 + /// Create a new sender endpoint. 11 + #[uniffi::constructor(async_runtime = "tokio")] 12 + pub async fn new() -> SenderEndpoint { 13 + // TODO: error handling 14 + let endpoint = iroh::Endpoint::builder().bind().await.unwrap(); 15 + SenderEndpoint { endpoint } 16 + } 17 + }