Microservice to bring 2FA to self hosted PDSes

a start

+2
.gitignore
··· 1 + /target 2 + .idea
+2443
Cargo.lock
··· 1 + # This file is automatically @generated by Cargo. 2 + # It is not intended for manual editing. 3 + version = 4 4 + 5 + [[package]] 6 + name = "addr2line" 7 + version = "0.24.2" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 10 + dependencies = [ 11 + "gimli", 12 + ] 13 + 14 + [[package]] 15 + name = "adler2" 16 + version = "2.0.1" 17 + source = "registry+https://github.com/rust-lang/crates.io-index" 18 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 19 + 20 + [[package]] 21 + name = "ahash" 22 + version = "0.8.12" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" 25 + dependencies = [ 26 + "cfg-if", 27 + "getrandom 0.3.3", 28 + "once_cell", 29 + "version_check", 30 + "zerocopy", 31 + ] 32 + 33 + [[package]] 34 + name = "aho-corasick" 35 + version = "1.1.3" 36 + source = "registry+https://github.com/rust-lang/crates.io-index" 37 + checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 38 + dependencies = [ 39 + "memchr", 40 + ] 41 + 42 + [[package]] 43 + name = "allocator-api2" 44 + version = "0.2.21" 45 + source = "registry+https://github.com/rust-lang/crates.io-index" 46 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 47 + 48 + [[package]] 49 + name = "async-trait" 50 + version = "0.1.89" 51 + source = "registry+https://github.com/rust-lang/crates.io-index" 52 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 53 + dependencies = [ 54 + "proc-macro2", 55 + "quote", 56 + "syn 2.0.105", 57 + ] 58 + 59 + [[package]] 60 + name = "atoi" 61 + version = "2.0.0" 62 + source = "registry+https://github.com/rust-lang/crates.io-index" 63 + checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" 64 + dependencies = [ 65 + "num-traits", 66 + ] 67 + 68 + [[package]] 69 + name = "autocfg" 70 + version = "1.5.0" 71 + source = "registry+https://github.com/rust-lang/crates.io-index" 72 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 73 + 74 + [[package]] 75 + name = "axum" 76 + version = "0.7.9" 77 + source = "registry+https://github.com/rust-lang/crates.io-index" 78 + checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" 79 + dependencies = [ 80 + "async-trait", 81 + "axum-core", 82 + "axum-macros", 83 + "bytes", 84 + "futures-util", 85 + "http", 86 + "http-body", 87 + "http-body-util", 88 + "hyper", 89 + "hyper-util", 90 + "itoa", 91 + "matchit", 92 + "memchr", 93 + "mime", 94 + "percent-encoding", 95 + "pin-project-lite", 96 + "rustversion", 97 + "serde", 98 + "serde_json", 99 + "serde_path_to_error", 100 + "serde_urlencoded", 101 + "sync_wrapper", 102 + "tokio", 103 + "tower", 104 + "tower-layer", 105 + "tower-service", 106 + "tracing", 107 + ] 108 + 109 + [[package]] 110 + name = "axum-core" 111 + version = "0.4.5" 112 + source = "registry+https://github.com/rust-lang/crates.io-index" 113 + checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" 114 + dependencies = [ 115 + "async-trait", 116 + "bytes", 117 + "futures-util", 118 + "http", 119 + "http-body", 120 + "http-body-util", 121 + "mime", 122 + "pin-project-lite", 123 + "rustversion", 124 + "sync_wrapper", 125 + "tower-layer", 126 + "tower-service", 127 + "tracing", 128 + ] 129 + 130 + [[package]] 131 + name = "axum-macros" 132 + version = "0.4.2" 133 + source = "registry+https://github.com/rust-lang/crates.io-index" 134 + checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" 135 + dependencies = [ 136 + "proc-macro2", 137 + "quote", 138 + "syn 2.0.105", 139 + ] 140 + 141 + [[package]] 142 + name = "backtrace" 143 + version = "0.3.75" 144 + source = "registry+https://github.com/rust-lang/crates.io-index" 145 + checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 146 + dependencies = [ 147 + "addr2line", 148 + "cfg-if", 149 + "libc", 150 + "miniz_oxide", 151 + "object", 152 + "rustc-demangle", 153 + "windows-targets 0.52.6", 154 + ] 155 + 156 + [[package]] 157 + name = "base64" 158 + version = "0.21.7" 159 + source = "registry+https://github.com/rust-lang/crates.io-index" 160 + checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 161 + 162 + [[package]] 163 + name = "base64ct" 164 + version = "1.8.0" 165 + source = "registry+https://github.com/rust-lang/crates.io-index" 166 + checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" 167 + 168 + [[package]] 169 + name = "bitflags" 170 + version = "2.9.1" 171 + source = "registry+https://github.com/rust-lang/crates.io-index" 172 + checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 173 + dependencies = [ 174 + "serde", 175 + ] 176 + 177 + [[package]] 178 + name = "block-buffer" 179 + version = "0.10.4" 180 + source = "registry+https://github.com/rust-lang/crates.io-index" 181 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 182 + dependencies = [ 183 + "generic-array", 184 + ] 185 + 186 + [[package]] 187 + name = "byteorder" 188 + version = "1.5.0" 189 + source = "registry+https://github.com/rust-lang/crates.io-index" 190 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 191 + 192 + [[package]] 193 + name = "bytes" 194 + version = "1.10.1" 195 + source = "registry+https://github.com/rust-lang/crates.io-index" 196 + checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 197 + 198 + [[package]] 199 + name = "cc" 200 + version = "1.2.32" 201 + source = "registry+https://github.com/rust-lang/crates.io-index" 202 + checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" 203 + dependencies = [ 204 + "shlex", 205 + ] 206 + 207 + [[package]] 208 + name = "cfg-if" 209 + version = "1.0.1" 210 + source = "registry+https://github.com/rust-lang/crates.io-index" 211 + checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 212 + 213 + [[package]] 214 + name = "const-oid" 215 + version = "0.9.6" 216 + source = "registry+https://github.com/rust-lang/crates.io-index" 217 + checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 218 + 219 + [[package]] 220 + name = "cpufeatures" 221 + version = "0.2.17" 222 + source = "registry+https://github.com/rust-lang/crates.io-index" 223 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 224 + dependencies = [ 225 + "libc", 226 + ] 227 + 228 + [[package]] 229 + name = "crc" 230 + version = "3.3.0" 231 + source = "registry+https://github.com/rust-lang/crates.io-index" 232 + checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" 233 + dependencies = [ 234 + "crc-catalog", 235 + ] 236 + 237 + [[package]] 238 + name = "crc-catalog" 239 + version = "2.4.0" 240 + source = "registry+https://github.com/rust-lang/crates.io-index" 241 + checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 242 + 243 + [[package]] 244 + name = "crossbeam-queue" 245 + version = "0.3.12" 246 + source = "registry+https://github.com/rust-lang/crates.io-index" 247 + checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" 248 + dependencies = [ 249 + "crossbeam-utils", 250 + ] 251 + 252 + [[package]] 253 + name = "crossbeam-utils" 254 + version = "0.8.21" 255 + source = "registry+https://github.com/rust-lang/crates.io-index" 256 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 257 + 258 + [[package]] 259 + name = "crypto-common" 260 + version = "0.1.6" 261 + source = "registry+https://github.com/rust-lang/crates.io-index" 262 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 263 + dependencies = [ 264 + "generic-array", 265 + "typenum", 266 + ] 267 + 268 + [[package]] 269 + name = "der" 270 + version = "0.7.10" 271 + source = "registry+https://github.com/rust-lang/crates.io-index" 272 + checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" 273 + dependencies = [ 274 + "const-oid", 275 + "pem-rfc7468", 276 + "zeroize", 277 + ] 278 + 279 + [[package]] 280 + name = "digest" 281 + version = "0.10.7" 282 + source = "registry+https://github.com/rust-lang/crates.io-index" 283 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 284 + dependencies = [ 285 + "block-buffer", 286 + "const-oid", 287 + "crypto-common", 288 + "subtle", 289 + ] 290 + 291 + [[package]] 292 + name = "displaydoc" 293 + version = "0.2.5" 294 + source = "registry+https://github.com/rust-lang/crates.io-index" 295 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 296 + dependencies = [ 297 + "proc-macro2", 298 + "quote", 299 + "syn 2.0.105", 300 + ] 301 + 302 + [[package]] 303 + name = "dotenvy" 304 + version = "0.15.7" 305 + source = "registry+https://github.com/rust-lang/crates.io-index" 306 + checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" 307 + 308 + [[package]] 309 + name = "either" 310 + version = "1.15.0" 311 + source = "registry+https://github.com/rust-lang/crates.io-index" 312 + checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 313 + dependencies = [ 314 + "serde", 315 + ] 316 + 317 + [[package]] 318 + name = "equivalent" 319 + version = "1.0.2" 320 + source = "registry+https://github.com/rust-lang/crates.io-index" 321 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 322 + 323 + [[package]] 324 + name = "errno" 325 + version = "0.3.13" 326 + source = "registry+https://github.com/rust-lang/crates.io-index" 327 + checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" 328 + dependencies = [ 329 + "libc", 330 + "windows-sys 0.60.2", 331 + ] 332 + 333 + [[package]] 334 + name = "etcetera" 335 + version = "0.8.0" 336 + source = "registry+https://github.com/rust-lang/crates.io-index" 337 + checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" 338 + dependencies = [ 339 + "cfg-if", 340 + "home", 341 + "windows-sys 0.48.0", 342 + ] 343 + 344 + [[package]] 345 + name = "event-listener" 346 + version = "2.5.3" 347 + source = "registry+https://github.com/rust-lang/crates.io-index" 348 + checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 349 + 350 + [[package]] 351 + name = "fastrand" 352 + version = "2.3.0" 353 + source = "registry+https://github.com/rust-lang/crates.io-index" 354 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 355 + 356 + [[package]] 357 + name = "flume" 358 + version = "0.11.1" 359 + source = "registry+https://github.com/rust-lang/crates.io-index" 360 + checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" 361 + dependencies = [ 362 + "futures-core", 363 + "futures-sink", 364 + "spin", 365 + ] 366 + 367 + [[package]] 368 + name = "fnv" 369 + version = "1.0.7" 370 + source = "registry+https://github.com/rust-lang/crates.io-index" 371 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 372 + 373 + [[package]] 374 + name = "form_urlencoded" 375 + version = "1.2.1" 376 + source = "registry+https://github.com/rust-lang/crates.io-index" 377 + checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 378 + dependencies = [ 379 + "percent-encoding", 380 + ] 381 + 382 + [[package]] 383 + name = "futures-channel" 384 + version = "0.3.31" 385 + source = "registry+https://github.com/rust-lang/crates.io-index" 386 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 387 + dependencies = [ 388 + "futures-core", 389 + "futures-sink", 390 + ] 391 + 392 + [[package]] 393 + name = "futures-core" 394 + version = "0.3.31" 395 + source = "registry+https://github.com/rust-lang/crates.io-index" 396 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 397 + 398 + [[package]] 399 + name = "futures-executor" 400 + version = "0.3.31" 401 + source = "registry+https://github.com/rust-lang/crates.io-index" 402 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 403 + dependencies = [ 404 + "futures-core", 405 + "futures-task", 406 + "futures-util", 407 + ] 408 + 409 + [[package]] 410 + name = "futures-intrusive" 411 + version = "0.5.0" 412 + source = "registry+https://github.com/rust-lang/crates.io-index" 413 + checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" 414 + dependencies = [ 415 + "futures-core", 416 + "lock_api", 417 + "parking_lot", 418 + ] 419 + 420 + [[package]] 421 + name = "futures-io" 422 + version = "0.3.31" 423 + source = "registry+https://github.com/rust-lang/crates.io-index" 424 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 425 + 426 + [[package]] 427 + name = "futures-sink" 428 + version = "0.3.31" 429 + source = "registry+https://github.com/rust-lang/crates.io-index" 430 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 431 + 432 + [[package]] 433 + name = "futures-task" 434 + version = "0.3.31" 435 + source = "registry+https://github.com/rust-lang/crates.io-index" 436 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 437 + 438 + [[package]] 439 + name = "futures-util" 440 + version = "0.3.31" 441 + source = "registry+https://github.com/rust-lang/crates.io-index" 442 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 443 + dependencies = [ 444 + "futures-core", 445 + "futures-io", 446 + "futures-sink", 447 + "futures-task", 448 + "memchr", 449 + "pin-project-lite", 450 + "pin-utils", 451 + "slab", 452 + ] 453 + 454 + [[package]] 455 + name = "generic-array" 456 + version = "0.14.7" 457 + source = "registry+https://github.com/rust-lang/crates.io-index" 458 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 459 + dependencies = [ 460 + "typenum", 461 + "version_check", 462 + ] 463 + 464 + [[package]] 465 + name = "getrandom" 466 + version = "0.2.16" 467 + source = "registry+https://github.com/rust-lang/crates.io-index" 468 + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 469 + dependencies = [ 470 + "cfg-if", 471 + "libc", 472 + "wasi 0.11.1+wasi-snapshot-preview1", 473 + ] 474 + 475 + [[package]] 476 + name = "getrandom" 477 + version = "0.3.3" 478 + source = "registry+https://github.com/rust-lang/crates.io-index" 479 + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 480 + dependencies = [ 481 + "cfg-if", 482 + "libc", 483 + "r-efi", 484 + "wasi 0.14.2+wasi-0.2.4", 485 + ] 486 + 487 + [[package]] 488 + name = "gimli" 489 + version = "0.31.1" 490 + source = "registry+https://github.com/rust-lang/crates.io-index" 491 + checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 492 + 493 + [[package]] 494 + name = "hashbrown" 495 + version = "0.14.5" 496 + source = "registry+https://github.com/rust-lang/crates.io-index" 497 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 498 + dependencies = [ 499 + "ahash", 500 + "allocator-api2", 501 + ] 502 + 503 + [[package]] 504 + name = "hashbrown" 505 + version = "0.15.5" 506 + source = "registry+https://github.com/rust-lang/crates.io-index" 507 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 508 + 509 + [[package]] 510 + name = "hashlink" 511 + version = "0.8.4" 512 + source = "registry+https://github.com/rust-lang/crates.io-index" 513 + checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" 514 + dependencies = [ 515 + "hashbrown 0.14.5", 516 + ] 517 + 518 + [[package]] 519 + name = "heck" 520 + version = "0.4.1" 521 + source = "registry+https://github.com/rust-lang/crates.io-index" 522 + checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 523 + dependencies = [ 524 + "unicode-segmentation", 525 + ] 526 + 527 + [[package]] 528 + name = "hex" 529 + version = "0.4.3" 530 + source = "registry+https://github.com/rust-lang/crates.io-index" 531 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 532 + 533 + [[package]] 534 + name = "hkdf" 535 + version = "0.12.4" 536 + source = "registry+https://github.com/rust-lang/crates.io-index" 537 + checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" 538 + dependencies = [ 539 + "hmac", 540 + ] 541 + 542 + [[package]] 543 + name = "hmac" 544 + version = "0.12.1" 545 + source = "registry+https://github.com/rust-lang/crates.io-index" 546 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 547 + dependencies = [ 548 + "digest", 549 + ] 550 + 551 + [[package]] 552 + name = "home" 553 + version = "0.5.11" 554 + source = "registry+https://github.com/rust-lang/crates.io-index" 555 + checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" 556 + dependencies = [ 557 + "windows-sys 0.59.0", 558 + ] 559 + 560 + [[package]] 561 + name = "http" 562 + version = "1.3.1" 563 + source = "registry+https://github.com/rust-lang/crates.io-index" 564 + checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 565 + dependencies = [ 566 + "bytes", 567 + "fnv", 568 + "itoa", 569 + ] 570 + 571 + [[package]] 572 + name = "http-body" 573 + version = "1.0.1" 574 + source = "registry+https://github.com/rust-lang/crates.io-index" 575 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 576 + dependencies = [ 577 + "bytes", 578 + "http", 579 + ] 580 + 581 + [[package]] 582 + name = "http-body-util" 583 + version = "0.1.3" 584 + source = "registry+https://github.com/rust-lang/crates.io-index" 585 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 586 + dependencies = [ 587 + "bytes", 588 + "futures-core", 589 + "http", 590 + "http-body", 591 + "pin-project-lite", 592 + ] 593 + 594 + [[package]] 595 + name = "httparse" 596 + version = "1.10.1" 597 + source = "registry+https://github.com/rust-lang/crates.io-index" 598 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 599 + 600 + [[package]] 601 + name = "httpdate" 602 + version = "1.0.3" 603 + source = "registry+https://github.com/rust-lang/crates.io-index" 604 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 605 + 606 + [[package]] 607 + name = "hyper" 608 + version = "1.6.0" 609 + source = "registry+https://github.com/rust-lang/crates.io-index" 610 + checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 611 + dependencies = [ 612 + "bytes", 613 + "futures-channel", 614 + "futures-util", 615 + "http", 616 + "http-body", 617 + "httparse", 618 + "httpdate", 619 + "itoa", 620 + "pin-project-lite", 621 + "smallvec", 622 + "tokio", 623 + ] 624 + 625 + [[package]] 626 + name = "hyper-util" 627 + version = "0.1.16" 628 + source = "registry+https://github.com/rust-lang/crates.io-index" 629 + checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" 630 + dependencies = [ 631 + "bytes", 632 + "futures-core", 633 + "http", 634 + "http-body", 635 + "hyper", 636 + "pin-project-lite", 637 + "tokio", 638 + "tower-service", 639 + ] 640 + 641 + [[package]] 642 + name = "icu_collections" 643 + version = "2.0.0" 644 + source = "registry+https://github.com/rust-lang/crates.io-index" 645 + checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 646 + dependencies = [ 647 + "displaydoc", 648 + "potential_utf", 649 + "yoke", 650 + "zerofrom", 651 + "zerovec", 652 + ] 653 + 654 + [[package]] 655 + name = "icu_locale_core" 656 + version = "2.0.0" 657 + source = "registry+https://github.com/rust-lang/crates.io-index" 658 + checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 659 + dependencies = [ 660 + "displaydoc", 661 + "litemap", 662 + "tinystr", 663 + "writeable", 664 + "zerovec", 665 + ] 666 + 667 + [[package]] 668 + name = "icu_normalizer" 669 + version = "2.0.0" 670 + source = "registry+https://github.com/rust-lang/crates.io-index" 671 + checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 672 + dependencies = [ 673 + "displaydoc", 674 + "icu_collections", 675 + "icu_normalizer_data", 676 + "icu_properties", 677 + "icu_provider", 678 + "smallvec", 679 + "zerovec", 680 + ] 681 + 682 + [[package]] 683 + name = "icu_normalizer_data" 684 + version = "2.0.0" 685 + source = "registry+https://github.com/rust-lang/crates.io-index" 686 + checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 687 + 688 + [[package]] 689 + name = "icu_properties" 690 + version = "2.0.1" 691 + source = "registry+https://github.com/rust-lang/crates.io-index" 692 + checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 693 + dependencies = [ 694 + "displaydoc", 695 + "icu_collections", 696 + "icu_locale_core", 697 + "icu_properties_data", 698 + "icu_provider", 699 + "potential_utf", 700 + "zerotrie", 701 + "zerovec", 702 + ] 703 + 704 + [[package]] 705 + name = "icu_properties_data" 706 + version = "2.0.1" 707 + source = "registry+https://github.com/rust-lang/crates.io-index" 708 + checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 709 + 710 + [[package]] 711 + name = "icu_provider" 712 + version = "2.0.0" 713 + source = "registry+https://github.com/rust-lang/crates.io-index" 714 + checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 715 + dependencies = [ 716 + "displaydoc", 717 + "icu_locale_core", 718 + "stable_deref_trait", 719 + "tinystr", 720 + "writeable", 721 + "yoke", 722 + "zerofrom", 723 + "zerotrie", 724 + "zerovec", 725 + ] 726 + 727 + [[package]] 728 + name = "idna" 729 + version = "1.0.3" 730 + source = "registry+https://github.com/rust-lang/crates.io-index" 731 + checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 732 + dependencies = [ 733 + "idna_adapter", 734 + "smallvec", 735 + "utf8_iter", 736 + ] 737 + 738 + [[package]] 739 + name = "idna_adapter" 740 + version = "1.2.1" 741 + source = "registry+https://github.com/rust-lang/crates.io-index" 742 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 743 + dependencies = [ 744 + "icu_normalizer", 745 + "icu_properties", 746 + ] 747 + 748 + [[package]] 749 + name = "indexmap" 750 + version = "2.10.0" 751 + source = "registry+https://github.com/rust-lang/crates.io-index" 752 + checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 753 + dependencies = [ 754 + "equivalent", 755 + "hashbrown 0.15.5", 756 + ] 757 + 758 + [[package]] 759 + name = "io-uring" 760 + version = "0.7.9" 761 + source = "registry+https://github.com/rust-lang/crates.io-index" 762 + checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" 763 + dependencies = [ 764 + "bitflags", 765 + "cfg-if", 766 + "libc", 767 + ] 768 + 769 + [[package]] 770 + name = "itoa" 771 + version = "1.0.15" 772 + source = "registry+https://github.com/rust-lang/crates.io-index" 773 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 774 + 775 + [[package]] 776 + name = "lazy_static" 777 + version = "1.5.0" 778 + source = "registry+https://github.com/rust-lang/crates.io-index" 779 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 780 + dependencies = [ 781 + "spin", 782 + ] 783 + 784 + [[package]] 785 + name = "libc" 786 + version = "0.2.175" 787 + source = "registry+https://github.com/rust-lang/crates.io-index" 788 + checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 789 + 790 + [[package]] 791 + name = "libm" 792 + version = "0.2.15" 793 + source = "registry+https://github.com/rust-lang/crates.io-index" 794 + checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" 795 + 796 + [[package]] 797 + name = "libredox" 798 + version = "0.1.9" 799 + source = "registry+https://github.com/rust-lang/crates.io-index" 800 + checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" 801 + dependencies = [ 802 + "bitflags", 803 + "libc", 804 + "redox_syscall", 805 + ] 806 + 807 + [[package]] 808 + name = "libsqlite3-sys" 809 + version = "0.27.0" 810 + source = "registry+https://github.com/rust-lang/crates.io-index" 811 + checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" 812 + dependencies = [ 813 + "cc", 814 + "pkg-config", 815 + "vcpkg", 816 + ] 817 + 818 + [[package]] 819 + name = "linux-raw-sys" 820 + version = "0.9.4" 821 + source = "registry+https://github.com/rust-lang/crates.io-index" 822 + checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 823 + 824 + [[package]] 825 + name = "litemap" 826 + version = "0.8.0" 827 + source = "registry+https://github.com/rust-lang/crates.io-index" 828 + checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 829 + 830 + [[package]] 831 + name = "lock_api" 832 + version = "0.4.13" 833 + source = "registry+https://github.com/rust-lang/crates.io-index" 834 + checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 835 + dependencies = [ 836 + "autocfg", 837 + "scopeguard", 838 + ] 839 + 840 + [[package]] 841 + name = "log" 842 + version = "0.4.27" 843 + source = "registry+https://github.com/rust-lang/crates.io-index" 844 + checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 845 + 846 + [[package]] 847 + name = "matchers" 848 + version = "0.1.0" 849 + source = "registry+https://github.com/rust-lang/crates.io-index" 850 + checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 851 + dependencies = [ 852 + "regex-automata 0.1.10", 853 + ] 854 + 855 + [[package]] 856 + name = "matchit" 857 + version = "0.7.3" 858 + source = "registry+https://github.com/rust-lang/crates.io-index" 859 + checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" 860 + 861 + [[package]] 862 + name = "md-5" 863 + version = "0.10.6" 864 + source = "registry+https://github.com/rust-lang/crates.io-index" 865 + checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 866 + dependencies = [ 867 + "cfg-if", 868 + "digest", 869 + ] 870 + 871 + [[package]] 872 + name = "memchr" 873 + version = "2.7.5" 874 + source = "registry+https://github.com/rust-lang/crates.io-index" 875 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 876 + 877 + [[package]] 878 + name = "mime" 879 + version = "0.3.17" 880 + source = "registry+https://github.com/rust-lang/crates.io-index" 881 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 882 + 883 + [[package]] 884 + name = "minimal-lexical" 885 + version = "0.2.1" 886 + source = "registry+https://github.com/rust-lang/crates.io-index" 887 + checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 888 + 889 + [[package]] 890 + name = "miniz_oxide" 891 + version = "0.8.9" 892 + source = "registry+https://github.com/rust-lang/crates.io-index" 893 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 894 + dependencies = [ 895 + "adler2", 896 + ] 897 + 898 + [[package]] 899 + name = "mio" 900 + version = "1.0.4" 901 + source = "registry+https://github.com/rust-lang/crates.io-index" 902 + checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 903 + dependencies = [ 904 + "libc", 905 + "wasi 0.11.1+wasi-snapshot-preview1", 906 + "windows-sys 0.59.0", 907 + ] 908 + 909 + [[package]] 910 + name = "nom" 911 + version = "7.1.3" 912 + source = "registry+https://github.com/rust-lang/crates.io-index" 913 + checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 914 + dependencies = [ 915 + "memchr", 916 + "minimal-lexical", 917 + ] 918 + 919 + [[package]] 920 + name = "nu-ansi-term" 921 + version = "0.46.0" 922 + source = "registry+https://github.com/rust-lang/crates.io-index" 923 + checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 924 + dependencies = [ 925 + "overload", 926 + "winapi", 927 + ] 928 + 929 + [[package]] 930 + name = "num-bigint-dig" 931 + version = "0.8.4" 932 + source = "registry+https://github.com/rust-lang/crates.io-index" 933 + checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" 934 + dependencies = [ 935 + "byteorder", 936 + "lazy_static", 937 + "libm", 938 + "num-integer", 939 + "num-iter", 940 + "num-traits", 941 + "rand", 942 + "smallvec", 943 + "zeroize", 944 + ] 945 + 946 + [[package]] 947 + name = "num-integer" 948 + version = "0.1.46" 949 + source = "registry+https://github.com/rust-lang/crates.io-index" 950 + checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 951 + dependencies = [ 952 + "num-traits", 953 + ] 954 + 955 + [[package]] 956 + name = "num-iter" 957 + version = "0.1.45" 958 + source = "registry+https://github.com/rust-lang/crates.io-index" 959 + checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" 960 + dependencies = [ 961 + "autocfg", 962 + "num-integer", 963 + "num-traits", 964 + ] 965 + 966 + [[package]] 967 + name = "num-traits" 968 + version = "0.2.19" 969 + source = "registry+https://github.com/rust-lang/crates.io-index" 970 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 971 + dependencies = [ 972 + "autocfg", 973 + "libm", 974 + ] 975 + 976 + [[package]] 977 + name = "object" 978 + version = "0.36.7" 979 + source = "registry+https://github.com/rust-lang/crates.io-index" 980 + checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 981 + dependencies = [ 982 + "memchr", 983 + ] 984 + 985 + [[package]] 986 + name = "once_cell" 987 + version = "1.21.3" 988 + source = "registry+https://github.com/rust-lang/crates.io-index" 989 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 990 + 991 + [[package]] 992 + name = "overload" 993 + version = "0.1.1" 994 + source = "registry+https://github.com/rust-lang/crates.io-index" 995 + checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 996 + 997 + [[package]] 998 + name = "parking_lot" 999 + version = "0.12.4" 1000 + source = "registry+https://github.com/rust-lang/crates.io-index" 1001 + checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 1002 + dependencies = [ 1003 + "lock_api", 1004 + "parking_lot_core", 1005 + ] 1006 + 1007 + [[package]] 1008 + name = "parking_lot_core" 1009 + version = "0.9.11" 1010 + source = "registry+https://github.com/rust-lang/crates.io-index" 1011 + checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 1012 + dependencies = [ 1013 + "cfg-if", 1014 + "libc", 1015 + "redox_syscall", 1016 + "smallvec", 1017 + "windows-targets 0.52.6", 1018 + ] 1019 + 1020 + [[package]] 1021 + name = "paste" 1022 + version = "1.0.15" 1023 + source = "registry+https://github.com/rust-lang/crates.io-index" 1024 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1025 + 1026 + [[package]] 1027 + name = "pds_bells_and_whistles" 1028 + version = "0.1.0" 1029 + dependencies = [ 1030 + "axum", 1031 + "dotenvy", 1032 + "serde", 1033 + "serde_json", 1034 + "sqlx", 1035 + "tokio", 1036 + "tracing", 1037 + "tracing-subscriber", 1038 + ] 1039 + 1040 + [[package]] 1041 + name = "pem-rfc7468" 1042 + version = "0.7.0" 1043 + source = "registry+https://github.com/rust-lang/crates.io-index" 1044 + checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 1045 + dependencies = [ 1046 + "base64ct", 1047 + ] 1048 + 1049 + [[package]] 1050 + name = "percent-encoding" 1051 + version = "2.3.1" 1052 + source = "registry+https://github.com/rust-lang/crates.io-index" 1053 + checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1054 + 1055 + [[package]] 1056 + name = "pin-project-lite" 1057 + version = "0.2.16" 1058 + source = "registry+https://github.com/rust-lang/crates.io-index" 1059 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1060 + 1061 + [[package]] 1062 + name = "pin-utils" 1063 + version = "0.1.0" 1064 + source = "registry+https://github.com/rust-lang/crates.io-index" 1065 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1066 + 1067 + [[package]] 1068 + name = "pkcs1" 1069 + version = "0.7.5" 1070 + source = "registry+https://github.com/rust-lang/crates.io-index" 1071 + checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" 1072 + dependencies = [ 1073 + "der", 1074 + "pkcs8", 1075 + "spki", 1076 + ] 1077 + 1078 + [[package]] 1079 + name = "pkcs8" 1080 + version = "0.10.2" 1081 + source = "registry+https://github.com/rust-lang/crates.io-index" 1082 + checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 1083 + dependencies = [ 1084 + "der", 1085 + "spki", 1086 + ] 1087 + 1088 + [[package]] 1089 + name = "pkg-config" 1090 + version = "0.3.32" 1091 + source = "registry+https://github.com/rust-lang/crates.io-index" 1092 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1093 + 1094 + [[package]] 1095 + name = "potential_utf" 1096 + version = "0.1.2" 1097 + source = "registry+https://github.com/rust-lang/crates.io-index" 1098 + checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 1099 + dependencies = [ 1100 + "zerovec", 1101 + ] 1102 + 1103 + [[package]] 1104 + name = "ppv-lite86" 1105 + version = "0.2.21" 1106 + source = "registry+https://github.com/rust-lang/crates.io-index" 1107 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1108 + dependencies = [ 1109 + "zerocopy", 1110 + ] 1111 + 1112 + [[package]] 1113 + name = "proc-macro2" 1114 + version = "1.0.97" 1115 + source = "registry+https://github.com/rust-lang/crates.io-index" 1116 + checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" 1117 + dependencies = [ 1118 + "unicode-ident", 1119 + ] 1120 + 1121 + [[package]] 1122 + name = "quote" 1123 + version = "1.0.40" 1124 + source = "registry+https://github.com/rust-lang/crates.io-index" 1125 + checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1126 + dependencies = [ 1127 + "proc-macro2", 1128 + ] 1129 + 1130 + [[package]] 1131 + name = "r-efi" 1132 + version = "5.3.0" 1133 + source = "registry+https://github.com/rust-lang/crates.io-index" 1134 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1135 + 1136 + [[package]] 1137 + name = "rand" 1138 + version = "0.8.5" 1139 + source = "registry+https://github.com/rust-lang/crates.io-index" 1140 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1141 + dependencies = [ 1142 + "libc", 1143 + "rand_chacha", 1144 + "rand_core", 1145 + ] 1146 + 1147 + [[package]] 1148 + name = "rand_chacha" 1149 + version = "0.3.1" 1150 + source = "registry+https://github.com/rust-lang/crates.io-index" 1151 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1152 + dependencies = [ 1153 + "ppv-lite86", 1154 + "rand_core", 1155 + ] 1156 + 1157 + [[package]] 1158 + name = "rand_core" 1159 + version = "0.6.4" 1160 + source = "registry+https://github.com/rust-lang/crates.io-index" 1161 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1162 + dependencies = [ 1163 + "getrandom 0.2.16", 1164 + ] 1165 + 1166 + [[package]] 1167 + name = "redox_syscall" 1168 + version = "0.5.17" 1169 + source = "registry+https://github.com/rust-lang/crates.io-index" 1170 + checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 1171 + dependencies = [ 1172 + "bitflags", 1173 + ] 1174 + 1175 + [[package]] 1176 + name = "regex" 1177 + version = "1.11.1" 1178 + source = "registry+https://github.com/rust-lang/crates.io-index" 1179 + checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1180 + dependencies = [ 1181 + "aho-corasick", 1182 + "memchr", 1183 + "regex-automata 0.4.9", 1184 + "regex-syntax 0.8.5", 1185 + ] 1186 + 1187 + [[package]] 1188 + name = "regex-automata" 1189 + version = "0.1.10" 1190 + source = "registry+https://github.com/rust-lang/crates.io-index" 1191 + checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 1192 + dependencies = [ 1193 + "regex-syntax 0.6.29", 1194 + ] 1195 + 1196 + [[package]] 1197 + name = "regex-automata" 1198 + version = "0.4.9" 1199 + source = "registry+https://github.com/rust-lang/crates.io-index" 1200 + checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1201 + dependencies = [ 1202 + "aho-corasick", 1203 + "memchr", 1204 + "regex-syntax 0.8.5", 1205 + ] 1206 + 1207 + [[package]] 1208 + name = "regex-syntax" 1209 + version = "0.6.29" 1210 + source = "registry+https://github.com/rust-lang/crates.io-index" 1211 + checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 1212 + 1213 + [[package]] 1214 + name = "regex-syntax" 1215 + version = "0.8.5" 1216 + source = "registry+https://github.com/rust-lang/crates.io-index" 1217 + checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1218 + 1219 + [[package]] 1220 + name = "ring" 1221 + version = "0.17.14" 1222 + source = "registry+https://github.com/rust-lang/crates.io-index" 1223 + checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 1224 + dependencies = [ 1225 + "cc", 1226 + "cfg-if", 1227 + "getrandom 0.2.16", 1228 + "libc", 1229 + "untrusted", 1230 + "windows-sys 0.52.0", 1231 + ] 1232 + 1233 + [[package]] 1234 + name = "rsa" 1235 + version = "0.9.8" 1236 + source = "registry+https://github.com/rust-lang/crates.io-index" 1237 + checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" 1238 + dependencies = [ 1239 + "const-oid", 1240 + "digest", 1241 + "num-bigint-dig", 1242 + "num-integer", 1243 + "num-traits", 1244 + "pkcs1", 1245 + "pkcs8", 1246 + "rand_core", 1247 + "signature", 1248 + "spki", 1249 + "subtle", 1250 + "zeroize", 1251 + ] 1252 + 1253 + [[package]] 1254 + name = "rustc-demangle" 1255 + version = "0.1.26" 1256 + source = "registry+https://github.com/rust-lang/crates.io-index" 1257 + checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 1258 + 1259 + [[package]] 1260 + name = "rustix" 1261 + version = "1.0.8" 1262 + source = "registry+https://github.com/rust-lang/crates.io-index" 1263 + checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" 1264 + dependencies = [ 1265 + "bitflags", 1266 + "errno", 1267 + "libc", 1268 + "linux-raw-sys", 1269 + "windows-sys 0.60.2", 1270 + ] 1271 + 1272 + [[package]] 1273 + name = "rustls" 1274 + version = "0.21.12" 1275 + source = "registry+https://github.com/rust-lang/crates.io-index" 1276 + checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" 1277 + dependencies = [ 1278 + "ring", 1279 + "rustls-webpki", 1280 + "sct", 1281 + ] 1282 + 1283 + [[package]] 1284 + name = "rustls-pemfile" 1285 + version = "1.0.4" 1286 + source = "registry+https://github.com/rust-lang/crates.io-index" 1287 + checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 1288 + dependencies = [ 1289 + "base64", 1290 + ] 1291 + 1292 + [[package]] 1293 + name = "rustls-webpki" 1294 + version = "0.101.7" 1295 + source = "registry+https://github.com/rust-lang/crates.io-index" 1296 + checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" 1297 + dependencies = [ 1298 + "ring", 1299 + "untrusted", 1300 + ] 1301 + 1302 + [[package]] 1303 + name = "rustversion" 1304 + version = "1.0.22" 1305 + source = "registry+https://github.com/rust-lang/crates.io-index" 1306 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1307 + 1308 + [[package]] 1309 + name = "ryu" 1310 + version = "1.0.20" 1311 + source = "registry+https://github.com/rust-lang/crates.io-index" 1312 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1313 + 1314 + [[package]] 1315 + name = "scopeguard" 1316 + version = "1.2.0" 1317 + source = "registry+https://github.com/rust-lang/crates.io-index" 1318 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1319 + 1320 + [[package]] 1321 + name = "sct" 1322 + version = "0.7.1" 1323 + source = "registry+https://github.com/rust-lang/crates.io-index" 1324 + checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" 1325 + dependencies = [ 1326 + "ring", 1327 + "untrusted", 1328 + ] 1329 + 1330 + [[package]] 1331 + name = "serde" 1332 + version = "1.0.219" 1333 + source = "registry+https://github.com/rust-lang/crates.io-index" 1334 + checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1335 + dependencies = [ 1336 + "serde_derive", 1337 + ] 1338 + 1339 + [[package]] 1340 + name = "serde_derive" 1341 + version = "1.0.219" 1342 + source = "registry+https://github.com/rust-lang/crates.io-index" 1343 + checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1344 + dependencies = [ 1345 + "proc-macro2", 1346 + "quote", 1347 + "syn 2.0.105", 1348 + ] 1349 + 1350 + [[package]] 1351 + name = "serde_json" 1352 + version = "1.0.142" 1353 + source = "registry+https://github.com/rust-lang/crates.io-index" 1354 + checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" 1355 + dependencies = [ 1356 + "itoa", 1357 + "memchr", 1358 + "ryu", 1359 + "serde", 1360 + ] 1361 + 1362 + [[package]] 1363 + name = "serde_path_to_error" 1364 + version = "0.1.17" 1365 + source = "registry+https://github.com/rust-lang/crates.io-index" 1366 + checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" 1367 + dependencies = [ 1368 + "itoa", 1369 + "serde", 1370 + ] 1371 + 1372 + [[package]] 1373 + name = "serde_urlencoded" 1374 + version = "0.7.1" 1375 + source = "registry+https://github.com/rust-lang/crates.io-index" 1376 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1377 + dependencies = [ 1378 + "form_urlencoded", 1379 + "itoa", 1380 + "ryu", 1381 + "serde", 1382 + ] 1383 + 1384 + [[package]] 1385 + name = "sha1" 1386 + version = "0.10.6" 1387 + source = "registry+https://github.com/rust-lang/crates.io-index" 1388 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1389 + dependencies = [ 1390 + "cfg-if", 1391 + "cpufeatures", 1392 + "digest", 1393 + ] 1394 + 1395 + [[package]] 1396 + name = "sha2" 1397 + version = "0.10.9" 1398 + source = "registry+https://github.com/rust-lang/crates.io-index" 1399 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 1400 + dependencies = [ 1401 + "cfg-if", 1402 + "cpufeatures", 1403 + "digest", 1404 + ] 1405 + 1406 + [[package]] 1407 + name = "sharded-slab" 1408 + version = "0.1.7" 1409 + source = "registry+https://github.com/rust-lang/crates.io-index" 1410 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 1411 + dependencies = [ 1412 + "lazy_static", 1413 + ] 1414 + 1415 + [[package]] 1416 + name = "shlex" 1417 + version = "1.3.0" 1418 + source = "registry+https://github.com/rust-lang/crates.io-index" 1419 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1420 + 1421 + [[package]] 1422 + name = "signal-hook-registry" 1423 + version = "1.4.6" 1424 + source = "registry+https://github.com/rust-lang/crates.io-index" 1425 + checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 1426 + dependencies = [ 1427 + "libc", 1428 + ] 1429 + 1430 + [[package]] 1431 + name = "signature" 1432 + version = "2.2.0" 1433 + source = "registry+https://github.com/rust-lang/crates.io-index" 1434 + checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 1435 + dependencies = [ 1436 + "digest", 1437 + "rand_core", 1438 + ] 1439 + 1440 + [[package]] 1441 + name = "slab" 1442 + version = "0.4.11" 1443 + source = "registry+https://github.com/rust-lang/crates.io-index" 1444 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 1445 + 1446 + [[package]] 1447 + name = "smallvec" 1448 + version = "1.15.1" 1449 + source = "registry+https://github.com/rust-lang/crates.io-index" 1450 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1451 + 1452 + [[package]] 1453 + name = "socket2" 1454 + version = "0.6.0" 1455 + source = "registry+https://github.com/rust-lang/crates.io-index" 1456 + checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" 1457 + dependencies = [ 1458 + "libc", 1459 + "windows-sys 0.59.0", 1460 + ] 1461 + 1462 + [[package]] 1463 + name = "spin" 1464 + version = "0.9.8" 1465 + source = "registry+https://github.com/rust-lang/crates.io-index" 1466 + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1467 + dependencies = [ 1468 + "lock_api", 1469 + ] 1470 + 1471 + [[package]] 1472 + name = "spki" 1473 + version = "0.7.3" 1474 + source = "registry+https://github.com/rust-lang/crates.io-index" 1475 + checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 1476 + dependencies = [ 1477 + "base64ct", 1478 + "der", 1479 + ] 1480 + 1481 + [[package]] 1482 + name = "sqlformat" 1483 + version = "0.2.6" 1484 + source = "registry+https://github.com/rust-lang/crates.io-index" 1485 + checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" 1486 + dependencies = [ 1487 + "nom", 1488 + "unicode_categories", 1489 + ] 1490 + 1491 + [[package]] 1492 + name = "sqlx" 1493 + version = "0.7.4" 1494 + source = "registry+https://github.com/rust-lang/crates.io-index" 1495 + checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" 1496 + dependencies = [ 1497 + "sqlx-core", 1498 + "sqlx-macros", 1499 + "sqlx-mysql", 1500 + "sqlx-postgres", 1501 + "sqlx-sqlite", 1502 + ] 1503 + 1504 + [[package]] 1505 + name = "sqlx-core" 1506 + version = "0.7.4" 1507 + source = "registry+https://github.com/rust-lang/crates.io-index" 1508 + checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" 1509 + dependencies = [ 1510 + "ahash", 1511 + "atoi", 1512 + "byteorder", 1513 + "bytes", 1514 + "crc", 1515 + "crossbeam-queue", 1516 + "either", 1517 + "event-listener", 1518 + "futures-channel", 1519 + "futures-core", 1520 + "futures-intrusive", 1521 + "futures-io", 1522 + "futures-util", 1523 + "hashlink", 1524 + "hex", 1525 + "indexmap", 1526 + "log", 1527 + "memchr", 1528 + "once_cell", 1529 + "paste", 1530 + "percent-encoding", 1531 + "rustls", 1532 + "rustls-pemfile", 1533 + "serde", 1534 + "serde_json", 1535 + "sha2", 1536 + "smallvec", 1537 + "sqlformat", 1538 + "thiserror", 1539 + "tokio", 1540 + "tokio-stream", 1541 + "tracing", 1542 + "url", 1543 + "webpki-roots", 1544 + ] 1545 + 1546 + [[package]] 1547 + name = "sqlx-macros" 1548 + version = "0.7.4" 1549 + source = "registry+https://github.com/rust-lang/crates.io-index" 1550 + checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" 1551 + dependencies = [ 1552 + "proc-macro2", 1553 + "quote", 1554 + "sqlx-core", 1555 + "sqlx-macros-core", 1556 + "syn 1.0.109", 1557 + ] 1558 + 1559 + [[package]] 1560 + name = "sqlx-macros-core" 1561 + version = "0.7.4" 1562 + source = "registry+https://github.com/rust-lang/crates.io-index" 1563 + checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" 1564 + dependencies = [ 1565 + "dotenvy", 1566 + "either", 1567 + "heck", 1568 + "hex", 1569 + "once_cell", 1570 + "proc-macro2", 1571 + "quote", 1572 + "serde", 1573 + "serde_json", 1574 + "sha2", 1575 + "sqlx-core", 1576 + "sqlx-mysql", 1577 + "sqlx-sqlite", 1578 + "syn 1.0.109", 1579 + "tempfile", 1580 + "tokio", 1581 + "url", 1582 + ] 1583 + 1584 + [[package]] 1585 + name = "sqlx-mysql" 1586 + version = "0.7.4" 1587 + source = "registry+https://github.com/rust-lang/crates.io-index" 1588 + checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" 1589 + dependencies = [ 1590 + "atoi", 1591 + "base64", 1592 + "bitflags", 1593 + "byteorder", 1594 + "bytes", 1595 + "crc", 1596 + "digest", 1597 + "dotenvy", 1598 + "either", 1599 + "futures-channel", 1600 + "futures-core", 1601 + "futures-io", 1602 + "futures-util", 1603 + "generic-array", 1604 + "hex", 1605 + "hkdf", 1606 + "hmac", 1607 + "itoa", 1608 + "log", 1609 + "md-5", 1610 + "memchr", 1611 + "once_cell", 1612 + "percent-encoding", 1613 + "rand", 1614 + "rsa", 1615 + "serde", 1616 + "sha1", 1617 + "sha2", 1618 + "smallvec", 1619 + "sqlx-core", 1620 + "stringprep", 1621 + "thiserror", 1622 + "tracing", 1623 + "whoami", 1624 + ] 1625 + 1626 + [[package]] 1627 + name = "sqlx-postgres" 1628 + version = "0.7.4" 1629 + source = "registry+https://github.com/rust-lang/crates.io-index" 1630 + checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" 1631 + dependencies = [ 1632 + "atoi", 1633 + "base64", 1634 + "bitflags", 1635 + "byteorder", 1636 + "crc", 1637 + "dotenvy", 1638 + "etcetera", 1639 + "futures-channel", 1640 + "futures-core", 1641 + "futures-io", 1642 + "futures-util", 1643 + "hex", 1644 + "hkdf", 1645 + "hmac", 1646 + "home", 1647 + "itoa", 1648 + "log", 1649 + "md-5", 1650 + "memchr", 1651 + "once_cell", 1652 + "rand", 1653 + "serde", 1654 + "serde_json", 1655 + "sha2", 1656 + "smallvec", 1657 + "sqlx-core", 1658 + "stringprep", 1659 + "thiserror", 1660 + "tracing", 1661 + "whoami", 1662 + ] 1663 + 1664 + [[package]] 1665 + name = "sqlx-sqlite" 1666 + version = "0.7.4" 1667 + source = "registry+https://github.com/rust-lang/crates.io-index" 1668 + checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" 1669 + dependencies = [ 1670 + "atoi", 1671 + "flume", 1672 + "futures-channel", 1673 + "futures-core", 1674 + "futures-executor", 1675 + "futures-intrusive", 1676 + "futures-util", 1677 + "libsqlite3-sys", 1678 + "log", 1679 + "percent-encoding", 1680 + "serde", 1681 + "sqlx-core", 1682 + "tracing", 1683 + "url", 1684 + "urlencoding", 1685 + ] 1686 + 1687 + [[package]] 1688 + name = "stable_deref_trait" 1689 + version = "1.2.0" 1690 + source = "registry+https://github.com/rust-lang/crates.io-index" 1691 + checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1692 + 1693 + [[package]] 1694 + name = "stringprep" 1695 + version = "0.1.5" 1696 + source = "registry+https://github.com/rust-lang/crates.io-index" 1697 + checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" 1698 + dependencies = [ 1699 + "unicode-bidi", 1700 + "unicode-normalization", 1701 + "unicode-properties", 1702 + ] 1703 + 1704 + [[package]] 1705 + name = "subtle" 1706 + version = "2.6.1" 1707 + source = "registry+https://github.com/rust-lang/crates.io-index" 1708 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1709 + 1710 + [[package]] 1711 + name = "syn" 1712 + version = "1.0.109" 1713 + source = "registry+https://github.com/rust-lang/crates.io-index" 1714 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1715 + dependencies = [ 1716 + "proc-macro2", 1717 + "quote", 1718 + "unicode-ident", 1719 + ] 1720 + 1721 + [[package]] 1722 + name = "syn" 1723 + version = "2.0.105" 1724 + source = "registry+https://github.com/rust-lang/crates.io-index" 1725 + checksum = "7bc3fcb250e53458e712715cf74285c1f889686520d79294a9ef3bd7aa1fc619" 1726 + dependencies = [ 1727 + "proc-macro2", 1728 + "quote", 1729 + "unicode-ident", 1730 + ] 1731 + 1732 + [[package]] 1733 + name = "sync_wrapper" 1734 + version = "1.0.2" 1735 + source = "registry+https://github.com/rust-lang/crates.io-index" 1736 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 1737 + 1738 + [[package]] 1739 + name = "synstructure" 1740 + version = "0.13.2" 1741 + source = "registry+https://github.com/rust-lang/crates.io-index" 1742 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1743 + dependencies = [ 1744 + "proc-macro2", 1745 + "quote", 1746 + "syn 2.0.105", 1747 + ] 1748 + 1749 + [[package]] 1750 + name = "tempfile" 1751 + version = "3.20.0" 1752 + source = "registry+https://github.com/rust-lang/crates.io-index" 1753 + checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" 1754 + dependencies = [ 1755 + "fastrand", 1756 + "getrandom 0.3.3", 1757 + "once_cell", 1758 + "rustix", 1759 + "windows-sys 0.59.0", 1760 + ] 1761 + 1762 + [[package]] 1763 + name = "thiserror" 1764 + version = "1.0.69" 1765 + source = "registry+https://github.com/rust-lang/crates.io-index" 1766 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1767 + dependencies = [ 1768 + "thiserror-impl", 1769 + ] 1770 + 1771 + [[package]] 1772 + name = "thiserror-impl" 1773 + version = "1.0.69" 1774 + source = "registry+https://github.com/rust-lang/crates.io-index" 1775 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1776 + dependencies = [ 1777 + "proc-macro2", 1778 + "quote", 1779 + "syn 2.0.105", 1780 + ] 1781 + 1782 + [[package]] 1783 + name = "thread_local" 1784 + version = "1.1.9" 1785 + source = "registry+https://github.com/rust-lang/crates.io-index" 1786 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 1787 + dependencies = [ 1788 + "cfg-if", 1789 + ] 1790 + 1791 + [[package]] 1792 + name = "tinystr" 1793 + version = "0.8.1" 1794 + source = "registry+https://github.com/rust-lang/crates.io-index" 1795 + checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 1796 + dependencies = [ 1797 + "displaydoc", 1798 + "zerovec", 1799 + ] 1800 + 1801 + [[package]] 1802 + name = "tinyvec" 1803 + version = "1.9.0" 1804 + source = "registry+https://github.com/rust-lang/crates.io-index" 1805 + checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 1806 + dependencies = [ 1807 + "tinyvec_macros", 1808 + ] 1809 + 1810 + [[package]] 1811 + name = "tinyvec_macros" 1812 + version = "0.1.1" 1813 + source = "registry+https://github.com/rust-lang/crates.io-index" 1814 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1815 + 1816 + [[package]] 1817 + name = "tokio" 1818 + version = "1.47.1" 1819 + source = "registry+https://github.com/rust-lang/crates.io-index" 1820 + checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 1821 + dependencies = [ 1822 + "backtrace", 1823 + "bytes", 1824 + "io-uring", 1825 + "libc", 1826 + "mio", 1827 + "pin-project-lite", 1828 + "signal-hook-registry", 1829 + "slab", 1830 + "socket2", 1831 + "tokio-macros", 1832 + "windows-sys 0.59.0", 1833 + ] 1834 + 1835 + [[package]] 1836 + name = "tokio-macros" 1837 + version = "2.5.0" 1838 + source = "registry+https://github.com/rust-lang/crates.io-index" 1839 + checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 1840 + dependencies = [ 1841 + "proc-macro2", 1842 + "quote", 1843 + "syn 2.0.105", 1844 + ] 1845 + 1846 + [[package]] 1847 + name = "tokio-stream" 1848 + version = "0.1.17" 1849 + source = "registry+https://github.com/rust-lang/crates.io-index" 1850 + checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" 1851 + dependencies = [ 1852 + "futures-core", 1853 + "pin-project-lite", 1854 + "tokio", 1855 + ] 1856 + 1857 + [[package]] 1858 + name = "tower" 1859 + version = "0.5.2" 1860 + source = "registry+https://github.com/rust-lang/crates.io-index" 1861 + checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 1862 + dependencies = [ 1863 + "futures-core", 1864 + "futures-util", 1865 + "pin-project-lite", 1866 + "sync_wrapper", 1867 + "tokio", 1868 + "tower-layer", 1869 + "tower-service", 1870 + "tracing", 1871 + ] 1872 + 1873 + [[package]] 1874 + name = "tower-layer" 1875 + version = "0.3.3" 1876 + source = "registry+https://github.com/rust-lang/crates.io-index" 1877 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 1878 + 1879 + [[package]] 1880 + name = "tower-service" 1881 + version = "0.3.3" 1882 + source = "registry+https://github.com/rust-lang/crates.io-index" 1883 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 1884 + 1885 + [[package]] 1886 + name = "tracing" 1887 + version = "0.1.41" 1888 + source = "registry+https://github.com/rust-lang/crates.io-index" 1889 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 1890 + dependencies = [ 1891 + "log", 1892 + "pin-project-lite", 1893 + "tracing-attributes", 1894 + "tracing-core", 1895 + ] 1896 + 1897 + [[package]] 1898 + name = "tracing-attributes" 1899 + version = "0.1.30" 1900 + source = "registry+https://github.com/rust-lang/crates.io-index" 1901 + checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 1902 + dependencies = [ 1903 + "proc-macro2", 1904 + "quote", 1905 + "syn 2.0.105", 1906 + ] 1907 + 1908 + [[package]] 1909 + name = "tracing-core" 1910 + version = "0.1.34" 1911 + source = "registry+https://github.com/rust-lang/crates.io-index" 1912 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 1913 + dependencies = [ 1914 + "once_cell", 1915 + "valuable", 1916 + ] 1917 + 1918 + [[package]] 1919 + name = "tracing-log" 1920 + version = "0.2.0" 1921 + source = "registry+https://github.com/rust-lang/crates.io-index" 1922 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 1923 + dependencies = [ 1924 + "log", 1925 + "once_cell", 1926 + "tracing-core", 1927 + ] 1928 + 1929 + [[package]] 1930 + name = "tracing-subscriber" 1931 + version = "0.3.19" 1932 + source = "registry+https://github.com/rust-lang/crates.io-index" 1933 + checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 1934 + dependencies = [ 1935 + "matchers", 1936 + "nu-ansi-term", 1937 + "once_cell", 1938 + "regex", 1939 + "sharded-slab", 1940 + "smallvec", 1941 + "thread_local", 1942 + "tracing", 1943 + "tracing-core", 1944 + "tracing-log", 1945 + ] 1946 + 1947 + [[package]] 1948 + name = "typenum" 1949 + version = "1.18.0" 1950 + source = "registry+https://github.com/rust-lang/crates.io-index" 1951 + checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 1952 + 1953 + [[package]] 1954 + name = "unicode-bidi" 1955 + version = "0.3.18" 1956 + source = "registry+https://github.com/rust-lang/crates.io-index" 1957 + checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" 1958 + 1959 + [[package]] 1960 + name = "unicode-ident" 1961 + version = "1.0.18" 1962 + source = "registry+https://github.com/rust-lang/crates.io-index" 1963 + checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 1964 + 1965 + [[package]] 1966 + name = "unicode-normalization" 1967 + version = "0.1.24" 1968 + source = "registry+https://github.com/rust-lang/crates.io-index" 1969 + checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 1970 + dependencies = [ 1971 + "tinyvec", 1972 + ] 1973 + 1974 + [[package]] 1975 + name = "unicode-properties" 1976 + version = "0.1.3" 1977 + source = "registry+https://github.com/rust-lang/crates.io-index" 1978 + checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 1979 + 1980 + [[package]] 1981 + name = "unicode-segmentation" 1982 + version = "1.12.0" 1983 + source = "registry+https://github.com/rust-lang/crates.io-index" 1984 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1985 + 1986 + [[package]] 1987 + name = "unicode_categories" 1988 + version = "0.1.1" 1989 + source = "registry+https://github.com/rust-lang/crates.io-index" 1990 + checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" 1991 + 1992 + [[package]] 1993 + name = "untrusted" 1994 + version = "0.9.0" 1995 + source = "registry+https://github.com/rust-lang/crates.io-index" 1996 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1997 + 1998 + [[package]] 1999 + name = "url" 2000 + version = "2.5.4" 2001 + source = "registry+https://github.com/rust-lang/crates.io-index" 2002 + checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2003 + dependencies = [ 2004 + "form_urlencoded", 2005 + "idna", 2006 + "percent-encoding", 2007 + ] 2008 + 2009 + [[package]] 2010 + name = "urlencoding" 2011 + version = "2.1.3" 2012 + source = "registry+https://github.com/rust-lang/crates.io-index" 2013 + checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" 2014 + 2015 + [[package]] 2016 + name = "utf8_iter" 2017 + version = "1.0.4" 2018 + source = "registry+https://github.com/rust-lang/crates.io-index" 2019 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2020 + 2021 + [[package]] 2022 + name = "valuable" 2023 + version = "0.1.1" 2024 + source = "registry+https://github.com/rust-lang/crates.io-index" 2025 + checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 2026 + 2027 + [[package]] 2028 + name = "vcpkg" 2029 + version = "0.2.15" 2030 + source = "registry+https://github.com/rust-lang/crates.io-index" 2031 + checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2032 + 2033 + [[package]] 2034 + name = "version_check" 2035 + version = "0.9.5" 2036 + source = "registry+https://github.com/rust-lang/crates.io-index" 2037 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2038 + 2039 + [[package]] 2040 + name = "wasi" 2041 + version = "0.11.1+wasi-snapshot-preview1" 2042 + source = "registry+https://github.com/rust-lang/crates.io-index" 2043 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 2044 + 2045 + [[package]] 2046 + name = "wasi" 2047 + version = "0.14.2+wasi-0.2.4" 2048 + source = "registry+https://github.com/rust-lang/crates.io-index" 2049 + checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2050 + dependencies = [ 2051 + "wit-bindgen-rt", 2052 + ] 2053 + 2054 + [[package]] 2055 + name = "wasite" 2056 + version = "0.1.0" 2057 + source = "registry+https://github.com/rust-lang/crates.io-index" 2058 + checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" 2059 + 2060 + [[package]] 2061 + name = "webpki-roots" 2062 + version = "0.25.4" 2063 + source = "registry+https://github.com/rust-lang/crates.io-index" 2064 + checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" 2065 + 2066 + [[package]] 2067 + name = "whoami" 2068 + version = "1.6.1" 2069 + source = "registry+https://github.com/rust-lang/crates.io-index" 2070 + checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" 2071 + dependencies = [ 2072 + "libredox", 2073 + "wasite", 2074 + ] 2075 + 2076 + [[package]] 2077 + name = "winapi" 2078 + version = "0.3.9" 2079 + source = "registry+https://github.com/rust-lang/crates.io-index" 2080 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2081 + dependencies = [ 2082 + "winapi-i686-pc-windows-gnu", 2083 + "winapi-x86_64-pc-windows-gnu", 2084 + ] 2085 + 2086 + [[package]] 2087 + name = "winapi-i686-pc-windows-gnu" 2088 + version = "0.4.0" 2089 + source = "registry+https://github.com/rust-lang/crates.io-index" 2090 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2091 + 2092 + [[package]] 2093 + name = "winapi-x86_64-pc-windows-gnu" 2094 + version = "0.4.0" 2095 + source = "registry+https://github.com/rust-lang/crates.io-index" 2096 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2097 + 2098 + [[package]] 2099 + name = "windows-link" 2100 + version = "0.1.3" 2101 + source = "registry+https://github.com/rust-lang/crates.io-index" 2102 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 2103 + 2104 + [[package]] 2105 + name = "windows-sys" 2106 + version = "0.48.0" 2107 + source = "registry+https://github.com/rust-lang/crates.io-index" 2108 + checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 2109 + dependencies = [ 2110 + "windows-targets 0.48.5", 2111 + ] 2112 + 2113 + [[package]] 2114 + name = "windows-sys" 2115 + version = "0.52.0" 2116 + source = "registry+https://github.com/rust-lang/crates.io-index" 2117 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2118 + dependencies = [ 2119 + "windows-targets 0.52.6", 2120 + ] 2121 + 2122 + [[package]] 2123 + name = "windows-sys" 2124 + version = "0.59.0" 2125 + source = "registry+https://github.com/rust-lang/crates.io-index" 2126 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2127 + dependencies = [ 2128 + "windows-targets 0.52.6", 2129 + ] 2130 + 2131 + [[package]] 2132 + name = "windows-sys" 2133 + version = "0.60.2" 2134 + source = "registry+https://github.com/rust-lang/crates.io-index" 2135 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 2136 + dependencies = [ 2137 + "windows-targets 0.53.3", 2138 + ] 2139 + 2140 + [[package]] 2141 + name = "windows-targets" 2142 + version = "0.48.5" 2143 + source = "registry+https://github.com/rust-lang/crates.io-index" 2144 + checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 2145 + dependencies = [ 2146 + "windows_aarch64_gnullvm 0.48.5", 2147 + "windows_aarch64_msvc 0.48.5", 2148 + "windows_i686_gnu 0.48.5", 2149 + "windows_i686_msvc 0.48.5", 2150 + "windows_x86_64_gnu 0.48.5", 2151 + "windows_x86_64_gnullvm 0.48.5", 2152 + "windows_x86_64_msvc 0.48.5", 2153 + ] 2154 + 2155 + [[package]] 2156 + name = "windows-targets" 2157 + version = "0.52.6" 2158 + source = "registry+https://github.com/rust-lang/crates.io-index" 2159 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2160 + dependencies = [ 2161 + "windows_aarch64_gnullvm 0.52.6", 2162 + "windows_aarch64_msvc 0.52.6", 2163 + "windows_i686_gnu 0.52.6", 2164 + "windows_i686_gnullvm 0.52.6", 2165 + "windows_i686_msvc 0.52.6", 2166 + "windows_x86_64_gnu 0.52.6", 2167 + "windows_x86_64_gnullvm 0.52.6", 2168 + "windows_x86_64_msvc 0.52.6", 2169 + ] 2170 + 2171 + [[package]] 2172 + name = "windows-targets" 2173 + version = "0.53.3" 2174 + source = "registry+https://github.com/rust-lang/crates.io-index" 2175 + checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" 2176 + dependencies = [ 2177 + "windows-link", 2178 + "windows_aarch64_gnullvm 0.53.0", 2179 + "windows_aarch64_msvc 0.53.0", 2180 + "windows_i686_gnu 0.53.0", 2181 + "windows_i686_gnullvm 0.53.0", 2182 + "windows_i686_msvc 0.53.0", 2183 + "windows_x86_64_gnu 0.53.0", 2184 + "windows_x86_64_gnullvm 0.53.0", 2185 + "windows_x86_64_msvc 0.53.0", 2186 + ] 2187 + 2188 + [[package]] 2189 + name = "windows_aarch64_gnullvm" 2190 + version = "0.48.5" 2191 + source = "registry+https://github.com/rust-lang/crates.io-index" 2192 + checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 2193 + 2194 + [[package]] 2195 + name = "windows_aarch64_gnullvm" 2196 + version = "0.52.6" 2197 + source = "registry+https://github.com/rust-lang/crates.io-index" 2198 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2199 + 2200 + [[package]] 2201 + name = "windows_aarch64_gnullvm" 2202 + version = "0.53.0" 2203 + source = "registry+https://github.com/rust-lang/crates.io-index" 2204 + checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 2205 + 2206 + [[package]] 2207 + name = "windows_aarch64_msvc" 2208 + version = "0.48.5" 2209 + source = "registry+https://github.com/rust-lang/crates.io-index" 2210 + checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 2211 + 2212 + [[package]] 2213 + name = "windows_aarch64_msvc" 2214 + version = "0.52.6" 2215 + source = "registry+https://github.com/rust-lang/crates.io-index" 2216 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2217 + 2218 + [[package]] 2219 + name = "windows_aarch64_msvc" 2220 + version = "0.53.0" 2221 + source = "registry+https://github.com/rust-lang/crates.io-index" 2222 + checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 2223 + 2224 + [[package]] 2225 + name = "windows_i686_gnu" 2226 + version = "0.48.5" 2227 + source = "registry+https://github.com/rust-lang/crates.io-index" 2228 + checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2229 + 2230 + [[package]] 2231 + name = "windows_i686_gnu" 2232 + version = "0.52.6" 2233 + source = "registry+https://github.com/rust-lang/crates.io-index" 2234 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2235 + 2236 + [[package]] 2237 + name = "windows_i686_gnu" 2238 + version = "0.53.0" 2239 + source = "registry+https://github.com/rust-lang/crates.io-index" 2240 + checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 2241 + 2242 + [[package]] 2243 + name = "windows_i686_gnullvm" 2244 + version = "0.52.6" 2245 + source = "registry+https://github.com/rust-lang/crates.io-index" 2246 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2247 + 2248 + [[package]] 2249 + name = "windows_i686_gnullvm" 2250 + version = "0.53.0" 2251 + source = "registry+https://github.com/rust-lang/crates.io-index" 2252 + checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 2253 + 2254 + [[package]] 2255 + name = "windows_i686_msvc" 2256 + version = "0.48.5" 2257 + source = "registry+https://github.com/rust-lang/crates.io-index" 2258 + checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2259 + 2260 + [[package]] 2261 + name = "windows_i686_msvc" 2262 + version = "0.52.6" 2263 + source = "registry+https://github.com/rust-lang/crates.io-index" 2264 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2265 + 2266 + [[package]] 2267 + name = "windows_i686_msvc" 2268 + version = "0.53.0" 2269 + source = "registry+https://github.com/rust-lang/crates.io-index" 2270 + checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 2271 + 2272 + [[package]] 2273 + name = "windows_x86_64_gnu" 2274 + version = "0.48.5" 2275 + source = "registry+https://github.com/rust-lang/crates.io-index" 2276 + checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2277 + 2278 + [[package]] 2279 + name = "windows_x86_64_gnu" 2280 + version = "0.52.6" 2281 + source = "registry+https://github.com/rust-lang/crates.io-index" 2282 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2283 + 2284 + [[package]] 2285 + name = "windows_x86_64_gnu" 2286 + version = "0.53.0" 2287 + source = "registry+https://github.com/rust-lang/crates.io-index" 2288 + checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 2289 + 2290 + [[package]] 2291 + name = "windows_x86_64_gnullvm" 2292 + version = "0.48.5" 2293 + source = "registry+https://github.com/rust-lang/crates.io-index" 2294 + checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2295 + 2296 + [[package]] 2297 + name = "windows_x86_64_gnullvm" 2298 + version = "0.52.6" 2299 + source = "registry+https://github.com/rust-lang/crates.io-index" 2300 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2301 + 2302 + [[package]] 2303 + name = "windows_x86_64_gnullvm" 2304 + version = "0.53.0" 2305 + source = "registry+https://github.com/rust-lang/crates.io-index" 2306 + checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 2307 + 2308 + [[package]] 2309 + name = "windows_x86_64_msvc" 2310 + version = "0.48.5" 2311 + source = "registry+https://github.com/rust-lang/crates.io-index" 2312 + checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2313 + 2314 + [[package]] 2315 + name = "windows_x86_64_msvc" 2316 + version = "0.52.6" 2317 + source = "registry+https://github.com/rust-lang/crates.io-index" 2318 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2319 + 2320 + [[package]] 2321 + name = "windows_x86_64_msvc" 2322 + version = "0.53.0" 2323 + source = "registry+https://github.com/rust-lang/crates.io-index" 2324 + checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 2325 + 2326 + [[package]] 2327 + name = "wit-bindgen-rt" 2328 + version = "0.39.0" 2329 + source = "registry+https://github.com/rust-lang/crates.io-index" 2330 + checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 2331 + dependencies = [ 2332 + "bitflags", 2333 + ] 2334 + 2335 + [[package]] 2336 + name = "writeable" 2337 + version = "0.6.1" 2338 + source = "registry+https://github.com/rust-lang/crates.io-index" 2339 + checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 2340 + 2341 + [[package]] 2342 + name = "yoke" 2343 + version = "0.8.0" 2344 + source = "registry+https://github.com/rust-lang/crates.io-index" 2345 + checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 2346 + dependencies = [ 2347 + "serde", 2348 + "stable_deref_trait", 2349 + "yoke-derive", 2350 + "zerofrom", 2351 + ] 2352 + 2353 + [[package]] 2354 + name = "yoke-derive" 2355 + version = "0.8.0" 2356 + source = "registry+https://github.com/rust-lang/crates.io-index" 2357 + checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 2358 + dependencies = [ 2359 + "proc-macro2", 2360 + "quote", 2361 + "syn 2.0.105", 2362 + "synstructure", 2363 + ] 2364 + 2365 + [[package]] 2366 + name = "zerocopy" 2367 + version = "0.8.26" 2368 + source = "registry+https://github.com/rust-lang/crates.io-index" 2369 + checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 2370 + dependencies = [ 2371 + "zerocopy-derive", 2372 + ] 2373 + 2374 + [[package]] 2375 + name = "zerocopy-derive" 2376 + version = "0.8.26" 2377 + source = "registry+https://github.com/rust-lang/crates.io-index" 2378 + checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 2379 + dependencies = [ 2380 + "proc-macro2", 2381 + "quote", 2382 + "syn 2.0.105", 2383 + ] 2384 + 2385 + [[package]] 2386 + name = "zerofrom" 2387 + version = "0.1.6" 2388 + source = "registry+https://github.com/rust-lang/crates.io-index" 2389 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 2390 + dependencies = [ 2391 + "zerofrom-derive", 2392 + ] 2393 + 2394 + [[package]] 2395 + name = "zerofrom-derive" 2396 + version = "0.1.6" 2397 + source = "registry+https://github.com/rust-lang/crates.io-index" 2398 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 2399 + dependencies = [ 2400 + "proc-macro2", 2401 + "quote", 2402 + "syn 2.0.105", 2403 + "synstructure", 2404 + ] 2405 + 2406 + [[package]] 2407 + name = "zeroize" 2408 + version = "1.8.1" 2409 + source = "registry+https://github.com/rust-lang/crates.io-index" 2410 + checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 2411 + 2412 + [[package]] 2413 + name = "zerotrie" 2414 + version = "0.2.2" 2415 + source = "registry+https://github.com/rust-lang/crates.io-index" 2416 + checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 2417 + dependencies = [ 2418 + "displaydoc", 2419 + "yoke", 2420 + "zerofrom", 2421 + ] 2422 + 2423 + [[package]] 2424 + name = "zerovec" 2425 + version = "0.11.4" 2426 + source = "registry+https://github.com/rust-lang/crates.io-index" 2427 + checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 2428 + dependencies = [ 2429 + "yoke", 2430 + "zerofrom", 2431 + "zerovec-derive", 2432 + ] 2433 + 2434 + [[package]] 2435 + name = "zerovec-derive" 2436 + version = "0.11.1" 2437 + source = "registry+https://github.com/rust-lang/crates.io-index" 2438 + checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 2439 + dependencies = [ 2440 + "proc-macro2", 2441 + "quote", 2442 + "syn 2.0.105", 2443 + ]
+14
Cargo.toml
··· 1 + [package] 2 + name = "pds_bells_and_whistles" 3 + version = "0.1.0" 4 + edition = "2024" 5 + 6 + [dependencies] 7 + axum = { version = "0.7", features = ["macros", "json"] } 8 + tokio = { version = "1.39", features = ["rt-multi-thread", "macros", "signal"] } 9 + sqlx = { version = "0.7", features = ["runtime-tokio-rustls", "sqlite"] } 10 + dotenvy = "0.15.7" 11 + serde = { version = "1.0", features = ["derive"] } 12 + serde_json = "1.0" 13 + tracing = "0.1" 14 + tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
+117
src/main.rs
··· 1 + use std::{env, net::SocketAddr}; 2 + use axum::{extract::State, routing::get, Json, Router}; 3 + // use dotenvy::dotenv; 4 + use serde::Serialize; 5 + use sqlx::{sqlite::SqlitePoolOptions, SqlitePool}; 6 + use tracing::{error, info, log}; 7 + use tracing_subscriber::{fmt, prelude::*, EnvFilter}; 8 + 9 + mod xrpc; 10 + 11 + #[derive(Clone)] 12 + struct AppState { 13 + pool: SqlitePool, 14 + } 15 + 16 + #[derive(Serialize)] 17 + struct HealthResponse { 18 + status: &'static str, 19 + } 20 + 21 + #[derive(Serialize)] 22 + struct DbPingResponse { 23 + db: &'static str, 24 + value: i64, 25 + } 26 + 27 + #[tokio::main] 28 + async fn main() -> Result<(), Box<dyn std::error::Error>> { 29 + setup_tracing(); 30 + //TODO prod 31 + // dotenvy::from_path(Path::new("/pds.env"))?; 32 + // let pds_root = env::var("PDS_DATA_DIRECTORY")?; 33 + let pds_root = "/home/baileytownsend/Documents/code/docker_compose/pds/pds_data"; 34 + let account_db_url = format!("{}/account.sqlite", pds_root); 35 + log::info!("accounts_db_url: {}", account_db_url); 36 + let max_connections: u32 = env::var("DATABASE_MAX_CONNECTIONS") 37 + .ok() 38 + .and_then(|s| s.parse().ok()) 39 + .unwrap_or(5); 40 + 41 + //TODO may need to add journal_mode=WAL ? 42 + let pool = SqlitePoolOptions::new() 43 + .max_connections(max_connections) 44 + .connect(&account_db_url) 45 + .await?; 46 + 47 + let state = AppState { pool }; 48 + 49 + let app = Router::new() 50 + .route("/health", get(health)) 51 + .route("/db/ping", get(db_ping)) 52 + .with_state(state); 53 + 54 + let host = env::var("HOST").unwrap_or_else(|_| "127.0.0.1".to_string()); 55 + let port: u16 = env::var("PORT").ok().and_then(|s| s.parse().ok()).unwrap_or(8080); 56 + let addr: SocketAddr = format!("{host}:{port}").parse().expect("valid socket address"); 57 + 58 + info!(%addr, %account_db_url, "starting server"); 59 + 60 + let listener = tokio::net::TcpListener::bind(addr).await?; 61 + 62 + let server = axum::serve(listener, app).with_graceful_shutdown(shutdown_signal()); 63 + 64 + if let Err(err) = server.await { 65 + error!(error = %err, "server error"); 66 + } 67 + 68 + Ok(()) 69 + } 70 + 71 + async fn health() -> Json<HealthResponse> { 72 + Json(HealthResponse { status: "ok" }) 73 + } 74 + 75 + async fn db_ping(State(state): State<AppState>) -> Result<Json<DbPingResponse>, axum::http::StatusCode> { 76 + // Run a DB-agnostic ping that doesn't depend on user tables. 77 + // In SQLite, SELECT 1 returns a single row with value 1. 78 + let v: i64 = sqlx::query_scalar("SELECT 1") 79 + .fetch_one(&state.pool) 80 + .await 81 + .map_err(|_| axum::http::StatusCode::SERVICE_UNAVAILABLE)?; 82 + 83 + Ok(Json(DbPingResponse { db: "ok", value: v })) 84 + } 85 + 86 + fn setup_tracing() { 87 + let env_filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")); 88 + tracing_subscriber::registry() 89 + .with(env_filter) 90 + .with(fmt::layer()) 91 + .init(); 92 + } 93 + 94 + async fn shutdown_signal() { 95 + // Wait for Ctrl+C 96 + let ctrl_c = async { 97 + tokio::signal::ctrl_c() 98 + .await 99 + .expect("failed to install Ctrl+C handler"); 100 + }; 101 + 102 + #[cfg(unix)] 103 + let terminate = async { 104 + use tokio::signal::unix::{signal, SignalKind}; 105 + 106 + let mut sigterm = signal(SignalKind::terminate()).expect("failed to install signal handler"); 107 + sigterm.recv().await; 108 + }; 109 + 110 + #[cfg(not(unix))] 111 + let terminate = std::future::pending::<()>(); 112 + 113 + tokio::select! { 114 + _ = ctrl_c => {}, 115 + _ = terminate => {}, 116 + } 117 + }
+26
src/xrpc/com_atproto_server.rs
··· 1 + use axum::extract::State; 2 + use axum::{extract, Json}; 3 + use serde::Deserialize; 4 + use crate::{AppState, DbPingResponse}; 5 + 6 + 7 + #[derive(Deserialize)] 8 + struct CreateSessionRequest { 9 + identifier: String, 10 + password: String, 11 + #[serde(rename = "authFactorToken")] 12 + auth_factor_token: String, 13 + #[serde(rename = "allowTakendown")] 14 + allow_takendown: bool, 15 + } 16 + 17 + async fn create_session(State(state): State<AppState>, extract::Json(payload): extract::Json<CreateSessionRequest>) -> Result<Json<DbPingResponse>, axum::http::StatusCode> { 18 + // Run a DB-agnostic ping that doesn't depend on user tables. 19 + // In SQLite, SELECT 1 returns a single row with value 1. 20 + let v: i64 = sqlx::query_scalar("SELECT 1") 21 + .fetch_one(&state.pool) 22 + .await 23 + .map_err(|_| axum::http::StatusCode::SERVICE_UNAVAILABLE)?; 24 + 25 + Ok(Json(DbPingResponse { db: "ok", value: v })) 26 + }
+1
src/xrpc/mod.rs
··· 1 + mod com_atproto_server;