[WIP] A simple wake-on-lan service

add PROXY env var

instead of building the web app, just route requests to the PROXY env var
PROXY is hardcoded in the binary and is ignored when making a release buikd

vielle.dev 648ca39a e20e734e

verified
+1338 -16
+1285 -13
Cargo.lock
··· 9 9 checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 10 10 11 11 [[package]] 12 + name = "aws-lc-rs" 13 + version = "1.16.1" 14 + source = "registry+https://github.com/rust-lang/crates.io-index" 15 + checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" 16 + dependencies = [ 17 + "aws-lc-sys", 18 + "zeroize", 19 + ] 20 + 21 + [[package]] 22 + name = "aws-lc-sys" 23 + version = "0.38.0" 24 + source = "registry+https://github.com/rust-lang/crates.io-index" 25 + checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" 26 + dependencies = [ 27 + "cc", 28 + "cmake", 29 + "dunce", 30 + "fs_extra", 31 + ] 32 + 33 + [[package]] 12 34 name = "axum" 13 35 version = "0.8.8" 14 36 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 61 83 ] 62 84 63 85 [[package]] 86 + name = "base64" 87 + version = "0.22.1" 88 + source = "registry+https://github.com/rust-lang/crates.io-index" 89 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 90 + 91 + [[package]] 64 92 name = "bitflags" 65 - version = "2.10.0" 93 + version = "2.11.0" 94 + source = "registry+https://github.com/rust-lang/crates.io-index" 95 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 96 + 97 + [[package]] 98 + name = "bumpalo" 99 + version = "3.20.2" 66 100 source = "registry+https://github.com/rust-lang/crates.io-index" 67 - checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 101 + checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 68 102 69 103 [[package]] 70 104 name = "bytes" ··· 73 107 checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 74 108 75 109 [[package]] 110 + name = "cc" 111 + version = "1.2.56" 112 + source = "registry+https://github.com/rust-lang/crates.io-index" 113 + checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" 114 + dependencies = [ 115 + "find-msvc-tools", 116 + "jobserver", 117 + "libc", 118 + "shlex", 119 + ] 120 + 121 + [[package]] 122 + name = "cesu8" 123 + version = "1.1.0" 124 + source = "registry+https://github.com/rust-lang/crates.io-index" 125 + checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 126 + 127 + [[package]] 76 128 name = "cfg-if" 77 129 version = "1.0.4" 78 130 source = "registry+https://github.com/rust-lang/crates.io-index" 79 131 checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 80 132 81 133 [[package]] 134 + name = "cfg_aliases" 135 + version = "0.2.1" 136 + source = "registry+https://github.com/rust-lang/crates.io-index" 137 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 138 + 139 + [[package]] 140 + name = "cmake" 141 + version = "0.1.57" 142 + source = "registry+https://github.com/rust-lang/crates.io-index" 143 + checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" 144 + dependencies = [ 145 + "cc", 146 + ] 147 + 148 + [[package]] 149 + name = "combine" 150 + version = "4.6.7" 151 + source = "registry+https://github.com/rust-lang/crates.io-index" 152 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 153 + dependencies = [ 154 + "bytes", 155 + "memchr", 156 + ] 157 + 158 + [[package]] 159 + name = "core-foundation" 160 + version = "0.9.4" 161 + source = "registry+https://github.com/rust-lang/crates.io-index" 162 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 163 + dependencies = [ 164 + "core-foundation-sys", 165 + "libc", 166 + ] 167 + 168 + [[package]] 169 + name = "core-foundation" 170 + version = "0.10.1" 171 + source = "registry+https://github.com/rust-lang/crates.io-index" 172 + checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 173 + dependencies = [ 174 + "core-foundation-sys", 175 + "libc", 176 + ] 177 + 178 + [[package]] 179 + name = "core-foundation-sys" 180 + version = "0.8.7" 181 + source = "registry+https://github.com/rust-lang/crates.io-index" 182 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 183 + 184 + [[package]] 185 + name = "displaydoc" 186 + version = "0.2.5" 187 + source = "registry+https://github.com/rust-lang/crates.io-index" 188 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 189 + dependencies = [ 190 + "proc-macro2", 191 + "quote", 192 + "syn", 193 + ] 194 + 195 + [[package]] 196 + name = "dunce" 197 + version = "1.0.5" 198 + source = "registry+https://github.com/rust-lang/crates.io-index" 199 + checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 200 + 201 + [[package]] 202 + name = "encoding_rs" 203 + version = "0.8.35" 204 + source = "registry+https://github.com/rust-lang/crates.io-index" 205 + checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 206 + dependencies = [ 207 + "cfg-if", 208 + ] 209 + 210 + [[package]] 82 211 name = "equivalent" 83 212 version = "1.0.2" 84 213 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 95 224 ] 96 225 97 226 [[package]] 227 + name = "find-msvc-tools" 228 + version = "0.1.9" 229 + source = "registry+https://github.com/rust-lang/crates.io-index" 230 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 231 + 232 + [[package]] 233 + name = "fnv" 234 + version = "1.0.7" 235 + source = "registry+https://github.com/rust-lang/crates.io-index" 236 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 237 + 238 + [[package]] 98 239 name = "form_urlencoded" 99 240 version = "1.2.2" 100 241 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 102 243 dependencies = [ 103 244 "percent-encoding", 104 245 ] 246 + 247 + [[package]] 248 + name = "fs_extra" 249 + version = "1.3.0" 250 + source = "registry+https://github.com/rust-lang/crates.io-index" 251 + checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" 105 252 106 253 [[package]] 107 254 name = "futures-channel" ··· 119 266 checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 120 267 121 268 [[package]] 269 + name = "futures-sink" 270 + version = "0.3.32" 271 + source = "registry+https://github.com/rust-lang/crates.io-index" 272 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 273 + 274 + [[package]] 122 275 name = "futures-task" 123 276 version = "0.3.32" 124 277 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 137 290 ] 138 291 139 292 [[package]] 293 + name = "getrandom" 294 + version = "0.2.17" 295 + source = "registry+https://github.com/rust-lang/crates.io-index" 296 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 297 + dependencies = [ 298 + "cfg-if", 299 + "js-sys", 300 + "libc", 301 + "wasi", 302 + "wasm-bindgen", 303 + ] 304 + 305 + [[package]] 306 + name = "getrandom" 307 + version = "0.3.4" 308 + source = "registry+https://github.com/rust-lang/crates.io-index" 309 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 310 + dependencies = [ 311 + "cfg-if", 312 + "js-sys", 313 + "libc", 314 + "r-efi", 315 + "wasip2", 316 + "wasm-bindgen", 317 + ] 318 + 319 + [[package]] 320 + name = "h2" 321 + version = "0.4.13" 322 + source = "registry+https://github.com/rust-lang/crates.io-index" 323 + checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" 324 + dependencies = [ 325 + "atomic-waker", 326 + "bytes", 327 + "fnv", 328 + "futures-core", 329 + "futures-sink", 330 + "http", 331 + "indexmap", 332 + "slab", 333 + "tokio", 334 + "tokio-util", 335 + "tracing", 336 + ] 337 + 338 + [[package]] 140 339 name = "hashbrown" 141 340 version = "0.16.1" 142 341 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 197 396 "bytes", 198 397 "futures-channel", 199 398 "futures-core", 399 + "h2", 200 400 "http", 201 401 "http-body", 202 402 "httparse", ··· 206 406 "pin-utils", 207 407 "smallvec", 208 408 "tokio", 409 + "want", 410 + ] 411 + 412 + [[package]] 413 + name = "hyper-rustls" 414 + version = "0.27.7" 415 + source = "registry+https://github.com/rust-lang/crates.io-index" 416 + checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" 417 + dependencies = [ 418 + "http", 419 + "hyper", 420 + "hyper-util", 421 + "rustls", 422 + "rustls-pki-types", 423 + "tokio", 424 + "tokio-rustls", 425 + "tower-service", 209 426 ] 210 427 211 428 [[package]] ··· 214 431 source = "registry+https://github.com/rust-lang/crates.io-index" 215 432 checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 216 433 dependencies = [ 434 + "base64", 217 435 "bytes", 436 + "futures-channel", 437 + "futures-util", 218 438 "http", 219 439 "http-body", 220 440 "hyper", 441 + "ipnet", 442 + "libc", 443 + "percent-encoding", 221 444 "pin-project-lite", 445 + "socket2", 446 + "system-configuration", 222 447 "tokio", 223 448 "tower-service", 449 + "tracing", 450 + "windows-registry", 451 + ] 452 + 453 + [[package]] 454 + name = "icu_collections" 455 + version = "2.1.1" 456 + source = "registry+https://github.com/rust-lang/crates.io-index" 457 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 458 + dependencies = [ 459 + "displaydoc", 460 + "potential_utf", 461 + "yoke", 462 + "zerofrom", 463 + "zerovec", 464 + ] 465 + 466 + [[package]] 467 + name = "icu_locale_core" 468 + version = "2.1.1" 469 + source = "registry+https://github.com/rust-lang/crates.io-index" 470 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 471 + dependencies = [ 472 + "displaydoc", 473 + "litemap", 474 + "tinystr", 475 + "writeable", 476 + "zerovec", 477 + ] 478 + 479 + [[package]] 480 + name = "icu_normalizer" 481 + version = "2.1.1" 482 + source = "registry+https://github.com/rust-lang/crates.io-index" 483 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 484 + dependencies = [ 485 + "icu_collections", 486 + "icu_normalizer_data", 487 + "icu_properties", 488 + "icu_provider", 489 + "smallvec", 490 + "zerovec", 491 + ] 492 + 493 + [[package]] 494 + name = "icu_normalizer_data" 495 + version = "2.1.1" 496 + source = "registry+https://github.com/rust-lang/crates.io-index" 497 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 498 + 499 + [[package]] 500 + name = "icu_properties" 501 + version = "2.1.2" 502 + source = "registry+https://github.com/rust-lang/crates.io-index" 503 + checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 504 + dependencies = [ 505 + "icu_collections", 506 + "icu_locale_core", 507 + "icu_properties_data", 508 + "icu_provider", 509 + "zerotrie", 510 + "zerovec", 511 + ] 512 + 513 + [[package]] 514 + name = "icu_properties_data" 515 + version = "2.1.2" 516 + source = "registry+https://github.com/rust-lang/crates.io-index" 517 + checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" 518 + 519 + [[package]] 520 + name = "icu_provider" 521 + version = "2.1.1" 522 + source = "registry+https://github.com/rust-lang/crates.io-index" 523 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 524 + dependencies = [ 525 + "displaydoc", 526 + "icu_locale_core", 527 + "writeable", 528 + "yoke", 529 + "zerofrom", 530 + "zerotrie", 531 + "zerovec", 532 + ] 533 + 534 + [[package]] 535 + name = "idna" 536 + version = "1.1.0" 537 + source = "registry+https://github.com/rust-lang/crates.io-index" 538 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 539 + dependencies = [ 540 + "idna_adapter", 541 + "smallvec", 542 + "utf8_iter", 543 + ] 544 + 545 + [[package]] 546 + name = "idna_adapter" 547 + version = "1.2.1" 548 + source = "registry+https://github.com/rust-lang/crates.io-index" 549 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 550 + dependencies = [ 551 + "icu_normalizer", 552 + "icu_properties", 224 553 ] 225 554 226 555 [[package]] ··· 234 563 ] 235 564 236 565 [[package]] 566 + name = "ipnet" 567 + version = "2.12.0" 568 + source = "registry+https://github.com/rust-lang/crates.io-index" 569 + checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" 570 + 571 + [[package]] 572 + name = "iri-string" 573 + version = "0.7.10" 574 + source = "registry+https://github.com/rust-lang/crates.io-index" 575 + checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" 576 + dependencies = [ 577 + "memchr", 578 + "serde", 579 + ] 580 + 581 + [[package]] 237 582 name = "itoa" 238 583 version = "1.0.17" 239 584 source = "registry+https://github.com/rust-lang/crates.io-index" 240 585 checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" 241 586 242 587 [[package]] 588 + name = "jni" 589 + version = "0.21.1" 590 + source = "registry+https://github.com/rust-lang/crates.io-index" 591 + checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 592 + dependencies = [ 593 + "cesu8", 594 + "cfg-if", 595 + "combine", 596 + "jni-sys", 597 + "log", 598 + "thiserror 1.0.69", 599 + "walkdir", 600 + "windows-sys 0.45.0", 601 + ] 602 + 603 + [[package]] 604 + name = "jni-sys" 605 + version = "0.3.0" 606 + source = "registry+https://github.com/rust-lang/crates.io-index" 607 + checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 608 + 609 + [[package]] 610 + name = "jobserver" 611 + version = "0.1.34" 612 + source = "registry+https://github.com/rust-lang/crates.io-index" 613 + checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 614 + dependencies = [ 615 + "getrandom 0.3.4", 616 + "libc", 617 + ] 618 + 619 + [[package]] 620 + name = "js-sys" 621 + version = "0.3.91" 622 + source = "registry+https://github.com/rust-lang/crates.io-index" 623 + checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" 624 + dependencies = [ 625 + "once_cell", 626 + "wasm-bindgen", 627 + ] 628 + 629 + [[package]] 243 630 name = "libc" 244 631 version = "0.2.182" 245 632 source = "registry+https://github.com/rust-lang/crates.io-index" 246 633 checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 247 634 248 635 [[package]] 636 + name = "litemap" 637 + version = "0.8.1" 638 + source = "registry+https://github.com/rust-lang/crates.io-index" 639 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 640 + 641 + [[package]] 249 642 name = "lock_api" 250 643 version = "0.4.14" 251 644 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 259 652 version = "0.4.29" 260 653 source = "registry+https://github.com/rust-lang/crates.io-index" 261 654 checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 655 + 656 + [[package]] 657 + name = "lru-slab" 658 + version = "0.1.2" 659 + source = "registry+https://github.com/rust-lang/crates.io-index" 660 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 262 661 263 662 [[package]] 264 663 name = "matchit" ··· 296 695 checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 297 696 298 697 [[package]] 698 + name = "openssl-probe" 699 + version = "0.2.1" 700 + source = "registry+https://github.com/rust-lang/crates.io-index" 701 + checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" 702 + 703 + [[package]] 299 704 name = "parking_lot" 300 705 version = "0.12.5" 301 706 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 335 740 version = "0.1.0" 336 741 source = "registry+https://github.com/rust-lang/crates.io-index" 337 742 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 743 + 744 + [[package]] 745 + name = "potential_utf" 746 + version = "0.1.4" 747 + source = "registry+https://github.com/rust-lang/crates.io-index" 748 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 749 + dependencies = [ 750 + "zerovec", 751 + ] 752 + 753 + [[package]] 754 + name = "ppv-lite86" 755 + version = "0.2.21" 756 + source = "registry+https://github.com/rust-lang/crates.io-index" 757 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 758 + dependencies = [ 759 + "zerocopy", 760 + ] 338 761 339 762 [[package]] 340 763 name = "proc-macro2" ··· 346 769 ] 347 770 348 771 [[package]] 772 + name = "quinn" 773 + version = "0.11.9" 774 + source = "registry+https://github.com/rust-lang/crates.io-index" 775 + checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" 776 + dependencies = [ 777 + "bytes", 778 + "cfg_aliases", 779 + "pin-project-lite", 780 + "quinn-proto", 781 + "quinn-udp", 782 + "rustc-hash", 783 + "rustls", 784 + "socket2", 785 + "thiserror 2.0.18", 786 + "tokio", 787 + "tracing", 788 + "web-time", 789 + ] 790 + 791 + [[package]] 792 + name = "quinn-proto" 793 + version = "0.11.13" 794 + source = "registry+https://github.com/rust-lang/crates.io-index" 795 + checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" 796 + dependencies = [ 797 + "aws-lc-rs", 798 + "bytes", 799 + "getrandom 0.3.4", 800 + "lru-slab", 801 + "rand", 802 + "ring", 803 + "rustc-hash", 804 + "rustls", 805 + "rustls-pki-types", 806 + "slab", 807 + "thiserror 2.0.18", 808 + "tinyvec", 809 + "tracing", 810 + "web-time", 811 + ] 812 + 813 + [[package]] 814 + name = "quinn-udp" 815 + version = "0.5.14" 816 + source = "registry+https://github.com/rust-lang/crates.io-index" 817 + checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" 818 + dependencies = [ 819 + "cfg_aliases", 820 + "libc", 821 + "once_cell", 822 + "socket2", 823 + "tracing", 824 + "windows-sys 0.60.2", 825 + ] 826 + 827 + [[package]] 349 828 name = "quote" 350 829 version = "1.0.44" 351 830 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 355 834 ] 356 835 357 836 [[package]] 837 + name = "r-efi" 838 + version = "5.3.0" 839 + source = "registry+https://github.com/rust-lang/crates.io-index" 840 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 841 + 842 + [[package]] 843 + name = "rand" 844 + version = "0.9.2" 845 + source = "registry+https://github.com/rust-lang/crates.io-index" 846 + checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 847 + dependencies = [ 848 + "rand_chacha", 849 + "rand_core", 850 + ] 851 + 852 + [[package]] 853 + name = "rand_chacha" 854 + version = "0.9.0" 855 + source = "registry+https://github.com/rust-lang/crates.io-index" 856 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 857 + dependencies = [ 858 + "ppv-lite86", 859 + "rand_core", 860 + ] 861 + 862 + [[package]] 863 + name = "rand_core" 864 + version = "0.9.5" 865 + source = "registry+https://github.com/rust-lang/crates.io-index" 866 + checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 867 + dependencies = [ 868 + "getrandom 0.3.4", 869 + ] 870 + 871 + [[package]] 358 872 name = "redox_syscall" 359 873 version = "0.5.18" 360 874 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 364 878 ] 365 879 366 880 [[package]] 881 + name = "reqwest" 882 + version = "0.13.2" 883 + source = "registry+https://github.com/rust-lang/crates.io-index" 884 + checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" 885 + dependencies = [ 886 + "base64", 887 + "bytes", 888 + "encoding_rs", 889 + "futures-core", 890 + "h2", 891 + "http", 892 + "http-body", 893 + "http-body-util", 894 + "hyper", 895 + "hyper-rustls", 896 + "hyper-util", 897 + "js-sys", 898 + "log", 899 + "mime", 900 + "percent-encoding", 901 + "pin-project-lite", 902 + "quinn", 903 + "rustls", 904 + "rustls-pki-types", 905 + "rustls-platform-verifier", 906 + "sync_wrapper", 907 + "tokio", 908 + "tokio-rustls", 909 + "tower", 910 + "tower-http", 911 + "tower-service", 912 + "url", 913 + "wasm-bindgen", 914 + "wasm-bindgen-futures", 915 + "web-sys", 916 + ] 917 + 918 + [[package]] 919 + name = "ring" 920 + version = "0.17.14" 921 + source = "registry+https://github.com/rust-lang/crates.io-index" 922 + checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 923 + dependencies = [ 924 + "cc", 925 + "cfg-if", 926 + "getrandom 0.2.17", 927 + "libc", 928 + "untrusted", 929 + "windows-sys 0.52.0", 930 + ] 931 + 932 + [[package]] 933 + name = "rustc-hash" 934 + version = "2.1.1" 935 + source = "registry+https://github.com/rust-lang/crates.io-index" 936 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 937 + 938 + [[package]] 939 + name = "rustls" 940 + version = "0.23.37" 941 + source = "registry+https://github.com/rust-lang/crates.io-index" 942 + checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" 943 + dependencies = [ 944 + "aws-lc-rs", 945 + "once_cell", 946 + "rustls-pki-types", 947 + "rustls-webpki", 948 + "subtle", 949 + "zeroize", 950 + ] 951 + 952 + [[package]] 953 + name = "rustls-native-certs" 954 + version = "0.8.3" 955 + source = "registry+https://github.com/rust-lang/crates.io-index" 956 + checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" 957 + dependencies = [ 958 + "openssl-probe", 959 + "rustls-pki-types", 960 + "schannel", 961 + "security-framework", 962 + ] 963 + 964 + [[package]] 965 + name = "rustls-pki-types" 966 + version = "1.14.0" 967 + source = "registry+https://github.com/rust-lang/crates.io-index" 968 + checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" 969 + dependencies = [ 970 + "web-time", 971 + "zeroize", 972 + ] 973 + 974 + [[package]] 975 + name = "rustls-platform-verifier" 976 + version = "0.6.2" 977 + source = "registry+https://github.com/rust-lang/crates.io-index" 978 + checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" 979 + dependencies = [ 980 + "core-foundation 0.10.1", 981 + "core-foundation-sys", 982 + "jni", 983 + "log", 984 + "once_cell", 985 + "rustls", 986 + "rustls-native-certs", 987 + "rustls-platform-verifier-android", 988 + "rustls-webpki", 989 + "security-framework", 990 + "security-framework-sys", 991 + "webpki-root-certs", 992 + "windows-sys 0.61.2", 993 + ] 994 + 995 + [[package]] 996 + name = "rustls-platform-verifier-android" 997 + version = "0.1.1" 998 + source = "registry+https://github.com/rust-lang/crates.io-index" 999 + checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" 1000 + 1001 + [[package]] 1002 + name = "rustls-webpki" 1003 + version = "0.103.9" 1004 + source = "registry+https://github.com/rust-lang/crates.io-index" 1005 + checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" 1006 + dependencies = [ 1007 + "aws-lc-rs", 1008 + "ring", 1009 + "rustls-pki-types", 1010 + "untrusted", 1011 + ] 1012 + 1013 + [[package]] 1014 + name = "rustversion" 1015 + version = "1.0.22" 1016 + source = "registry+https://github.com/rust-lang/crates.io-index" 1017 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1018 + 1019 + [[package]] 367 1020 name = "ryu" 368 1021 version = "1.0.23" 369 1022 source = "registry+https://github.com/rust-lang/crates.io-index" 370 1023 checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 371 1024 372 1025 [[package]] 1026 + name = "same-file" 1027 + version = "1.0.6" 1028 + source = "registry+https://github.com/rust-lang/crates.io-index" 1029 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1030 + dependencies = [ 1031 + "winapi-util", 1032 + ] 1033 + 1034 + [[package]] 1035 + name = "schannel" 1036 + version = "0.1.28" 1037 + source = "registry+https://github.com/rust-lang/crates.io-index" 1038 + checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" 1039 + dependencies = [ 1040 + "windows-sys 0.61.2", 1041 + ] 1042 + 1043 + [[package]] 373 1044 name = "scopeguard" 374 1045 version = "1.2.0" 375 1046 source = "registry+https://github.com/rust-lang/crates.io-index" 376 1047 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 377 1048 378 1049 [[package]] 1050 + name = "security-framework" 1051 + version = "3.7.0" 1052 + source = "registry+https://github.com/rust-lang/crates.io-index" 1053 + checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" 1054 + dependencies = [ 1055 + "bitflags", 1056 + "core-foundation 0.10.1", 1057 + "core-foundation-sys", 1058 + "libc", 1059 + "security-framework-sys", 1060 + ] 1061 + 1062 + [[package]] 1063 + name = "security-framework-sys" 1064 + version = "2.17.0" 1065 + source = "registry+https://github.com/rust-lang/crates.io-index" 1066 + checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" 1067 + dependencies = [ 1068 + "core-foundation-sys", 1069 + "libc", 1070 + ] 1071 + 1072 + [[package]] 379 1073 name = "serde" 380 1074 version = "1.0.228" 381 1075 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 451 1145 ] 452 1146 453 1147 [[package]] 1148 + name = "shlex" 1149 + version = "1.3.0" 1150 + source = "registry+https://github.com/rust-lang/crates.io-index" 1151 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1152 + 1153 + [[package]] 454 1154 name = "signal-hook-registry" 455 1155 version = "1.4.8" 456 1156 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 483 1183 ] 484 1184 485 1185 [[package]] 1186 + name = "stable_deref_trait" 1187 + version = "1.2.1" 1188 + source = "registry+https://github.com/rust-lang/crates.io-index" 1189 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 1190 + 1191 + [[package]] 1192 + name = "subtle" 1193 + version = "2.6.1" 1194 + source = "registry+https://github.com/rust-lang/crates.io-index" 1195 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1196 + 1197 + [[package]] 486 1198 name = "syn" 487 1199 version = "2.0.116" 488 1200 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 498 1210 version = "1.0.2" 499 1211 source = "registry+https://github.com/rust-lang/crates.io-index" 500 1212 checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 1213 + dependencies = [ 1214 + "futures-core", 1215 + ] 1216 + 1217 + [[package]] 1218 + name = "synstructure" 1219 + version = "0.13.2" 1220 + source = "registry+https://github.com/rust-lang/crates.io-index" 1221 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1222 + dependencies = [ 1223 + "proc-macro2", 1224 + "quote", 1225 + "syn", 1226 + ] 1227 + 1228 + [[package]] 1229 + name = "system-configuration" 1230 + version = "0.7.0" 1231 + source = "registry+https://github.com/rust-lang/crates.io-index" 1232 + checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" 1233 + dependencies = [ 1234 + "bitflags", 1235 + "core-foundation 0.9.4", 1236 + "system-configuration-sys", 1237 + ] 1238 + 1239 + [[package]] 1240 + name = "system-configuration-sys" 1241 + version = "0.6.0" 1242 + source = "registry+https://github.com/rust-lang/crates.io-index" 1243 + checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 1244 + dependencies = [ 1245 + "core-foundation-sys", 1246 + "libc", 1247 + ] 1248 + 1249 + [[package]] 1250 + name = "thiserror" 1251 + version = "1.0.69" 1252 + source = "registry+https://github.com/rust-lang/crates.io-index" 1253 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1254 + dependencies = [ 1255 + "thiserror-impl 1.0.69", 1256 + ] 501 1257 502 1258 [[package]] 503 1259 name = "thiserror" ··· 505 1261 source = "registry+https://github.com/rust-lang/crates.io-index" 506 1262 checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 507 1263 dependencies = [ 508 - "thiserror-impl", 1264 + "thiserror-impl 2.0.18", 1265 + ] 1266 + 1267 + [[package]] 1268 + name = "thiserror-impl" 1269 + version = "1.0.69" 1270 + source = "registry+https://github.com/rust-lang/crates.io-index" 1271 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1272 + dependencies = [ 1273 + "proc-macro2", 1274 + "quote", 1275 + "syn", 509 1276 ] 510 1277 511 1278 [[package]] ··· 520 1287 ] 521 1288 522 1289 [[package]] 1290 + name = "tinystr" 1291 + version = "0.8.2" 1292 + source = "registry+https://github.com/rust-lang/crates.io-index" 1293 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 1294 + dependencies = [ 1295 + "displaydoc", 1296 + "zerovec", 1297 + ] 1298 + 1299 + [[package]] 1300 + name = "tinyvec" 1301 + version = "1.10.0" 1302 + source = "registry+https://github.com/rust-lang/crates.io-index" 1303 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 1304 + dependencies = [ 1305 + "tinyvec_macros", 1306 + ] 1307 + 1308 + [[package]] 1309 + name = "tinyvec_macros" 1310 + version = "0.1.1" 1311 + source = "registry+https://github.com/rust-lang/crates.io-index" 1312 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1313 + 1314 + [[package]] 523 1315 name = "tokio" 524 1316 version = "1.49.0" 525 1317 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 548 1340 ] 549 1341 550 1342 [[package]] 1343 + name = "tokio-rustls" 1344 + version = "0.26.4" 1345 + source = "registry+https://github.com/rust-lang/crates.io-index" 1346 + checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" 1347 + dependencies = [ 1348 + "rustls", 1349 + "tokio", 1350 + ] 1351 + 1352 + [[package]] 1353 + name = "tokio-util" 1354 + version = "0.7.18" 1355 + source = "registry+https://github.com/rust-lang/crates.io-index" 1356 + checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" 1357 + dependencies = [ 1358 + "bytes", 1359 + "futures-core", 1360 + "futures-sink", 1361 + "pin-project-lite", 1362 + "tokio", 1363 + ] 1364 + 1365 + [[package]] 551 1366 name = "toml" 552 1367 version = "1.0.2+spec-1.1.0" 553 1368 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 603 1418 ] 604 1419 605 1420 [[package]] 1421 + name = "tower-http" 1422 + version = "0.6.8" 1423 + source = "registry+https://github.com/rust-lang/crates.io-index" 1424 + checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" 1425 + dependencies = [ 1426 + "bitflags", 1427 + "bytes", 1428 + "futures-util", 1429 + "http", 1430 + "http-body", 1431 + "iri-string", 1432 + "pin-project-lite", 1433 + "tower", 1434 + "tower-layer", 1435 + "tower-service", 1436 + ] 1437 + 1438 + [[package]] 606 1439 name = "tower-layer" 607 1440 version = "0.3.3" 608 1441 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 635 1468 ] 636 1469 637 1470 [[package]] 1471 + name = "try-lock" 1472 + version = "0.2.5" 1473 + source = "registry+https://github.com/rust-lang/crates.io-index" 1474 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1475 + 1476 + [[package]] 638 1477 name = "unicode-ident" 639 1478 version = "1.0.24" 640 1479 source = "registry+https://github.com/rust-lang/crates.io-index" 641 1480 checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 642 1481 643 1482 [[package]] 1483 + name = "untrusted" 1484 + version = "0.9.0" 1485 + source = "registry+https://github.com/rust-lang/crates.io-index" 1486 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1487 + 1488 + [[package]] 1489 + name = "url" 1490 + version = "2.5.8" 1491 + source = "registry+https://github.com/rust-lang/crates.io-index" 1492 + checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" 1493 + dependencies = [ 1494 + "form_urlencoded", 1495 + "idna", 1496 + "percent-encoding", 1497 + "serde", 1498 + ] 1499 + 1500 + [[package]] 1501 + name = "utf8_iter" 1502 + version = "1.0.4" 1503 + source = "registry+https://github.com/rust-lang/crates.io-index" 1504 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1505 + 1506 + [[package]] 1507 + name = "walkdir" 1508 + version = "2.5.0" 1509 + source = "registry+https://github.com/rust-lang/crates.io-index" 1510 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1511 + dependencies = [ 1512 + "same-file", 1513 + "winapi-util", 1514 + ] 1515 + 1516 + [[package]] 1517 + name = "want" 1518 + version = "0.3.1" 1519 + source = "registry+https://github.com/rust-lang/crates.io-index" 1520 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1521 + dependencies = [ 1522 + "try-lock", 1523 + ] 1524 + 1525 + [[package]] 644 1526 name = "wasi" 645 1527 version = "0.11.1+wasi-snapshot-preview1" 646 1528 source = "registry+https://github.com/rust-lang/crates.io-index" 647 1529 checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 648 1530 649 1531 [[package]] 1532 + name = "wasip2" 1533 + version = "1.0.2+wasi-0.2.9" 1534 + source = "registry+https://github.com/rust-lang/crates.io-index" 1535 + checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 1536 + dependencies = [ 1537 + "wit-bindgen", 1538 + ] 1539 + 1540 + [[package]] 1541 + name = "wasm-bindgen" 1542 + version = "0.2.114" 1543 + source = "registry+https://github.com/rust-lang/crates.io-index" 1544 + checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" 1545 + dependencies = [ 1546 + "cfg-if", 1547 + "once_cell", 1548 + "rustversion", 1549 + "wasm-bindgen-macro", 1550 + "wasm-bindgen-shared", 1551 + ] 1552 + 1553 + [[package]] 1554 + name = "wasm-bindgen-futures" 1555 + version = "0.4.64" 1556 + source = "registry+https://github.com/rust-lang/crates.io-index" 1557 + checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" 1558 + dependencies = [ 1559 + "cfg-if", 1560 + "futures-util", 1561 + "js-sys", 1562 + "once_cell", 1563 + "wasm-bindgen", 1564 + "web-sys", 1565 + ] 1566 + 1567 + [[package]] 1568 + name = "wasm-bindgen-macro" 1569 + version = "0.2.114" 1570 + source = "registry+https://github.com/rust-lang/crates.io-index" 1571 + checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" 1572 + dependencies = [ 1573 + "quote", 1574 + "wasm-bindgen-macro-support", 1575 + ] 1576 + 1577 + [[package]] 1578 + name = "wasm-bindgen-macro-support" 1579 + version = "0.2.114" 1580 + source = "registry+https://github.com/rust-lang/crates.io-index" 1581 + checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" 1582 + dependencies = [ 1583 + "bumpalo", 1584 + "proc-macro2", 1585 + "quote", 1586 + "syn", 1587 + "wasm-bindgen-shared", 1588 + ] 1589 + 1590 + [[package]] 1591 + name = "wasm-bindgen-shared" 1592 + version = "0.2.114" 1593 + source = "registry+https://github.com/rust-lang/crates.io-index" 1594 + checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" 1595 + dependencies = [ 1596 + "unicode-ident", 1597 + ] 1598 + 1599 + [[package]] 1600 + name = "web-sys" 1601 + version = "0.3.91" 1602 + source = "registry+https://github.com/rust-lang/crates.io-index" 1603 + checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" 1604 + dependencies = [ 1605 + "js-sys", 1606 + "wasm-bindgen", 1607 + ] 1608 + 1609 + [[package]] 1610 + name = "web-time" 1611 + version = "1.1.0" 1612 + source = "registry+https://github.com/rust-lang/crates.io-index" 1613 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 1614 + dependencies = [ 1615 + "js-sys", 1616 + "wasm-bindgen", 1617 + ] 1618 + 1619 + [[package]] 1620 + name = "webpki-root-certs" 1621 + version = "1.0.6" 1622 + source = "registry+https://github.com/rust-lang/crates.io-index" 1623 + checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" 1624 + dependencies = [ 1625 + "rustls-pki-types", 1626 + ] 1627 + 1628 + [[package]] 1629 + name = "winapi-util" 1630 + version = "0.1.11" 1631 + source = "registry+https://github.com/rust-lang/crates.io-index" 1632 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 1633 + dependencies = [ 1634 + "windows-sys 0.61.2", 1635 + ] 1636 + 1637 + [[package]] 650 1638 name = "windows-link" 651 1639 version = "0.2.1" 652 1640 source = "registry+https://github.com/rust-lang/crates.io-index" 653 1641 checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 654 1642 655 1643 [[package]] 1644 + name = "windows-registry" 1645 + version = "0.6.1" 1646 + source = "registry+https://github.com/rust-lang/crates.io-index" 1647 + checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" 1648 + dependencies = [ 1649 + "windows-link", 1650 + "windows-result", 1651 + "windows-strings", 1652 + ] 1653 + 1654 + [[package]] 1655 + name = "windows-result" 1656 + version = "0.4.1" 1657 + source = "registry+https://github.com/rust-lang/crates.io-index" 1658 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 1659 + dependencies = [ 1660 + "windows-link", 1661 + ] 1662 + 1663 + [[package]] 1664 + name = "windows-strings" 1665 + version = "0.5.1" 1666 + source = "registry+https://github.com/rust-lang/crates.io-index" 1667 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 1668 + dependencies = [ 1669 + "windows-link", 1670 + ] 1671 + 1672 + [[package]] 1673 + name = "windows-sys" 1674 + version = "0.45.0" 1675 + source = "registry+https://github.com/rust-lang/crates.io-index" 1676 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 1677 + dependencies = [ 1678 + "windows-targets 0.42.2", 1679 + ] 1680 + 1681 + [[package]] 1682 + name = "windows-sys" 1683 + version = "0.52.0" 1684 + source = "registry+https://github.com/rust-lang/crates.io-index" 1685 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1686 + dependencies = [ 1687 + "windows-targets 0.52.6", 1688 + ] 1689 + 1690 + [[package]] 656 1691 name = "windows-sys" 657 1692 version = "0.60.2" 658 1693 source = "registry+https://github.com/rust-lang/crates.io-index" 659 1694 checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 660 1695 dependencies = [ 661 - "windows-targets", 1696 + "windows-targets 0.53.5", 662 1697 ] 663 1698 664 1699 [[package]] ··· 672 1707 673 1708 [[package]] 674 1709 name = "windows-targets" 1710 + version = "0.42.2" 1711 + source = "registry+https://github.com/rust-lang/crates.io-index" 1712 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 1713 + dependencies = [ 1714 + "windows_aarch64_gnullvm 0.42.2", 1715 + "windows_aarch64_msvc 0.42.2", 1716 + "windows_i686_gnu 0.42.2", 1717 + "windows_i686_msvc 0.42.2", 1718 + "windows_x86_64_gnu 0.42.2", 1719 + "windows_x86_64_gnullvm 0.42.2", 1720 + "windows_x86_64_msvc 0.42.2", 1721 + ] 1722 + 1723 + [[package]] 1724 + name = "windows-targets" 1725 + version = "0.52.6" 1726 + source = "registry+https://github.com/rust-lang/crates.io-index" 1727 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1728 + dependencies = [ 1729 + "windows_aarch64_gnullvm 0.52.6", 1730 + "windows_aarch64_msvc 0.52.6", 1731 + "windows_i686_gnu 0.52.6", 1732 + "windows_i686_gnullvm 0.52.6", 1733 + "windows_i686_msvc 0.52.6", 1734 + "windows_x86_64_gnu 0.52.6", 1735 + "windows_x86_64_gnullvm 0.52.6", 1736 + "windows_x86_64_msvc 0.52.6", 1737 + ] 1738 + 1739 + [[package]] 1740 + name = "windows-targets" 675 1741 version = "0.53.5" 676 1742 source = "registry+https://github.com/rust-lang/crates.io-index" 677 1743 checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 678 1744 dependencies = [ 679 1745 "windows-link", 680 - "windows_aarch64_gnullvm", 681 - "windows_aarch64_msvc", 682 - "windows_i686_gnu", 683 - "windows_i686_gnullvm", 684 - "windows_i686_msvc", 685 - "windows_x86_64_gnu", 686 - "windows_x86_64_gnullvm", 687 - "windows_x86_64_msvc", 1746 + "windows_aarch64_gnullvm 0.53.1", 1747 + "windows_aarch64_msvc 0.53.1", 1748 + "windows_i686_gnu 0.53.1", 1749 + "windows_i686_gnullvm 0.53.1", 1750 + "windows_i686_msvc 0.53.1", 1751 + "windows_x86_64_gnu 0.53.1", 1752 + "windows_x86_64_gnullvm 0.53.1", 1753 + "windows_x86_64_msvc 0.53.1", 688 1754 ] 689 1755 690 1756 [[package]] 691 1757 name = "windows_aarch64_gnullvm" 1758 + version = "0.42.2" 1759 + source = "registry+https://github.com/rust-lang/crates.io-index" 1760 + checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 1761 + 1762 + [[package]] 1763 + name = "windows_aarch64_gnullvm" 1764 + version = "0.52.6" 1765 + source = "registry+https://github.com/rust-lang/crates.io-index" 1766 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1767 + 1768 + [[package]] 1769 + name = "windows_aarch64_gnullvm" 692 1770 version = "0.53.1" 693 1771 source = "registry+https://github.com/rust-lang/crates.io-index" 694 1772 checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 695 1773 696 1774 [[package]] 697 1775 name = "windows_aarch64_msvc" 1776 + version = "0.42.2" 1777 + source = "registry+https://github.com/rust-lang/crates.io-index" 1778 + checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 1779 + 1780 + [[package]] 1781 + name = "windows_aarch64_msvc" 1782 + version = "0.52.6" 1783 + source = "registry+https://github.com/rust-lang/crates.io-index" 1784 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1785 + 1786 + [[package]] 1787 + name = "windows_aarch64_msvc" 698 1788 version = "0.53.1" 699 1789 source = "registry+https://github.com/rust-lang/crates.io-index" 700 1790 checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 701 1791 702 1792 [[package]] 703 1793 name = "windows_i686_gnu" 1794 + version = "0.42.2" 1795 + source = "registry+https://github.com/rust-lang/crates.io-index" 1796 + checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 1797 + 1798 + [[package]] 1799 + name = "windows_i686_gnu" 1800 + version = "0.52.6" 1801 + source = "registry+https://github.com/rust-lang/crates.io-index" 1802 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1803 + 1804 + [[package]] 1805 + name = "windows_i686_gnu" 704 1806 version = "0.53.1" 705 1807 source = "registry+https://github.com/rust-lang/crates.io-index" 706 1808 checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 707 1809 708 1810 [[package]] 709 1811 name = "windows_i686_gnullvm" 1812 + version = "0.52.6" 1813 + source = "registry+https://github.com/rust-lang/crates.io-index" 1814 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1815 + 1816 + [[package]] 1817 + name = "windows_i686_gnullvm" 710 1818 version = "0.53.1" 711 1819 source = "registry+https://github.com/rust-lang/crates.io-index" 712 1820 checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 713 1821 714 1822 [[package]] 715 1823 name = "windows_i686_msvc" 1824 + version = "0.42.2" 1825 + source = "registry+https://github.com/rust-lang/crates.io-index" 1826 + checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 1827 + 1828 + [[package]] 1829 + name = "windows_i686_msvc" 1830 + version = "0.52.6" 1831 + source = "registry+https://github.com/rust-lang/crates.io-index" 1832 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1833 + 1834 + [[package]] 1835 + name = "windows_i686_msvc" 716 1836 version = "0.53.1" 717 1837 source = "registry+https://github.com/rust-lang/crates.io-index" 718 1838 checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 719 1839 720 1840 [[package]] 721 1841 name = "windows_x86_64_gnu" 1842 + version = "0.42.2" 1843 + source = "registry+https://github.com/rust-lang/crates.io-index" 1844 + checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 1845 + 1846 + [[package]] 1847 + name = "windows_x86_64_gnu" 1848 + version = "0.52.6" 1849 + source = "registry+https://github.com/rust-lang/crates.io-index" 1850 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1851 + 1852 + [[package]] 1853 + name = "windows_x86_64_gnu" 722 1854 version = "0.53.1" 723 1855 source = "registry+https://github.com/rust-lang/crates.io-index" 724 1856 checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 725 1857 726 1858 [[package]] 727 1859 name = "windows_x86_64_gnullvm" 1860 + version = "0.42.2" 1861 + source = "registry+https://github.com/rust-lang/crates.io-index" 1862 + checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 1863 + 1864 + [[package]] 1865 + name = "windows_x86_64_gnullvm" 1866 + version = "0.52.6" 1867 + source = "registry+https://github.com/rust-lang/crates.io-index" 1868 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1869 + 1870 + [[package]] 1871 + name = "windows_x86_64_gnullvm" 728 1872 version = "0.53.1" 729 1873 source = "registry+https://github.com/rust-lang/crates.io-index" 730 1874 checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 731 1875 732 1876 [[package]] 733 1877 name = "windows_x86_64_msvc" 1878 + version = "0.42.2" 1879 + source = "registry+https://github.com/rust-lang/crates.io-index" 1880 + checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 1881 + 1882 + [[package]] 1883 + name = "windows_x86_64_msvc" 1884 + version = "0.52.6" 1885 + source = "registry+https://github.com/rust-lang/crates.io-index" 1886 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1887 + 1888 + [[package]] 1889 + name = "windows_x86_64_msvc" 734 1890 version = "0.53.1" 735 1891 source = "registry+https://github.com/rust-lang/crates.io-index" 736 1892 checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" ··· 742 1898 checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 743 1899 744 1900 [[package]] 1901 + name = "wit-bindgen" 1902 + version = "0.51.0" 1903 + source = "registry+https://github.com/rust-lang/crates.io-index" 1904 + checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 1905 + 1906 + [[package]] 745 1907 name = "wol" 746 1908 version = "0.1.0" 747 1909 dependencies = [ 748 1910 "axum", 1911 + "reqwest", 749 1912 "serde", 750 1913 "serde_json", 751 - "thiserror", 1914 + "thiserror 2.0.18", 752 1915 "tokio", 753 1916 "toml", 1917 + ] 1918 + 1919 + [[package]] 1920 + name = "writeable" 1921 + version = "0.6.2" 1922 + source = "registry+https://github.com/rust-lang/crates.io-index" 1923 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 1924 + 1925 + [[package]] 1926 + name = "yoke" 1927 + version = "0.8.1" 1928 + source = "registry+https://github.com/rust-lang/crates.io-index" 1929 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 1930 + dependencies = [ 1931 + "stable_deref_trait", 1932 + "yoke-derive", 1933 + "zerofrom", 1934 + ] 1935 + 1936 + [[package]] 1937 + name = "yoke-derive" 1938 + version = "0.8.1" 1939 + source = "registry+https://github.com/rust-lang/crates.io-index" 1940 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 1941 + dependencies = [ 1942 + "proc-macro2", 1943 + "quote", 1944 + "syn", 1945 + "synstructure", 1946 + ] 1947 + 1948 + [[package]] 1949 + name = "zerocopy" 1950 + version = "0.8.40" 1951 + source = "registry+https://github.com/rust-lang/crates.io-index" 1952 + checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" 1953 + dependencies = [ 1954 + "zerocopy-derive", 1955 + ] 1956 + 1957 + [[package]] 1958 + name = "zerocopy-derive" 1959 + version = "0.8.40" 1960 + source = "registry+https://github.com/rust-lang/crates.io-index" 1961 + checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" 1962 + dependencies = [ 1963 + "proc-macro2", 1964 + "quote", 1965 + "syn", 1966 + ] 1967 + 1968 + [[package]] 1969 + name = "zerofrom" 1970 + version = "0.1.6" 1971 + source = "registry+https://github.com/rust-lang/crates.io-index" 1972 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 1973 + dependencies = [ 1974 + "zerofrom-derive", 1975 + ] 1976 + 1977 + [[package]] 1978 + name = "zerofrom-derive" 1979 + version = "0.1.6" 1980 + source = "registry+https://github.com/rust-lang/crates.io-index" 1981 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 1982 + dependencies = [ 1983 + "proc-macro2", 1984 + "quote", 1985 + "syn", 1986 + "synstructure", 1987 + ] 1988 + 1989 + [[package]] 1990 + name = "zeroize" 1991 + version = "1.8.2" 1992 + source = "registry+https://github.com/rust-lang/crates.io-index" 1993 + checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" 1994 + 1995 + [[package]] 1996 + name = "zerotrie" 1997 + version = "0.2.3" 1998 + source = "registry+https://github.com/rust-lang/crates.io-index" 1999 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 2000 + dependencies = [ 2001 + "displaydoc", 2002 + "yoke", 2003 + "zerofrom", 2004 + ] 2005 + 2006 + [[package]] 2007 + name = "zerovec" 2008 + version = "0.11.5" 2009 + source = "registry+https://github.com/rust-lang/crates.io-index" 2010 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 2011 + dependencies = [ 2012 + "yoke", 2013 + "zerofrom", 2014 + "zerovec-derive", 2015 + ] 2016 + 2017 + [[package]] 2018 + name = "zerovec-derive" 2019 + version = "0.11.2" 2020 + source = "registry+https://github.com/rust-lang/crates.io-index" 2021 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 2022 + dependencies = [ 2023 + "proc-macro2", 2024 + "quote", 2025 + "syn", 754 2026 ] 755 2027 756 2028 [[package]]
+1
Cargo.toml
··· 10 10 toml = "1.0.2" 11 11 axum = "0.8.8" 12 12 serde_json = "1.0.149" 13 + reqwest = "0.13.2" 13 14 14 15 [build-dependencies] 15 16 serde = { version = "1.0.228", features = ["derive"] }
+52 -3
build.rs
··· 91 91 } 92 92 93 93 fn codegen(paths: Vec<PathBuf>) -> Result<String, CodegenError> { 94 + // in development mode, replace codegen with a proxy 95 + #[cfg(debug_assertions)] 96 + if let Ok(proxy) = std::env::var("PROXY") { 97 + return Ok(format!( 98 + r#" 99 + mod dist {{ 100 + async fn proxy( 101 + req: axum::http::Request<axum::body::Body>, 102 + ) -> Result<axum::http::Response<axum::body::Body>, reqwest::StatusCode> {{ 103 + let url = req.uri().path_and_query().map(|x| x.as_str()).unwrap_or(""); 104 + println!("PROXY => {{}}", url); 105 + let url = reqwest::Url::parse(&format!("http://{}{{}}", url)) 106 + .map_err(|_| reqwest::StatusCode::INTERNAL_SERVER_ERROR)?; 107 + let req = reqwest::Request::new(req.method().to_owned(), url); 108 + let res = reqwest::Client::new() 109 + .execute(req) 110 + .await 111 + .map_err(|_| reqwest::StatusCode::INTERNAL_SERVER_ERROR)?; 112 + let up_headers = res.headers(); 113 + 114 + let mut out = axum::http::Response::builder().status(res.status()); 115 + let headers = out.headers_mut().unwrap(); 116 + for (k, v) in up_headers {{ 117 + headers.insert(k, v.to_owned()); 118 + }} 119 + let out = out 120 + .body( 121 + res.bytes() 122 + .await 123 + .map_err(|_| reqwest::StatusCode::INTERNAL_SERVER_ERROR)? 124 + .into(), 125 + ) 126 + .map_err(|_| reqwest::StatusCode::INTERNAL_SERVER_ERROR)?; 127 + 128 + Ok(out) 129 + }} 130 + pub fn main() -> axum::Router {{ 131 + axum::Router::new().fallback(axum::routing::get(proxy)) 132 + }} 133 + }} 134 + "#, 135 + proxy, 136 + )); 137 + } 138 + 94 139 // idx is a unique id for the current route 95 140 // this is easier than converting the path to a rust variable and avoiding collisons 96 141 let mut idx = 0; ··· 158 203 let main = format!( 159 204 r#" 160 205 pub fn main() -> axum::Router {{ 161 - axum::Router::new(){} 206 + axum::Router::new(){}.fallback(axum::routing::get(async || axum::response::Redirect::to("/"))) 162 207 }} 163 208 "#, 164 209 paths ··· 190 235 let out_dir = env::var("OUT_DIR")?; 191 236 let dist_dst = Path::new(&out_dir).join("dist"); 192 237 193 - build()?; 238 + // dont build the web project if the env var PROXY is set 239 + // if PROXY is set it builds a reverse proxy instead 240 + if std::env::var("PROXY").is_err() { 241 + build()?; 242 + } 194 243 let paths = copy_dir(DIST_SRC, dist_dst)?; 195 244 let rust = codegen(paths)?; 196 245 let mut rust_file = fs::File::create(Path::new(&out_dir).join("mod.rs"))?; 197 246 rust_file.write_all(rust.as_bytes())?; 198 247 199 - println!("cargo::rerun-if-changed=web/"); 248 + println!("cargo::rerun-if-changed=web/\ncargo::rerun-if-env-changed=PROXY"); 200 249 201 250 Ok(()) 202 251 }