Alternative ATProto PDS implementation

Initial barebones template

Dr. Chat f639c0dc

+1
.gitattributes
···
··· 1 + init_container.sh text eol=lf
+11
.gitignore
···
··· 1 + /* 2 + !/src 3 + !/static 4 + !/templates 5 + !/.gitattributes 6 + !/.gitignore 7 + !/Cargo.lock 8 + !/Cargo.toml 9 + !/deployment.bicep 10 + !/Dockerfile 11 + !/README.md
+2232
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.0" 17 + source = "registry+https://github.com/rust-lang/crates.io-index" 18 + checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 19 + 20 + [[package]] 21 + name = "android-tzdata" 22 + version = "0.1.1" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 25 + 26 + [[package]] 27 + name = "android_system_properties" 28 + version = "0.1.5" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 31 + dependencies = [ 32 + "libc", 33 + ] 34 + 35 + [[package]] 36 + name = "anyhow" 37 + version = "1.0.94" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" 40 + 41 + [[package]] 42 + name = "async-channel" 43 + version = "1.9.0" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" 46 + dependencies = [ 47 + "concurrent-queue", 48 + "event-listener 2.5.3", 49 + "futures-core", 50 + ] 51 + 52 + [[package]] 53 + name = "async-channel" 54 + version = "2.3.1" 55 + source = "registry+https://github.com/rust-lang/crates.io-index" 56 + checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 57 + dependencies = [ 58 + "concurrent-queue", 59 + "event-listener-strategy", 60 + "futures-core", 61 + "pin-project-lite", 62 + ] 63 + 64 + [[package]] 65 + name = "async-io" 66 + version = "2.3.4" 67 + source = "registry+https://github.com/rust-lang/crates.io-index" 68 + checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" 69 + dependencies = [ 70 + "async-lock", 71 + "cfg-if", 72 + "concurrent-queue", 73 + "futures-io", 74 + "futures-lite 2.5.0", 75 + "parking", 76 + "polling", 77 + "rustix", 78 + "slab", 79 + "tracing", 80 + "windows-sys 0.59.0", 81 + ] 82 + 83 + [[package]] 84 + name = "async-lock" 85 + version = "3.4.0" 86 + source = "registry+https://github.com/rust-lang/crates.io-index" 87 + checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 88 + dependencies = [ 89 + "event-listener 5.3.1", 90 + "event-listener-strategy", 91 + "pin-project-lite", 92 + ] 93 + 94 + [[package]] 95 + name = "async-process" 96 + version = "2.3.0" 97 + source = "registry+https://github.com/rust-lang/crates.io-index" 98 + checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" 99 + dependencies = [ 100 + "async-channel 2.3.1", 101 + "async-io", 102 + "async-lock", 103 + "async-signal", 104 + "async-task", 105 + "blocking", 106 + "cfg-if", 107 + "event-listener 5.3.1", 108 + "futures-lite 2.5.0", 109 + "rustix", 110 + "tracing", 111 + ] 112 + 113 + [[package]] 114 + name = "async-signal" 115 + version = "0.2.9" 116 + source = "registry+https://github.com/rust-lang/crates.io-index" 117 + checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" 118 + dependencies = [ 119 + "async-io", 120 + "async-lock", 121 + "atomic-waker", 122 + "cfg-if", 123 + "futures-core", 124 + "futures-io", 125 + "rustix", 126 + "signal-hook-registry", 127 + "slab", 128 + "windows-sys 0.52.0", 129 + ] 130 + 131 + [[package]] 132 + name = "async-task" 133 + version = "4.7.1" 134 + source = "registry+https://github.com/rust-lang/crates.io-index" 135 + checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 136 + 137 + [[package]] 138 + name = "async-trait" 139 + version = "0.1.83" 140 + source = "registry+https://github.com/rust-lang/crates.io-index" 141 + checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 142 + dependencies = [ 143 + "proc-macro2", 144 + "quote", 145 + "syn", 146 + ] 147 + 148 + [[package]] 149 + name = "atomic-waker" 150 + version = "1.1.2" 151 + source = "registry+https://github.com/rust-lang/crates.io-index" 152 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 153 + 154 + [[package]] 155 + name = "autocfg" 156 + version = "1.4.0" 157 + source = "registry+https://github.com/rust-lang/crates.io-index" 158 + checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 159 + 160 + [[package]] 161 + name = "axum" 162 + version = "0.7.9" 163 + source = "registry+https://github.com/rust-lang/crates.io-index" 164 + checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" 165 + dependencies = [ 166 + "async-trait", 167 + "axum-core", 168 + "axum-macros", 169 + "bytes", 170 + "futures-util", 171 + "http 1.1.0", 172 + "http-body", 173 + "http-body-util", 174 + "hyper", 175 + "hyper-util", 176 + "itoa", 177 + "matchit", 178 + "memchr", 179 + "mime", 180 + "percent-encoding", 181 + "pin-project-lite", 182 + "rustversion", 183 + "serde", 184 + "serde_json", 185 + "serde_path_to_error", 186 + "serde_urlencoded", 187 + "sync_wrapper 1.0.1", 188 + "tokio", 189 + "tower", 190 + "tower-layer", 191 + "tower-service", 192 + "tracing", 193 + ] 194 + 195 + [[package]] 196 + name = "axum-core" 197 + version = "0.4.5" 198 + source = "registry+https://github.com/rust-lang/crates.io-index" 199 + checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" 200 + dependencies = [ 201 + "async-trait", 202 + "bytes", 203 + "futures-util", 204 + "http 1.1.0", 205 + "http-body", 206 + "http-body-util", 207 + "mime", 208 + "pin-project-lite", 209 + "rustversion", 210 + "sync_wrapper 1.0.1", 211 + "tower-layer", 212 + "tower-service", 213 + "tracing", 214 + ] 215 + 216 + [[package]] 217 + name = "axum-macros" 218 + version = "0.4.2" 219 + source = "registry+https://github.com/rust-lang/crates.io-index" 220 + checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" 221 + dependencies = [ 222 + "proc-macro2", 223 + "quote", 224 + "syn", 225 + ] 226 + 227 + [[package]] 228 + name = "azure_core" 229 + version = "0.21.0" 230 + source = "registry+https://github.com/rust-lang/crates.io-index" 231 + checksum = "7b552ad43a45a746461ec3d3a51dfb6466b4759209414b439c165eb6a6b7729e" 232 + dependencies = [ 233 + "async-trait", 234 + "base64 0.22.1", 235 + "bytes", 236 + "dyn-clone", 237 + "futures", 238 + "getrandom 0.2.15", 239 + "http-types", 240 + "once_cell", 241 + "paste", 242 + "pin-project", 243 + "rand 0.8.5", 244 + "reqwest", 245 + "rustc_version", 246 + "serde", 247 + "serde_json", 248 + "time", 249 + "tracing", 250 + "url", 251 + "uuid", 252 + ] 253 + 254 + [[package]] 255 + name = "azure_identity" 256 + version = "0.21.0" 257 + source = "registry+https://github.com/rust-lang/crates.io-index" 258 + checksum = "88ddd80344317c40c04b603807b63a5cefa532f1b43522e72f480a988141f744" 259 + dependencies = [ 260 + "async-lock", 261 + "async-process", 262 + "async-trait", 263 + "azure_core", 264 + "futures", 265 + "oauth2", 266 + "pin-project", 267 + "serde", 268 + "time", 269 + "tracing", 270 + "tz-rs", 271 + "url", 272 + "uuid", 273 + ] 274 + 275 + [[package]] 276 + name = "backtrace" 277 + version = "0.3.74" 278 + source = "registry+https://github.com/rust-lang/crates.io-index" 279 + checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 280 + dependencies = [ 281 + "addr2line", 282 + "cfg-if", 283 + "libc", 284 + "miniz_oxide", 285 + "object", 286 + "rustc-demangle", 287 + "windows-targets", 288 + ] 289 + 290 + [[package]] 291 + name = "base64" 292 + version = "0.13.1" 293 + source = "registry+https://github.com/rust-lang/crates.io-index" 294 + checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 295 + 296 + [[package]] 297 + name = "base64" 298 + version = "0.22.1" 299 + source = "registry+https://github.com/rust-lang/crates.io-index" 300 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 301 + 302 + [[package]] 303 + name = "bitflags" 304 + version = "2.6.0" 305 + source = "registry+https://github.com/rust-lang/crates.io-index" 306 + checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 307 + 308 + [[package]] 309 + name = "block-buffer" 310 + version = "0.10.4" 311 + source = "registry+https://github.com/rust-lang/crates.io-index" 312 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 313 + dependencies = [ 314 + "generic-array", 315 + ] 316 + 317 + [[package]] 318 + name = "blocking" 319 + version = "1.6.1" 320 + source = "registry+https://github.com/rust-lang/crates.io-index" 321 + checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" 322 + dependencies = [ 323 + "async-channel 2.3.1", 324 + "async-task", 325 + "futures-io", 326 + "futures-lite 2.5.0", 327 + "piper", 328 + ] 329 + 330 + [[package]] 331 + name = "bluepds" 332 + version = "0.0.0" 333 + dependencies = [ 334 + "anyhow", 335 + "axum", 336 + "azure_core", 337 + "azure_identity", 338 + "serde", 339 + "serde_json", 340 + "tokio", 341 + "tower-http", 342 + "tracing", 343 + "tracing-subscriber", 344 + ] 345 + 346 + [[package]] 347 + name = "bumpalo" 348 + version = "3.16.0" 349 + source = "registry+https://github.com/rust-lang/crates.io-index" 350 + checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 351 + 352 + [[package]] 353 + name = "byteorder" 354 + version = "1.5.0" 355 + source = "registry+https://github.com/rust-lang/crates.io-index" 356 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 357 + 358 + [[package]] 359 + name = "bytes" 360 + version = "1.8.0" 361 + source = "registry+https://github.com/rust-lang/crates.io-index" 362 + checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" 363 + 364 + [[package]] 365 + name = "cc" 366 + version = "1.1.37" 367 + source = "registry+https://github.com/rust-lang/crates.io-index" 368 + checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" 369 + dependencies = [ 370 + "shlex", 371 + ] 372 + 373 + [[package]] 374 + name = "cfg-if" 375 + version = "1.0.0" 376 + source = "registry+https://github.com/rust-lang/crates.io-index" 377 + checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 378 + 379 + [[package]] 380 + name = "chrono" 381 + version = "0.4.38" 382 + source = "registry+https://github.com/rust-lang/crates.io-index" 383 + checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 384 + dependencies = [ 385 + "android-tzdata", 386 + "iana-time-zone", 387 + "js-sys", 388 + "num-traits", 389 + "serde", 390 + "wasm-bindgen", 391 + "windows-targets", 392 + ] 393 + 394 + [[package]] 395 + name = "concurrent-queue" 396 + version = "2.5.0" 397 + source = "registry+https://github.com/rust-lang/crates.io-index" 398 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 399 + dependencies = [ 400 + "crossbeam-utils", 401 + ] 402 + 403 + [[package]] 404 + name = "const_fn" 405 + version = "0.4.10" 406 + source = "registry+https://github.com/rust-lang/crates.io-index" 407 + checksum = "373e9fafaa20882876db20562275ff58d50e0caa2590077fe7ce7bef90211d0d" 408 + 409 + [[package]] 410 + name = "core-foundation" 411 + version = "0.9.4" 412 + source = "registry+https://github.com/rust-lang/crates.io-index" 413 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 414 + dependencies = [ 415 + "core-foundation-sys", 416 + "libc", 417 + ] 418 + 419 + [[package]] 420 + name = "core-foundation-sys" 421 + version = "0.8.7" 422 + source = "registry+https://github.com/rust-lang/crates.io-index" 423 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 424 + 425 + [[package]] 426 + name = "cpufeatures" 427 + version = "0.2.14" 428 + source = "registry+https://github.com/rust-lang/crates.io-index" 429 + checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" 430 + dependencies = [ 431 + "libc", 432 + ] 433 + 434 + [[package]] 435 + name = "crossbeam-utils" 436 + version = "0.8.20" 437 + source = "registry+https://github.com/rust-lang/crates.io-index" 438 + checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 439 + 440 + [[package]] 441 + name = "crypto-common" 442 + version = "0.1.6" 443 + source = "registry+https://github.com/rust-lang/crates.io-index" 444 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 445 + dependencies = [ 446 + "generic-array", 447 + "typenum", 448 + ] 449 + 450 + [[package]] 451 + name = "deranged" 452 + version = "0.3.11" 453 + source = "registry+https://github.com/rust-lang/crates.io-index" 454 + checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 455 + dependencies = [ 456 + "powerfmt", 457 + "serde", 458 + ] 459 + 460 + [[package]] 461 + name = "digest" 462 + version = "0.10.7" 463 + source = "registry+https://github.com/rust-lang/crates.io-index" 464 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 465 + dependencies = [ 466 + "block-buffer", 467 + "crypto-common", 468 + ] 469 + 470 + [[package]] 471 + name = "dyn-clone" 472 + version = "1.0.17" 473 + source = "registry+https://github.com/rust-lang/crates.io-index" 474 + checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" 475 + 476 + [[package]] 477 + name = "errno" 478 + version = "0.3.9" 479 + source = "registry+https://github.com/rust-lang/crates.io-index" 480 + checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 481 + dependencies = [ 482 + "libc", 483 + "windows-sys 0.52.0", 484 + ] 485 + 486 + [[package]] 487 + name = "event-listener" 488 + version = "2.5.3" 489 + source = "registry+https://github.com/rust-lang/crates.io-index" 490 + checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 491 + 492 + [[package]] 493 + name = "event-listener" 494 + version = "5.3.1" 495 + source = "registry+https://github.com/rust-lang/crates.io-index" 496 + checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" 497 + dependencies = [ 498 + "concurrent-queue", 499 + "parking", 500 + "pin-project-lite", 501 + ] 502 + 503 + [[package]] 504 + name = "event-listener-strategy" 505 + version = "0.5.2" 506 + source = "registry+https://github.com/rust-lang/crates.io-index" 507 + checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" 508 + dependencies = [ 509 + "event-listener 5.3.1", 510 + "pin-project-lite", 511 + ] 512 + 513 + [[package]] 514 + name = "fastrand" 515 + version = "1.9.0" 516 + source = "registry+https://github.com/rust-lang/crates.io-index" 517 + checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 518 + dependencies = [ 519 + "instant", 520 + ] 521 + 522 + [[package]] 523 + name = "fastrand" 524 + version = "2.2.0" 525 + source = "registry+https://github.com/rust-lang/crates.io-index" 526 + checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" 527 + 528 + [[package]] 529 + name = "fnv" 530 + version = "1.0.7" 531 + source = "registry+https://github.com/rust-lang/crates.io-index" 532 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 533 + 534 + [[package]] 535 + name = "foreign-types" 536 + version = "0.3.2" 537 + source = "registry+https://github.com/rust-lang/crates.io-index" 538 + checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 539 + dependencies = [ 540 + "foreign-types-shared", 541 + ] 542 + 543 + [[package]] 544 + name = "foreign-types-shared" 545 + version = "0.1.1" 546 + source = "registry+https://github.com/rust-lang/crates.io-index" 547 + checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 548 + 549 + [[package]] 550 + name = "form_urlencoded" 551 + version = "1.2.1" 552 + source = "registry+https://github.com/rust-lang/crates.io-index" 553 + checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 554 + dependencies = [ 555 + "percent-encoding", 556 + ] 557 + 558 + [[package]] 559 + name = "futures" 560 + version = "0.3.31" 561 + source = "registry+https://github.com/rust-lang/crates.io-index" 562 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 563 + dependencies = [ 564 + "futures-channel", 565 + "futures-core", 566 + "futures-executor", 567 + "futures-io", 568 + "futures-sink", 569 + "futures-task", 570 + "futures-util", 571 + ] 572 + 573 + [[package]] 574 + name = "futures-channel" 575 + version = "0.3.31" 576 + source = "registry+https://github.com/rust-lang/crates.io-index" 577 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 578 + dependencies = [ 579 + "futures-core", 580 + "futures-sink", 581 + ] 582 + 583 + [[package]] 584 + name = "futures-core" 585 + version = "0.3.31" 586 + source = "registry+https://github.com/rust-lang/crates.io-index" 587 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 588 + 589 + [[package]] 590 + name = "futures-executor" 591 + version = "0.3.31" 592 + source = "registry+https://github.com/rust-lang/crates.io-index" 593 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 594 + dependencies = [ 595 + "futures-core", 596 + "futures-task", 597 + "futures-util", 598 + ] 599 + 600 + [[package]] 601 + name = "futures-io" 602 + version = "0.3.31" 603 + source = "registry+https://github.com/rust-lang/crates.io-index" 604 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 605 + 606 + [[package]] 607 + name = "futures-lite" 608 + version = "1.13.0" 609 + source = "registry+https://github.com/rust-lang/crates.io-index" 610 + checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" 611 + dependencies = [ 612 + "fastrand 1.9.0", 613 + "futures-core", 614 + "futures-io", 615 + "memchr", 616 + "parking", 617 + "pin-project-lite", 618 + "waker-fn", 619 + ] 620 + 621 + [[package]] 622 + name = "futures-lite" 623 + version = "2.5.0" 624 + source = "registry+https://github.com/rust-lang/crates.io-index" 625 + checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" 626 + dependencies = [ 627 + "fastrand 2.2.0", 628 + "futures-core", 629 + "futures-io", 630 + "parking", 631 + "pin-project-lite", 632 + ] 633 + 634 + [[package]] 635 + name = "futures-macro" 636 + version = "0.3.31" 637 + source = "registry+https://github.com/rust-lang/crates.io-index" 638 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 639 + dependencies = [ 640 + "proc-macro2", 641 + "quote", 642 + "syn", 643 + ] 644 + 645 + [[package]] 646 + name = "futures-sink" 647 + version = "0.3.31" 648 + source = "registry+https://github.com/rust-lang/crates.io-index" 649 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 650 + 651 + [[package]] 652 + name = "futures-task" 653 + version = "0.3.31" 654 + source = "registry+https://github.com/rust-lang/crates.io-index" 655 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 656 + 657 + [[package]] 658 + name = "futures-util" 659 + version = "0.3.31" 660 + source = "registry+https://github.com/rust-lang/crates.io-index" 661 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 662 + dependencies = [ 663 + "futures-channel", 664 + "futures-core", 665 + "futures-io", 666 + "futures-macro", 667 + "futures-sink", 668 + "futures-task", 669 + "memchr", 670 + "pin-project-lite", 671 + "pin-utils", 672 + "slab", 673 + ] 674 + 675 + [[package]] 676 + name = "generic-array" 677 + version = "0.14.7" 678 + source = "registry+https://github.com/rust-lang/crates.io-index" 679 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 680 + dependencies = [ 681 + "typenum", 682 + "version_check", 683 + ] 684 + 685 + [[package]] 686 + name = "getrandom" 687 + version = "0.1.16" 688 + source = "registry+https://github.com/rust-lang/crates.io-index" 689 + checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 690 + dependencies = [ 691 + "cfg-if", 692 + "libc", 693 + "wasi 0.9.0+wasi-snapshot-preview1", 694 + ] 695 + 696 + [[package]] 697 + name = "getrandom" 698 + version = "0.2.15" 699 + source = "registry+https://github.com/rust-lang/crates.io-index" 700 + checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 701 + dependencies = [ 702 + "cfg-if", 703 + "js-sys", 704 + "libc", 705 + "wasi 0.11.0+wasi-snapshot-preview1", 706 + "wasm-bindgen", 707 + ] 708 + 709 + [[package]] 710 + name = "gimli" 711 + version = "0.31.1" 712 + source = "registry+https://github.com/rust-lang/crates.io-index" 713 + checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 714 + 715 + [[package]] 716 + name = "hermit-abi" 717 + version = "0.3.9" 718 + source = "registry+https://github.com/rust-lang/crates.io-index" 719 + checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 720 + 721 + [[package]] 722 + name = "hermit-abi" 723 + version = "0.4.0" 724 + source = "registry+https://github.com/rust-lang/crates.io-index" 725 + checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 726 + 727 + [[package]] 728 + name = "http" 729 + version = "0.2.12" 730 + source = "registry+https://github.com/rust-lang/crates.io-index" 731 + checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 732 + dependencies = [ 733 + "bytes", 734 + "fnv", 735 + "itoa", 736 + ] 737 + 738 + [[package]] 739 + name = "http" 740 + version = "1.1.0" 741 + source = "registry+https://github.com/rust-lang/crates.io-index" 742 + checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 743 + dependencies = [ 744 + "bytes", 745 + "fnv", 746 + "itoa", 747 + ] 748 + 749 + [[package]] 750 + name = "http-body" 751 + version = "1.0.1" 752 + source = "registry+https://github.com/rust-lang/crates.io-index" 753 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 754 + dependencies = [ 755 + "bytes", 756 + "http 1.1.0", 757 + ] 758 + 759 + [[package]] 760 + name = "http-body-util" 761 + version = "0.1.2" 762 + source = "registry+https://github.com/rust-lang/crates.io-index" 763 + checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 764 + dependencies = [ 765 + "bytes", 766 + "futures-util", 767 + "http 1.1.0", 768 + "http-body", 769 + "pin-project-lite", 770 + ] 771 + 772 + [[package]] 773 + name = "http-range-header" 774 + version = "0.4.1" 775 + source = "registry+https://github.com/rust-lang/crates.io-index" 776 + checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" 777 + 778 + [[package]] 779 + name = "http-types" 780 + version = "2.12.0" 781 + source = "registry+https://github.com/rust-lang/crates.io-index" 782 + checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" 783 + dependencies = [ 784 + "anyhow", 785 + "async-channel 1.9.0", 786 + "base64 0.13.1", 787 + "futures-lite 1.13.0", 788 + "infer", 789 + "pin-project-lite", 790 + "rand 0.7.3", 791 + "serde", 792 + "serde_json", 793 + "serde_qs", 794 + "serde_urlencoded", 795 + "url", 796 + ] 797 + 798 + [[package]] 799 + name = "httparse" 800 + version = "1.9.5" 801 + source = "registry+https://github.com/rust-lang/crates.io-index" 802 + checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" 803 + 804 + [[package]] 805 + name = "httpdate" 806 + version = "1.0.3" 807 + source = "registry+https://github.com/rust-lang/crates.io-index" 808 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 809 + 810 + [[package]] 811 + name = "hyper" 812 + version = "1.5.0" 813 + source = "registry+https://github.com/rust-lang/crates.io-index" 814 + checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" 815 + dependencies = [ 816 + "bytes", 817 + "futures-channel", 818 + "futures-util", 819 + "http 1.1.0", 820 + "http-body", 821 + "httparse", 822 + "httpdate", 823 + "itoa", 824 + "pin-project-lite", 825 + "smallvec", 826 + "tokio", 827 + "want", 828 + ] 829 + 830 + [[package]] 831 + name = "hyper-tls" 832 + version = "0.6.0" 833 + source = "registry+https://github.com/rust-lang/crates.io-index" 834 + checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 835 + dependencies = [ 836 + "bytes", 837 + "http-body-util", 838 + "hyper", 839 + "hyper-util", 840 + "native-tls", 841 + "tokio", 842 + "tokio-native-tls", 843 + "tower-service", 844 + ] 845 + 846 + [[package]] 847 + name = "hyper-util" 848 + version = "0.1.10" 849 + source = "registry+https://github.com/rust-lang/crates.io-index" 850 + checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" 851 + dependencies = [ 852 + "bytes", 853 + "futures-channel", 854 + "futures-util", 855 + "http 1.1.0", 856 + "http-body", 857 + "hyper", 858 + "pin-project-lite", 859 + "socket2", 860 + "tokio", 861 + "tower-service", 862 + "tracing", 863 + ] 864 + 865 + [[package]] 866 + name = "iana-time-zone" 867 + version = "0.1.61" 868 + source = "registry+https://github.com/rust-lang/crates.io-index" 869 + checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 870 + dependencies = [ 871 + "android_system_properties", 872 + "core-foundation-sys", 873 + "iana-time-zone-haiku", 874 + "js-sys", 875 + "wasm-bindgen", 876 + "windows-core", 877 + ] 878 + 879 + [[package]] 880 + name = "iana-time-zone-haiku" 881 + version = "0.1.2" 882 + source = "registry+https://github.com/rust-lang/crates.io-index" 883 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 884 + dependencies = [ 885 + "cc", 886 + ] 887 + 888 + [[package]] 889 + name = "idna" 890 + version = "0.5.0" 891 + source = "registry+https://github.com/rust-lang/crates.io-index" 892 + checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 893 + dependencies = [ 894 + "unicode-bidi", 895 + "unicode-normalization", 896 + ] 897 + 898 + [[package]] 899 + name = "infer" 900 + version = "0.2.3" 901 + source = "registry+https://github.com/rust-lang/crates.io-index" 902 + checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" 903 + 904 + [[package]] 905 + name = "instant" 906 + version = "0.1.13" 907 + source = "registry+https://github.com/rust-lang/crates.io-index" 908 + checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 909 + dependencies = [ 910 + "cfg-if", 911 + ] 912 + 913 + [[package]] 914 + name = "ipnet" 915 + version = "2.10.1" 916 + source = "registry+https://github.com/rust-lang/crates.io-index" 917 + checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" 918 + 919 + [[package]] 920 + name = "itoa" 921 + version = "1.0.11" 922 + source = "registry+https://github.com/rust-lang/crates.io-index" 923 + checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 924 + 925 + [[package]] 926 + name = "js-sys" 927 + version = "0.3.72" 928 + source = "registry+https://github.com/rust-lang/crates.io-index" 929 + checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" 930 + dependencies = [ 931 + "wasm-bindgen", 932 + ] 933 + 934 + [[package]] 935 + name = "lazy_static" 936 + version = "1.5.0" 937 + source = "registry+https://github.com/rust-lang/crates.io-index" 938 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 939 + 940 + [[package]] 941 + name = "libc" 942 + version = "0.2.162" 943 + source = "registry+https://github.com/rust-lang/crates.io-index" 944 + checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" 945 + 946 + [[package]] 947 + name = "linux-raw-sys" 948 + version = "0.4.14" 949 + source = "registry+https://github.com/rust-lang/crates.io-index" 950 + checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 951 + 952 + [[package]] 953 + name = "log" 954 + version = "0.4.22" 955 + source = "registry+https://github.com/rust-lang/crates.io-index" 956 + checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 957 + 958 + [[package]] 959 + name = "matchit" 960 + version = "0.7.3" 961 + source = "registry+https://github.com/rust-lang/crates.io-index" 962 + checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" 963 + 964 + [[package]] 965 + name = "memchr" 966 + version = "2.7.4" 967 + source = "registry+https://github.com/rust-lang/crates.io-index" 968 + checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 969 + 970 + [[package]] 971 + name = "mime" 972 + version = "0.3.17" 973 + source = "registry+https://github.com/rust-lang/crates.io-index" 974 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 975 + 976 + [[package]] 977 + name = "mime_guess" 978 + version = "2.0.5" 979 + source = "registry+https://github.com/rust-lang/crates.io-index" 980 + checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 981 + dependencies = [ 982 + "mime", 983 + "unicase", 984 + ] 985 + 986 + [[package]] 987 + name = "miniz_oxide" 988 + version = "0.8.0" 989 + source = "registry+https://github.com/rust-lang/crates.io-index" 990 + checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 991 + dependencies = [ 992 + "adler2", 993 + ] 994 + 995 + [[package]] 996 + name = "mio" 997 + version = "1.0.2" 998 + source = "registry+https://github.com/rust-lang/crates.io-index" 999 + checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 1000 + dependencies = [ 1001 + "hermit-abi 0.3.9", 1002 + "libc", 1003 + "wasi 0.11.0+wasi-snapshot-preview1", 1004 + "windows-sys 0.52.0", 1005 + ] 1006 + 1007 + [[package]] 1008 + name = "native-tls" 1009 + version = "0.2.12" 1010 + source = "registry+https://github.com/rust-lang/crates.io-index" 1011 + checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" 1012 + dependencies = [ 1013 + "libc", 1014 + "log", 1015 + "openssl", 1016 + "openssl-probe", 1017 + "openssl-sys", 1018 + "schannel", 1019 + "security-framework", 1020 + "security-framework-sys", 1021 + "tempfile", 1022 + ] 1023 + 1024 + [[package]] 1025 + name = "nu-ansi-term" 1026 + version = "0.46.0" 1027 + source = "registry+https://github.com/rust-lang/crates.io-index" 1028 + checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 1029 + dependencies = [ 1030 + "overload", 1031 + "winapi", 1032 + ] 1033 + 1034 + [[package]] 1035 + name = "num-conv" 1036 + version = "0.1.0" 1037 + source = "registry+https://github.com/rust-lang/crates.io-index" 1038 + checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1039 + 1040 + [[package]] 1041 + name = "num-traits" 1042 + version = "0.2.19" 1043 + source = "registry+https://github.com/rust-lang/crates.io-index" 1044 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1045 + dependencies = [ 1046 + "autocfg", 1047 + ] 1048 + 1049 + [[package]] 1050 + name = "num_threads" 1051 + version = "0.1.7" 1052 + source = "registry+https://github.com/rust-lang/crates.io-index" 1053 + checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" 1054 + dependencies = [ 1055 + "libc", 1056 + ] 1057 + 1058 + [[package]] 1059 + name = "oauth2" 1060 + version = "4.4.2" 1061 + source = "registry+https://github.com/rust-lang/crates.io-index" 1062 + checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" 1063 + dependencies = [ 1064 + "base64 0.13.1", 1065 + "chrono", 1066 + "getrandom 0.2.15", 1067 + "http 0.2.12", 1068 + "rand 0.8.5", 1069 + "serde", 1070 + "serde_json", 1071 + "serde_path_to_error", 1072 + "sha2", 1073 + "thiserror", 1074 + "url", 1075 + ] 1076 + 1077 + [[package]] 1078 + name = "object" 1079 + version = "0.36.5" 1080 + source = "registry+https://github.com/rust-lang/crates.io-index" 1081 + checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" 1082 + dependencies = [ 1083 + "memchr", 1084 + ] 1085 + 1086 + [[package]] 1087 + name = "once_cell" 1088 + version = "1.20.2" 1089 + source = "registry+https://github.com/rust-lang/crates.io-index" 1090 + checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 1091 + 1092 + [[package]] 1093 + name = "openssl" 1094 + version = "0.10.66" 1095 + source = "registry+https://github.com/rust-lang/crates.io-index" 1096 + checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" 1097 + dependencies = [ 1098 + "bitflags", 1099 + "cfg-if", 1100 + "foreign-types", 1101 + "libc", 1102 + "once_cell", 1103 + "openssl-macros", 1104 + "openssl-sys", 1105 + ] 1106 + 1107 + [[package]] 1108 + name = "openssl-macros" 1109 + version = "0.1.1" 1110 + source = "registry+https://github.com/rust-lang/crates.io-index" 1111 + checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1112 + dependencies = [ 1113 + "proc-macro2", 1114 + "quote", 1115 + "syn", 1116 + ] 1117 + 1118 + [[package]] 1119 + name = "openssl-probe" 1120 + version = "0.1.5" 1121 + source = "registry+https://github.com/rust-lang/crates.io-index" 1122 + checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1123 + 1124 + [[package]] 1125 + name = "openssl-sys" 1126 + version = "0.9.103" 1127 + source = "registry+https://github.com/rust-lang/crates.io-index" 1128 + checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" 1129 + dependencies = [ 1130 + "cc", 1131 + "libc", 1132 + "pkg-config", 1133 + "vcpkg", 1134 + ] 1135 + 1136 + [[package]] 1137 + name = "overload" 1138 + version = "0.1.1" 1139 + source = "registry+https://github.com/rust-lang/crates.io-index" 1140 + checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 1141 + 1142 + [[package]] 1143 + name = "parking" 1144 + version = "2.2.1" 1145 + source = "registry+https://github.com/rust-lang/crates.io-index" 1146 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 1147 + 1148 + [[package]] 1149 + name = "paste" 1150 + version = "1.0.15" 1151 + source = "registry+https://github.com/rust-lang/crates.io-index" 1152 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1153 + 1154 + [[package]] 1155 + name = "percent-encoding" 1156 + version = "2.3.1" 1157 + source = "registry+https://github.com/rust-lang/crates.io-index" 1158 + checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1159 + 1160 + [[package]] 1161 + name = "pin-project" 1162 + version = "1.1.7" 1163 + source = "registry+https://github.com/rust-lang/crates.io-index" 1164 + checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" 1165 + dependencies = [ 1166 + "pin-project-internal", 1167 + ] 1168 + 1169 + [[package]] 1170 + name = "pin-project-internal" 1171 + version = "1.1.7" 1172 + source = "registry+https://github.com/rust-lang/crates.io-index" 1173 + checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" 1174 + dependencies = [ 1175 + "proc-macro2", 1176 + "quote", 1177 + "syn", 1178 + ] 1179 + 1180 + [[package]] 1181 + name = "pin-project-lite" 1182 + version = "0.2.15" 1183 + source = "registry+https://github.com/rust-lang/crates.io-index" 1184 + checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" 1185 + 1186 + [[package]] 1187 + name = "pin-utils" 1188 + version = "0.1.0" 1189 + source = "registry+https://github.com/rust-lang/crates.io-index" 1190 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1191 + 1192 + [[package]] 1193 + name = "piper" 1194 + version = "0.2.4" 1195 + source = "registry+https://github.com/rust-lang/crates.io-index" 1196 + checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 1197 + dependencies = [ 1198 + "atomic-waker", 1199 + "fastrand 2.2.0", 1200 + "futures-io", 1201 + ] 1202 + 1203 + [[package]] 1204 + name = "pkg-config" 1205 + version = "0.3.31" 1206 + source = "registry+https://github.com/rust-lang/crates.io-index" 1207 + checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 1208 + 1209 + [[package]] 1210 + name = "polling" 1211 + version = "3.7.3" 1212 + source = "registry+https://github.com/rust-lang/crates.io-index" 1213 + checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" 1214 + dependencies = [ 1215 + "cfg-if", 1216 + "concurrent-queue", 1217 + "hermit-abi 0.4.0", 1218 + "pin-project-lite", 1219 + "rustix", 1220 + "tracing", 1221 + "windows-sys 0.59.0", 1222 + ] 1223 + 1224 + [[package]] 1225 + name = "powerfmt" 1226 + version = "0.2.0" 1227 + source = "registry+https://github.com/rust-lang/crates.io-index" 1228 + checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1229 + 1230 + [[package]] 1231 + name = "ppv-lite86" 1232 + version = "0.2.20" 1233 + source = "registry+https://github.com/rust-lang/crates.io-index" 1234 + checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 1235 + dependencies = [ 1236 + "zerocopy", 1237 + ] 1238 + 1239 + [[package]] 1240 + name = "proc-macro2" 1241 + version = "1.0.92" 1242 + source = "registry+https://github.com/rust-lang/crates.io-index" 1243 + checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" 1244 + dependencies = [ 1245 + "unicode-ident", 1246 + ] 1247 + 1248 + [[package]] 1249 + name = "quote" 1250 + version = "1.0.37" 1251 + source = "registry+https://github.com/rust-lang/crates.io-index" 1252 + checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 1253 + dependencies = [ 1254 + "proc-macro2", 1255 + ] 1256 + 1257 + [[package]] 1258 + name = "rand" 1259 + version = "0.7.3" 1260 + source = "registry+https://github.com/rust-lang/crates.io-index" 1261 + checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1262 + dependencies = [ 1263 + "getrandom 0.1.16", 1264 + "libc", 1265 + "rand_chacha 0.2.2", 1266 + "rand_core 0.5.1", 1267 + "rand_hc", 1268 + ] 1269 + 1270 + [[package]] 1271 + name = "rand" 1272 + version = "0.8.5" 1273 + source = "registry+https://github.com/rust-lang/crates.io-index" 1274 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1275 + dependencies = [ 1276 + "libc", 1277 + "rand_chacha 0.3.1", 1278 + "rand_core 0.6.4", 1279 + ] 1280 + 1281 + [[package]] 1282 + name = "rand_chacha" 1283 + version = "0.2.2" 1284 + source = "registry+https://github.com/rust-lang/crates.io-index" 1285 + checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1286 + dependencies = [ 1287 + "ppv-lite86", 1288 + "rand_core 0.5.1", 1289 + ] 1290 + 1291 + [[package]] 1292 + name = "rand_chacha" 1293 + version = "0.3.1" 1294 + source = "registry+https://github.com/rust-lang/crates.io-index" 1295 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1296 + dependencies = [ 1297 + "ppv-lite86", 1298 + "rand_core 0.6.4", 1299 + ] 1300 + 1301 + [[package]] 1302 + name = "rand_core" 1303 + version = "0.5.1" 1304 + source = "registry+https://github.com/rust-lang/crates.io-index" 1305 + checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1306 + dependencies = [ 1307 + "getrandom 0.1.16", 1308 + ] 1309 + 1310 + [[package]] 1311 + name = "rand_core" 1312 + version = "0.6.4" 1313 + source = "registry+https://github.com/rust-lang/crates.io-index" 1314 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1315 + dependencies = [ 1316 + "getrandom 0.2.15", 1317 + ] 1318 + 1319 + [[package]] 1320 + name = "rand_hc" 1321 + version = "0.2.0" 1322 + source = "registry+https://github.com/rust-lang/crates.io-index" 1323 + checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1324 + dependencies = [ 1325 + "rand_core 0.5.1", 1326 + ] 1327 + 1328 + [[package]] 1329 + name = "reqwest" 1330 + version = "0.12.9" 1331 + source = "registry+https://github.com/rust-lang/crates.io-index" 1332 + checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" 1333 + dependencies = [ 1334 + "base64 0.22.1", 1335 + "bytes", 1336 + "futures-core", 1337 + "futures-util", 1338 + "http 1.1.0", 1339 + "http-body", 1340 + "http-body-util", 1341 + "hyper", 1342 + "hyper-tls", 1343 + "hyper-util", 1344 + "ipnet", 1345 + "js-sys", 1346 + "log", 1347 + "mime", 1348 + "native-tls", 1349 + "once_cell", 1350 + "percent-encoding", 1351 + "pin-project-lite", 1352 + "rustls-pemfile", 1353 + "serde", 1354 + "serde_json", 1355 + "serde_urlencoded", 1356 + "sync_wrapper 1.0.1", 1357 + "tokio", 1358 + "tokio-native-tls", 1359 + "tokio-util", 1360 + "tower-service", 1361 + "url", 1362 + "wasm-bindgen", 1363 + "wasm-bindgen-futures", 1364 + "wasm-streams", 1365 + "web-sys", 1366 + "windows-registry", 1367 + ] 1368 + 1369 + [[package]] 1370 + name = "rustc-demangle" 1371 + version = "0.1.24" 1372 + source = "registry+https://github.com/rust-lang/crates.io-index" 1373 + checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1374 + 1375 + [[package]] 1376 + name = "rustc_version" 1377 + version = "0.4.1" 1378 + source = "registry+https://github.com/rust-lang/crates.io-index" 1379 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 1380 + dependencies = [ 1381 + "semver", 1382 + ] 1383 + 1384 + [[package]] 1385 + name = "rustix" 1386 + version = "0.38.37" 1387 + source = "registry+https://github.com/rust-lang/crates.io-index" 1388 + checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 1389 + dependencies = [ 1390 + "bitflags", 1391 + "errno", 1392 + "libc", 1393 + "linux-raw-sys", 1394 + "windows-sys 0.52.0", 1395 + ] 1396 + 1397 + [[package]] 1398 + name = "rustls-pemfile" 1399 + version = "2.2.0" 1400 + source = "registry+https://github.com/rust-lang/crates.io-index" 1401 + checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" 1402 + dependencies = [ 1403 + "rustls-pki-types", 1404 + ] 1405 + 1406 + [[package]] 1407 + name = "rustls-pki-types" 1408 + version = "1.10.0" 1409 + source = "registry+https://github.com/rust-lang/crates.io-index" 1410 + checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" 1411 + 1412 + [[package]] 1413 + name = "rustversion" 1414 + version = "1.0.18" 1415 + source = "registry+https://github.com/rust-lang/crates.io-index" 1416 + checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" 1417 + 1418 + [[package]] 1419 + name = "ryu" 1420 + version = "1.0.18" 1421 + source = "registry+https://github.com/rust-lang/crates.io-index" 1422 + checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1423 + 1424 + [[package]] 1425 + name = "schannel" 1426 + version = "0.1.26" 1427 + source = "registry+https://github.com/rust-lang/crates.io-index" 1428 + checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" 1429 + dependencies = [ 1430 + "windows-sys 0.59.0", 1431 + ] 1432 + 1433 + [[package]] 1434 + name = "security-framework" 1435 + version = "2.11.1" 1436 + source = "registry+https://github.com/rust-lang/crates.io-index" 1437 + checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 1438 + dependencies = [ 1439 + "bitflags", 1440 + "core-foundation", 1441 + "core-foundation-sys", 1442 + "libc", 1443 + "security-framework-sys", 1444 + ] 1445 + 1446 + [[package]] 1447 + name = "security-framework-sys" 1448 + version = "2.11.1" 1449 + source = "registry+https://github.com/rust-lang/crates.io-index" 1450 + checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" 1451 + dependencies = [ 1452 + "core-foundation-sys", 1453 + "libc", 1454 + ] 1455 + 1456 + [[package]] 1457 + name = "semver" 1458 + version = "1.0.23" 1459 + source = "registry+https://github.com/rust-lang/crates.io-index" 1460 + checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 1461 + 1462 + [[package]] 1463 + name = "serde" 1464 + version = "1.0.216" 1465 + source = "registry+https://github.com/rust-lang/crates.io-index" 1466 + checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" 1467 + dependencies = [ 1468 + "serde_derive", 1469 + ] 1470 + 1471 + [[package]] 1472 + name = "serde_derive" 1473 + version = "1.0.216" 1474 + source = "registry+https://github.com/rust-lang/crates.io-index" 1475 + checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" 1476 + dependencies = [ 1477 + "proc-macro2", 1478 + "quote", 1479 + "syn", 1480 + ] 1481 + 1482 + [[package]] 1483 + name = "serde_json" 1484 + version = "1.0.133" 1485 + source = "registry+https://github.com/rust-lang/crates.io-index" 1486 + checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" 1487 + dependencies = [ 1488 + "itoa", 1489 + "memchr", 1490 + "ryu", 1491 + "serde", 1492 + ] 1493 + 1494 + [[package]] 1495 + name = "serde_path_to_error" 1496 + version = "0.1.16" 1497 + source = "registry+https://github.com/rust-lang/crates.io-index" 1498 + checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" 1499 + dependencies = [ 1500 + "itoa", 1501 + "serde", 1502 + ] 1503 + 1504 + [[package]] 1505 + name = "serde_qs" 1506 + version = "0.8.5" 1507 + source = "registry+https://github.com/rust-lang/crates.io-index" 1508 + checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" 1509 + dependencies = [ 1510 + "percent-encoding", 1511 + "serde", 1512 + "thiserror", 1513 + ] 1514 + 1515 + [[package]] 1516 + name = "serde_urlencoded" 1517 + version = "0.7.1" 1518 + source = "registry+https://github.com/rust-lang/crates.io-index" 1519 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1520 + dependencies = [ 1521 + "form_urlencoded", 1522 + "itoa", 1523 + "ryu", 1524 + "serde", 1525 + ] 1526 + 1527 + [[package]] 1528 + name = "sha2" 1529 + version = "0.10.8" 1530 + source = "registry+https://github.com/rust-lang/crates.io-index" 1531 + checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1532 + dependencies = [ 1533 + "cfg-if", 1534 + "cpufeatures", 1535 + "digest", 1536 + ] 1537 + 1538 + [[package]] 1539 + name = "sharded-slab" 1540 + version = "0.1.7" 1541 + source = "registry+https://github.com/rust-lang/crates.io-index" 1542 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 1543 + dependencies = [ 1544 + "lazy_static", 1545 + ] 1546 + 1547 + [[package]] 1548 + name = "shlex" 1549 + version = "1.3.0" 1550 + source = "registry+https://github.com/rust-lang/crates.io-index" 1551 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1552 + 1553 + [[package]] 1554 + name = "signal-hook-registry" 1555 + version = "1.4.2" 1556 + source = "registry+https://github.com/rust-lang/crates.io-index" 1557 + checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 1558 + dependencies = [ 1559 + "libc", 1560 + ] 1561 + 1562 + [[package]] 1563 + name = "slab" 1564 + version = "0.4.9" 1565 + source = "registry+https://github.com/rust-lang/crates.io-index" 1566 + checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1567 + dependencies = [ 1568 + "autocfg", 1569 + ] 1570 + 1571 + [[package]] 1572 + name = "smallvec" 1573 + version = "1.13.2" 1574 + source = "registry+https://github.com/rust-lang/crates.io-index" 1575 + checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1576 + 1577 + [[package]] 1578 + name = "socket2" 1579 + version = "0.5.7" 1580 + source = "registry+https://github.com/rust-lang/crates.io-index" 1581 + checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 1582 + dependencies = [ 1583 + "libc", 1584 + "windows-sys 0.52.0", 1585 + ] 1586 + 1587 + [[package]] 1588 + name = "syn" 1589 + version = "2.0.90" 1590 + source = "registry+https://github.com/rust-lang/crates.io-index" 1591 + checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" 1592 + dependencies = [ 1593 + "proc-macro2", 1594 + "quote", 1595 + "unicode-ident", 1596 + ] 1597 + 1598 + [[package]] 1599 + name = "sync_wrapper" 1600 + version = "0.1.2" 1601 + source = "registry+https://github.com/rust-lang/crates.io-index" 1602 + checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 1603 + 1604 + [[package]] 1605 + name = "sync_wrapper" 1606 + version = "1.0.1" 1607 + source = "registry+https://github.com/rust-lang/crates.io-index" 1608 + checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" 1609 + dependencies = [ 1610 + "futures-core", 1611 + ] 1612 + 1613 + [[package]] 1614 + name = "tempfile" 1615 + version = "3.13.0" 1616 + source = "registry+https://github.com/rust-lang/crates.io-index" 1617 + checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" 1618 + dependencies = [ 1619 + "cfg-if", 1620 + "fastrand 2.2.0", 1621 + "once_cell", 1622 + "rustix", 1623 + "windows-sys 0.59.0", 1624 + ] 1625 + 1626 + [[package]] 1627 + name = "thiserror" 1628 + version = "1.0.69" 1629 + source = "registry+https://github.com/rust-lang/crates.io-index" 1630 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1631 + dependencies = [ 1632 + "thiserror-impl", 1633 + ] 1634 + 1635 + [[package]] 1636 + name = "thiserror-impl" 1637 + version = "1.0.69" 1638 + source = "registry+https://github.com/rust-lang/crates.io-index" 1639 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1640 + dependencies = [ 1641 + "proc-macro2", 1642 + "quote", 1643 + "syn", 1644 + ] 1645 + 1646 + [[package]] 1647 + name = "thread_local" 1648 + version = "1.1.8" 1649 + source = "registry+https://github.com/rust-lang/crates.io-index" 1650 + checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 1651 + dependencies = [ 1652 + "cfg-if", 1653 + "once_cell", 1654 + ] 1655 + 1656 + [[package]] 1657 + name = "time" 1658 + version = "0.3.36" 1659 + source = "registry+https://github.com/rust-lang/crates.io-index" 1660 + checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 1661 + dependencies = [ 1662 + "deranged", 1663 + "itoa", 1664 + "js-sys", 1665 + "libc", 1666 + "num-conv", 1667 + "num_threads", 1668 + "powerfmt", 1669 + "serde", 1670 + "time-core", 1671 + "time-macros", 1672 + ] 1673 + 1674 + [[package]] 1675 + name = "time-core" 1676 + version = "0.1.2" 1677 + source = "registry+https://github.com/rust-lang/crates.io-index" 1678 + checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1679 + 1680 + [[package]] 1681 + name = "time-macros" 1682 + version = "0.2.18" 1683 + source = "registry+https://github.com/rust-lang/crates.io-index" 1684 + checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 1685 + dependencies = [ 1686 + "num-conv", 1687 + "time-core", 1688 + ] 1689 + 1690 + [[package]] 1691 + name = "tinyvec" 1692 + version = "1.8.0" 1693 + source = "registry+https://github.com/rust-lang/crates.io-index" 1694 + checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1695 + dependencies = [ 1696 + "tinyvec_macros", 1697 + ] 1698 + 1699 + [[package]] 1700 + name = "tinyvec_macros" 1701 + version = "0.1.1" 1702 + source = "registry+https://github.com/rust-lang/crates.io-index" 1703 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1704 + 1705 + [[package]] 1706 + name = "tokio" 1707 + version = "1.42.0" 1708 + source = "registry+https://github.com/rust-lang/crates.io-index" 1709 + checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" 1710 + dependencies = [ 1711 + "backtrace", 1712 + "bytes", 1713 + "libc", 1714 + "mio", 1715 + "pin-project-lite", 1716 + "socket2", 1717 + "tokio-macros", 1718 + "windows-sys 0.52.0", 1719 + ] 1720 + 1721 + [[package]] 1722 + name = "tokio-macros" 1723 + version = "2.4.0" 1724 + source = "registry+https://github.com/rust-lang/crates.io-index" 1725 + checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 1726 + dependencies = [ 1727 + "proc-macro2", 1728 + "quote", 1729 + "syn", 1730 + ] 1731 + 1732 + [[package]] 1733 + name = "tokio-native-tls" 1734 + version = "0.3.1" 1735 + source = "registry+https://github.com/rust-lang/crates.io-index" 1736 + checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 1737 + dependencies = [ 1738 + "native-tls", 1739 + "tokio", 1740 + ] 1741 + 1742 + [[package]] 1743 + name = "tokio-util" 1744 + version = "0.7.12" 1745 + source = "registry+https://github.com/rust-lang/crates.io-index" 1746 + checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" 1747 + dependencies = [ 1748 + "bytes", 1749 + "futures-core", 1750 + "futures-sink", 1751 + "pin-project-lite", 1752 + "tokio", 1753 + ] 1754 + 1755 + [[package]] 1756 + name = "tower" 1757 + version = "0.5.1" 1758 + source = "registry+https://github.com/rust-lang/crates.io-index" 1759 + checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" 1760 + dependencies = [ 1761 + "futures-core", 1762 + "futures-util", 1763 + "pin-project-lite", 1764 + "sync_wrapper 0.1.2", 1765 + "tokio", 1766 + "tower-layer", 1767 + "tower-service", 1768 + "tracing", 1769 + ] 1770 + 1771 + [[package]] 1772 + name = "tower-http" 1773 + version = "0.6.2" 1774 + source = "registry+https://github.com/rust-lang/crates.io-index" 1775 + checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" 1776 + dependencies = [ 1777 + "bitflags", 1778 + "bytes", 1779 + "futures-util", 1780 + "http 1.1.0", 1781 + "http-body", 1782 + "http-body-util", 1783 + "http-range-header", 1784 + "httpdate", 1785 + "mime", 1786 + "mime_guess", 1787 + "percent-encoding", 1788 + "pin-project-lite", 1789 + "tokio", 1790 + "tokio-util", 1791 + "tower-layer", 1792 + "tower-service", 1793 + "tracing", 1794 + ] 1795 + 1796 + [[package]] 1797 + name = "tower-layer" 1798 + version = "0.3.3" 1799 + source = "registry+https://github.com/rust-lang/crates.io-index" 1800 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 1801 + 1802 + [[package]] 1803 + name = "tower-service" 1804 + version = "0.3.3" 1805 + source = "registry+https://github.com/rust-lang/crates.io-index" 1806 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 1807 + 1808 + [[package]] 1809 + name = "tracing" 1810 + version = "0.1.41" 1811 + source = "registry+https://github.com/rust-lang/crates.io-index" 1812 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 1813 + dependencies = [ 1814 + "log", 1815 + "pin-project-lite", 1816 + "tracing-attributes", 1817 + "tracing-core", 1818 + ] 1819 + 1820 + [[package]] 1821 + name = "tracing-attributes" 1822 + version = "0.1.28" 1823 + source = "registry+https://github.com/rust-lang/crates.io-index" 1824 + checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 1825 + dependencies = [ 1826 + "proc-macro2", 1827 + "quote", 1828 + "syn", 1829 + ] 1830 + 1831 + [[package]] 1832 + name = "tracing-core" 1833 + version = "0.1.33" 1834 + source = "registry+https://github.com/rust-lang/crates.io-index" 1835 + checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 1836 + dependencies = [ 1837 + "once_cell", 1838 + "valuable", 1839 + ] 1840 + 1841 + [[package]] 1842 + name = "tracing-log" 1843 + version = "0.2.0" 1844 + source = "registry+https://github.com/rust-lang/crates.io-index" 1845 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 1846 + dependencies = [ 1847 + "log", 1848 + "once_cell", 1849 + "tracing-core", 1850 + ] 1851 + 1852 + [[package]] 1853 + name = "tracing-subscriber" 1854 + version = "0.3.19" 1855 + source = "registry+https://github.com/rust-lang/crates.io-index" 1856 + checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 1857 + dependencies = [ 1858 + "nu-ansi-term", 1859 + "sharded-slab", 1860 + "smallvec", 1861 + "thread_local", 1862 + "tracing-core", 1863 + "tracing-log", 1864 + ] 1865 + 1866 + [[package]] 1867 + name = "try-lock" 1868 + version = "0.2.5" 1869 + source = "registry+https://github.com/rust-lang/crates.io-index" 1870 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1871 + 1872 + [[package]] 1873 + name = "typenum" 1874 + version = "1.17.0" 1875 + source = "registry+https://github.com/rust-lang/crates.io-index" 1876 + checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 1877 + 1878 + [[package]] 1879 + name = "tz-rs" 1880 + version = "0.6.14" 1881 + source = "registry+https://github.com/rust-lang/crates.io-index" 1882 + checksum = "33851b15c848fad2cf4b105c6bb66eb9512b6f6c44a4b13f57c53c73c707e2b4" 1883 + dependencies = [ 1884 + "const_fn", 1885 + ] 1886 + 1887 + [[package]] 1888 + name = "unicase" 1889 + version = "2.8.0" 1890 + source = "registry+https://github.com/rust-lang/crates.io-index" 1891 + checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" 1892 + 1893 + [[package]] 1894 + name = "unicode-bidi" 1895 + version = "0.3.17" 1896 + source = "registry+https://github.com/rust-lang/crates.io-index" 1897 + checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" 1898 + 1899 + [[package]] 1900 + name = "unicode-ident" 1901 + version = "1.0.13" 1902 + source = "registry+https://github.com/rust-lang/crates.io-index" 1903 + checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 1904 + 1905 + [[package]] 1906 + name = "unicode-normalization" 1907 + version = "0.1.24" 1908 + source = "registry+https://github.com/rust-lang/crates.io-index" 1909 + checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 1910 + dependencies = [ 1911 + "tinyvec", 1912 + ] 1913 + 1914 + [[package]] 1915 + name = "url" 1916 + version = "2.5.2" 1917 + source = "registry+https://github.com/rust-lang/crates.io-index" 1918 + checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 1919 + dependencies = [ 1920 + "form_urlencoded", 1921 + "idna", 1922 + "percent-encoding", 1923 + "serde", 1924 + ] 1925 + 1926 + [[package]] 1927 + name = "uuid" 1928 + version = "1.11.0" 1929 + source = "registry+https://github.com/rust-lang/crates.io-index" 1930 + checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" 1931 + dependencies = [ 1932 + "getrandom 0.2.15", 1933 + ] 1934 + 1935 + [[package]] 1936 + name = "valuable" 1937 + version = "0.1.0" 1938 + source = "registry+https://github.com/rust-lang/crates.io-index" 1939 + checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 1940 + 1941 + [[package]] 1942 + name = "vcpkg" 1943 + version = "0.2.15" 1944 + source = "registry+https://github.com/rust-lang/crates.io-index" 1945 + checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1946 + 1947 + [[package]] 1948 + name = "version_check" 1949 + version = "0.9.5" 1950 + source = "registry+https://github.com/rust-lang/crates.io-index" 1951 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1952 + 1953 + [[package]] 1954 + name = "waker-fn" 1955 + version = "1.2.0" 1956 + source = "registry+https://github.com/rust-lang/crates.io-index" 1957 + checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" 1958 + 1959 + [[package]] 1960 + name = "want" 1961 + version = "0.3.1" 1962 + source = "registry+https://github.com/rust-lang/crates.io-index" 1963 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1964 + dependencies = [ 1965 + "try-lock", 1966 + ] 1967 + 1968 + [[package]] 1969 + name = "wasi" 1970 + version = "0.9.0+wasi-snapshot-preview1" 1971 + source = "registry+https://github.com/rust-lang/crates.io-index" 1972 + checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 1973 + 1974 + [[package]] 1975 + name = "wasi" 1976 + version = "0.11.0+wasi-snapshot-preview1" 1977 + source = "registry+https://github.com/rust-lang/crates.io-index" 1978 + checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1979 + 1980 + [[package]] 1981 + name = "wasm-bindgen" 1982 + version = "0.2.95" 1983 + source = "registry+https://github.com/rust-lang/crates.io-index" 1984 + checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" 1985 + dependencies = [ 1986 + "cfg-if", 1987 + "once_cell", 1988 + "wasm-bindgen-macro", 1989 + ] 1990 + 1991 + [[package]] 1992 + name = "wasm-bindgen-backend" 1993 + version = "0.2.95" 1994 + source = "registry+https://github.com/rust-lang/crates.io-index" 1995 + checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" 1996 + dependencies = [ 1997 + "bumpalo", 1998 + "log", 1999 + "once_cell", 2000 + "proc-macro2", 2001 + "quote", 2002 + "syn", 2003 + "wasm-bindgen-shared", 2004 + ] 2005 + 2006 + [[package]] 2007 + name = "wasm-bindgen-futures" 2008 + version = "0.4.45" 2009 + source = "registry+https://github.com/rust-lang/crates.io-index" 2010 + checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" 2011 + dependencies = [ 2012 + "cfg-if", 2013 + "js-sys", 2014 + "wasm-bindgen", 2015 + "web-sys", 2016 + ] 2017 + 2018 + [[package]] 2019 + name = "wasm-bindgen-macro" 2020 + version = "0.2.95" 2021 + source = "registry+https://github.com/rust-lang/crates.io-index" 2022 + checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" 2023 + dependencies = [ 2024 + "quote", 2025 + "wasm-bindgen-macro-support", 2026 + ] 2027 + 2028 + [[package]] 2029 + name = "wasm-bindgen-macro-support" 2030 + version = "0.2.95" 2031 + source = "registry+https://github.com/rust-lang/crates.io-index" 2032 + checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" 2033 + dependencies = [ 2034 + "proc-macro2", 2035 + "quote", 2036 + "syn", 2037 + "wasm-bindgen-backend", 2038 + "wasm-bindgen-shared", 2039 + ] 2040 + 2041 + [[package]] 2042 + name = "wasm-bindgen-shared" 2043 + version = "0.2.95" 2044 + source = "registry+https://github.com/rust-lang/crates.io-index" 2045 + checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" 2046 + 2047 + [[package]] 2048 + name = "wasm-streams" 2049 + version = "0.4.0" 2050 + source = "registry+https://github.com/rust-lang/crates.io-index" 2051 + checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" 2052 + dependencies = [ 2053 + "futures-util", 2054 + "js-sys", 2055 + "wasm-bindgen", 2056 + "wasm-bindgen-futures", 2057 + "web-sys", 2058 + ] 2059 + 2060 + [[package]] 2061 + name = "web-sys" 2062 + version = "0.3.72" 2063 + source = "registry+https://github.com/rust-lang/crates.io-index" 2064 + checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" 2065 + dependencies = [ 2066 + "js-sys", 2067 + "wasm-bindgen", 2068 + ] 2069 + 2070 + [[package]] 2071 + name = "winapi" 2072 + version = "0.3.9" 2073 + source = "registry+https://github.com/rust-lang/crates.io-index" 2074 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2075 + dependencies = [ 2076 + "winapi-i686-pc-windows-gnu", 2077 + "winapi-x86_64-pc-windows-gnu", 2078 + ] 2079 + 2080 + [[package]] 2081 + name = "winapi-i686-pc-windows-gnu" 2082 + version = "0.4.0" 2083 + source = "registry+https://github.com/rust-lang/crates.io-index" 2084 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2085 + 2086 + [[package]] 2087 + name = "winapi-x86_64-pc-windows-gnu" 2088 + version = "0.4.0" 2089 + source = "registry+https://github.com/rust-lang/crates.io-index" 2090 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2091 + 2092 + [[package]] 2093 + name = "windows-core" 2094 + version = "0.52.0" 2095 + source = "registry+https://github.com/rust-lang/crates.io-index" 2096 + checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2097 + dependencies = [ 2098 + "windows-targets", 2099 + ] 2100 + 2101 + [[package]] 2102 + name = "windows-registry" 2103 + version = "0.2.0" 2104 + source = "registry+https://github.com/rust-lang/crates.io-index" 2105 + checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" 2106 + dependencies = [ 2107 + "windows-result", 2108 + "windows-strings", 2109 + "windows-targets", 2110 + ] 2111 + 2112 + [[package]] 2113 + name = "windows-result" 2114 + version = "0.2.0" 2115 + source = "registry+https://github.com/rust-lang/crates.io-index" 2116 + checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 2117 + dependencies = [ 2118 + "windows-targets", 2119 + ] 2120 + 2121 + [[package]] 2122 + name = "windows-strings" 2123 + version = "0.1.0" 2124 + source = "registry+https://github.com/rust-lang/crates.io-index" 2125 + checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 2126 + dependencies = [ 2127 + "windows-result", 2128 + "windows-targets", 2129 + ] 2130 + 2131 + [[package]] 2132 + name = "windows-sys" 2133 + version = "0.52.0" 2134 + source = "registry+https://github.com/rust-lang/crates.io-index" 2135 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2136 + dependencies = [ 2137 + "windows-targets", 2138 + ] 2139 + 2140 + [[package]] 2141 + name = "windows-sys" 2142 + version = "0.59.0" 2143 + source = "registry+https://github.com/rust-lang/crates.io-index" 2144 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2145 + dependencies = [ 2146 + "windows-targets", 2147 + ] 2148 + 2149 + [[package]] 2150 + name = "windows-targets" 2151 + version = "0.52.6" 2152 + source = "registry+https://github.com/rust-lang/crates.io-index" 2153 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2154 + dependencies = [ 2155 + "windows_aarch64_gnullvm", 2156 + "windows_aarch64_msvc", 2157 + "windows_i686_gnu", 2158 + "windows_i686_gnullvm", 2159 + "windows_i686_msvc", 2160 + "windows_x86_64_gnu", 2161 + "windows_x86_64_gnullvm", 2162 + "windows_x86_64_msvc", 2163 + ] 2164 + 2165 + [[package]] 2166 + name = "windows_aarch64_gnullvm" 2167 + version = "0.52.6" 2168 + source = "registry+https://github.com/rust-lang/crates.io-index" 2169 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2170 + 2171 + [[package]] 2172 + name = "windows_aarch64_msvc" 2173 + version = "0.52.6" 2174 + source = "registry+https://github.com/rust-lang/crates.io-index" 2175 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2176 + 2177 + [[package]] 2178 + name = "windows_i686_gnu" 2179 + version = "0.52.6" 2180 + source = "registry+https://github.com/rust-lang/crates.io-index" 2181 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2182 + 2183 + [[package]] 2184 + name = "windows_i686_gnullvm" 2185 + version = "0.52.6" 2186 + source = "registry+https://github.com/rust-lang/crates.io-index" 2187 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2188 + 2189 + [[package]] 2190 + name = "windows_i686_msvc" 2191 + version = "0.52.6" 2192 + source = "registry+https://github.com/rust-lang/crates.io-index" 2193 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2194 + 2195 + [[package]] 2196 + name = "windows_x86_64_gnu" 2197 + version = "0.52.6" 2198 + source = "registry+https://github.com/rust-lang/crates.io-index" 2199 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2200 + 2201 + [[package]] 2202 + name = "windows_x86_64_gnullvm" 2203 + version = "0.52.6" 2204 + source = "registry+https://github.com/rust-lang/crates.io-index" 2205 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2206 + 2207 + [[package]] 2208 + name = "windows_x86_64_msvc" 2209 + version = "0.52.6" 2210 + source = "registry+https://github.com/rust-lang/crates.io-index" 2211 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2212 + 2213 + [[package]] 2214 + name = "zerocopy" 2215 + version = "0.7.35" 2216 + source = "registry+https://github.com/rust-lang/crates.io-index" 2217 + checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 2218 + dependencies = [ 2219 + "byteorder", 2220 + "zerocopy-derive", 2221 + ] 2222 + 2223 + [[package]] 2224 + name = "zerocopy-derive" 2225 + version = "0.7.35" 2226 + source = "registry+https://github.com/rust-lang/crates.io-index" 2227 + checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 2228 + dependencies = [ 2229 + "proc-macro2", 2230 + "quote", 2231 + "syn", 2232 + ]
+17
Cargo.toml
···
··· 1 + [package] 2 + name = "bluepds" 3 + version = "0.0.0" 4 + edition = "2021" 5 + publish = false 6 + 7 + [dependencies] 8 + anyhow = "1.0.94" 9 + axum = { version = "0.7.9", features = ["tower-log", "form", "macros"] } 10 + azure_core = "0.21.0" 11 + azure_identity = "0.21.0" 12 + serde = { version = "1.0.216", features = ["derive"] } 13 + serde_json = "1.0.133" 14 + tokio = { version = "1.42.0", features = ["macros", "rt-multi-thread"] } 15 + tower-http = { version = "0.6.2", features = ["fs", "trace"] } 16 + tracing = "0.1.41" 17 + tracing-subscriber = "0.3.19"
+23
Dockerfile
···
··· 1 + FROM mcr.microsoft.com/cbl-mariner/base/rust:1 as builder 2 + 3 + COPY Cargo.lock /build/ 4 + COPY Cargo.toml /build/ 5 + COPY src /build/src 6 + 7 + # Build the default page 8 + WORKDIR /build 9 + 10 + RUN cargo build --release 11 + RUN mkdir -p /app && mv target/release/axum-app /app/ 12 + 13 + FROM mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0 14 + 15 + COPY --from=builder /app /app 16 + COPY static /app/static 17 + COPY templates /app/templates 18 + 19 + #WORKDIR /home/site/wwwroot 20 + WORKDIR /app 21 + EXPOSE 8000 22 + 23 + ENTRYPOINT [ "/app/axum-app" ]
+36
README.md
···
··· 1 + # Axum ❤️ Azure 2 + This is a basic example of using a [Axum](https://github.com/tokio-rs/axum) app with [Azure app services](https://learn.microsoft.com/en-us/azure/app-service/overview). 3 + 4 + ## Quick Start 5 + ``` 6 + cargo run 7 + ``` 8 + 9 + ## Quick Deployment (Azure CLI) 10 + ``` 11 + az group create --name "webapp" --location southcentralus 12 + az deployment group create --resource-group "webapp" --template-file .\deployment.bicep --parameters webAppName=testapp 13 + 14 + az acr login --name <insert name of ACR resource here> 15 + docker build -t <ACR>.azurecr.io/testapp:latest . 16 + docker push <ACR>.azurecr.io/testapp:latest 17 + ``` 18 + 19 + ## Manual Deployment 20 + ``` 21 + $RESOURCE_GROUP = "rustwebapp" 22 + $DCR = "rustwebappdcr" 23 + $APPSERVICE = "rustappservice" 24 + $APP = "rustapp" 25 + 26 + az group create --name $RESOURCE_GROUP --location southcentralus 27 + az acr create -n $DCR -g $RESOURCE_GROUP --sku Standard --admin-enabled true 28 + az acr login --name $DCR 29 + 30 + docker build -t $DCR.azurecr.io/rustapp:latest . 31 + docker push $DCR.azurecr.io/rustapp:latest 32 + 33 + az appservice plan create -g $RESOURCE_GROUP -n $APPSERVICE --sku B1 --is-linux 34 + az webapp create -g $RESOURCE_GROUP -p $APPSERVICE -n $APP -i $DCR.azurecr.io/rustapp:latest 35 + az webapp config appsettings set -g $RESOURCE_GROUP -n $APP --settings WEBSITES_PORT=8000 36 + ```
+88
deployment.bicep
···
··· 1 + param webAppName string 2 + param location string = resourceGroup().location // Location for all resources 3 + 4 + param sku string = 'F1' // The SKU of App Service Plan 5 + param dockerContainerName string = '${webAppName}:latest' 6 + param repositoryUrl string = 'https://github.com/DrChat/azure-rust-app' 7 + param branch string = 'main' 8 + 9 + var acrName = toLower('${webAppName}${uniqueString(resourceGroup().id)}') 10 + var aspName = toLower('${webAppName}-asp') 11 + var webName = toLower('${webAppName}${uniqueString(resourceGroup().id)}') 12 + 13 + resource appServicePlan 'Microsoft.Web/serverfarms@2020-06-01' = { 14 + name: aspName 15 + location: location 16 + properties: { 17 + reserved: true 18 + } 19 + sku: { 20 + name: sku 21 + } 22 + kind: 'linux' 23 + } 24 + 25 + resource acrResource 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' = { 26 + name: acrName 27 + location: location 28 + sku: { 29 + name: 'Basic' 30 + } 31 + properties: { 32 + adminUserEnabled: false 33 + } 34 + } 35 + 36 + resource appService 'Microsoft.Web/sites@2020-06-01' = { 37 + name: webName 38 + location: location 39 + identity: { 40 + type: 'SystemAssigned' 41 + } 42 + properties: { 43 + serverFarmId: appServicePlan.id 44 + siteConfig: { 45 + // Sigh. This took _far_ too long to figure out. 46 + // We must authenticate to ACR, as no credentials are set up by default 47 + // (the Az CLI will implicitly set them up in the background) 48 + acrUseManagedIdentityCreds: true 49 + appSettings: [ 50 + { 51 + name: 'WEBSITES_PORT' 52 + value: '8000' 53 + } 54 + ] 55 + linuxFxVersion: 'DOCKER|${acrName}.azurecr.io/${dockerContainerName}' 56 + } 57 + } 58 + } 59 + 60 + @description('This is the built-in AcrPull role. See https://docs.microsoft.com/azure/role-based-access-control/built-in-roles#acrpull') 61 + resource acrPullRoleDefinition 'Microsoft.Authorization/roleDefinitions@2018-01-01-preview' existing = { 62 + scope: subscription() 63 + name: '7f951dda-4ed3-4680-a7ca-43fe172d538d' 64 + } 65 + 66 + resource appServiceAcrPull 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = { 67 + name: guid(resourceGroup().id, acrResource.id, appService.id, 'AssignAcrPullToAS') 68 + scope: acrResource 69 + properties: { 70 + description: 'Assign AcrPull role to AS' 71 + principalId: appService.identity.principalId 72 + principalType: 'ServicePrincipal' 73 + roleDefinitionId: acrPullRoleDefinition.id 74 + } 75 + } 76 + 77 + resource srcControls 'Microsoft.Web/sites/sourcecontrols@2021-01-01' = { 78 + name: 'web' 79 + parent: appService 80 + properties: { 81 + repoUrl: repositoryUrl 82 + branch: branch 83 + isManualIntegration: true 84 + } 85 + } 86 + 87 + output acr string = acrResource.name 88 + output domain string = appService.properties.hostNames[0]
+67
src/main.rs
···
··· 1 + use std::{net::SocketAddr, str::FromStr}; 2 + 3 + use axum::{extract::FromRef, response::IntoResponse, routing::get, Router}; 4 + use tokio::net::TcpListener; 5 + use tower_http::trace::TraceLayer; 6 + 7 + use anyhow::Context; 8 + 9 + async fn index() -> impl IntoResponse { 10 + "hello" 11 + } 12 + 13 + #[derive(Clone, FromRef)] 14 + struct AppState {} 15 + 16 + #[tokio::main] 17 + async fn main() -> anyhow::Result<()> { 18 + tracing_subscriber::fmt() 19 + .with_max_level(tracing::Level::DEBUG) 20 + .init(); 21 + 22 + let app = Router::new() 23 + .route("/", get(index)) 24 + .layer(TraceLayer::new_for_http()) 25 + .with_state(AppState {}); 26 + 27 + // Required endpoints: 28 + // U /xrpc/_health (undocumented, but impl by reference PDS) 29 + // 30 + // U /xrpc/com.atproto.identity.resolveHandle 31 + // U /xrpc/com.atproto.identity.updateHandle 32 + // 33 + // U /xrpc/com.atproto.server.describeServer 34 + // U /xrpc/com.atproto.server.createSession 35 + // U /xrpc/com.atproto.server.getSession 36 + // 37 + // A /xrpc/com.atproto.repo.applyWrites 38 + // A /xrpc/com.atproto.repo.createRecord 39 + // A /xrpc/com.atproto.repo.putRecord 40 + // A /xrpc/com.atproto.repo.deleteRecord 41 + // U /xrpc/com.atproto.repo.describeRepo 42 + // U /xrpc/com.atproto.repo.getRecord 43 + // U /xrpc/com.atproto.repo.listRecords 44 + // A /xrpc/com.atproto.repo.uploadBlob 45 + // 46 + // U /xrpc/com.atproto.sync.getBlob 47 + // U /xrpc/com.atproto.sync.getBlocks 48 + // U /xrpc/com.atproto.sync.getLatestCommit 49 + // U /xrpc/com.atproto.sync.getRecord 50 + // U /xrpc/com.atproto.sync.getRepoStatus 51 + // U /xrpc/com.atproto.sync.getRepo 52 + // U /xrpc/com.atproto.sync.listBlobs 53 + // U /xrpc/com.atproto.sync.listRepos 54 + // U /xrpc/com.atproto.sync.subscribeRepos 55 + 56 + let addr = SocketAddr::from_str("0.0.0.0:8000").unwrap(); 57 + let listener = TcpListener::bind(&addr) 58 + .await 59 + .context("failed to bind address")?; 60 + 61 + tracing::info!("listening on {addr}"); 62 + tracing::info!("connect to: http://127.0.0.1:{}", addr.port()); 63 + 64 + axum::serve(listener, app.into_make_service()) 65 + .await 66 + .context("failed to serve app") 67 + }