tracks lexicons and how many times they appeared on the jetstream

feat: implement rust server

ptr.pet ff9bc917 fb7bb04c

verified
+3761
+2
server/.gitignore
··· 1 + target 2 + .fjall_data
+3482
server/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 = "aho-corasick" 22 + version = "1.1.3" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 25 + dependencies = [ 26 + "memchr", 27 + ] 28 + 29 + [[package]] 30 + name = "allocator-api2" 31 + version = "0.2.21" 32 + source = "registry+https://github.com/rust-lang/crates.io-index" 33 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 34 + 35 + [[package]] 36 + name = "anyhow" 37 + version = "1.0.98" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" 40 + 41 + [[package]] 42 + name = "async-trait" 43 + version = "0.1.88" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" 46 + dependencies = [ 47 + "proc-macro2", 48 + "quote", 49 + "syn", 50 + ] 51 + 52 + [[package]] 53 + name = "atomic-waker" 54 + version = "1.1.2" 55 + source = "registry+https://github.com/rust-lang/crates.io-index" 56 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 57 + 58 + [[package]] 59 + name = "atproto-identity" 60 + version = "0.9.7" 61 + source = "registry+https://github.com/rust-lang/crates.io-index" 62 + checksum = "85d7eea5300f8d380d7bf8e016644499cf3203cf7e22a1d414c2c8e8340aa5d8" 63 + dependencies = [ 64 + "anyhow", 65 + "async-trait", 66 + "axum", 67 + "ecdsa", 68 + "elliptic-curve", 69 + "hickory-resolver", 70 + "http", 71 + "k256", 72 + "lru", 73 + "multibase", 74 + "p256", 75 + "p384", 76 + "rand 0.8.5", 77 + "reqwest", 78 + "serde", 79 + "serde_ipld_dagcbor", 80 + "serde_json", 81 + "thiserror 2.0.12", 82 + "tokio", 83 + "tracing", 84 + ] 85 + 86 + [[package]] 87 + name = "atproto-jetstream" 88 + version = "0.9.7" 89 + source = "registry+https://github.com/rust-lang/crates.io-index" 90 + checksum = "975a29eae86db5aa3acc768079c158437207df18bc1352f6aa848a9821895b10" 91 + dependencies = [ 92 + "anyhow", 93 + "async-trait", 94 + "atproto-identity", 95 + "futures", 96 + "http", 97 + "serde", 98 + "serde_json", 99 + "thiserror 2.0.12", 100 + "tokio", 101 + "tokio-util", 102 + "tokio-websockets", 103 + "tracing", 104 + "tracing-subscriber", 105 + "urlencoding", 106 + "zstd", 107 + ] 108 + 109 + [[package]] 110 + name = "autocfg" 111 + version = "1.5.0" 112 + source = "registry+https://github.com/rust-lang/crates.io-index" 113 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 114 + 115 + [[package]] 116 + name = "axum" 117 + version = "0.8.4" 118 + source = "registry+https://github.com/rust-lang/crates.io-index" 119 + checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" 120 + dependencies = [ 121 + "axum-core", 122 + "axum-macros", 123 + "bytes", 124 + "form_urlencoded", 125 + "futures-util", 126 + "http", 127 + "http-body", 128 + "http-body-util", 129 + "hyper", 130 + "hyper-util", 131 + "itoa", 132 + "matchit", 133 + "memchr", 134 + "mime", 135 + "percent-encoding", 136 + "pin-project-lite", 137 + "rustversion", 138 + "serde", 139 + "serde_json", 140 + "serde_path_to_error", 141 + "serde_urlencoded", 142 + "sync_wrapper", 143 + "tokio", 144 + "tower", 145 + "tower-layer", 146 + "tower-service", 147 + "tracing", 148 + ] 149 + 150 + [[package]] 151 + name = "axum-core" 152 + version = "0.5.2" 153 + source = "registry+https://github.com/rust-lang/crates.io-index" 154 + checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" 155 + dependencies = [ 156 + "bytes", 157 + "futures-core", 158 + "http", 159 + "http-body", 160 + "http-body-util", 161 + "mime", 162 + "pin-project-lite", 163 + "rustversion", 164 + "sync_wrapper", 165 + "tower-layer", 166 + "tower-service", 167 + "tracing", 168 + ] 169 + 170 + [[package]] 171 + name = "axum-macros" 172 + version = "0.5.0" 173 + source = "registry+https://github.com/rust-lang/crates.io-index" 174 + checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" 175 + dependencies = [ 176 + "proc-macro2", 177 + "quote", 178 + "syn", 179 + ] 180 + 181 + [[package]] 182 + name = "backtrace" 183 + version = "0.3.75" 184 + source = "registry+https://github.com/rust-lang/crates.io-index" 185 + checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 186 + dependencies = [ 187 + "addr2line", 188 + "cfg-if", 189 + "libc", 190 + "miniz_oxide", 191 + "object", 192 + "rustc-demangle", 193 + "windows-targets 0.52.6", 194 + ] 195 + 196 + [[package]] 197 + name = "base-x" 198 + version = "0.2.11" 199 + source = "registry+https://github.com/rust-lang/crates.io-index" 200 + checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" 201 + 202 + [[package]] 203 + name = "base16ct" 204 + version = "0.2.0" 205 + source = "registry+https://github.com/rust-lang/crates.io-index" 206 + checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 207 + 208 + [[package]] 209 + name = "base64" 210 + version = "0.22.1" 211 + source = "registry+https://github.com/rust-lang/crates.io-index" 212 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 213 + 214 + [[package]] 215 + name = "base64ct" 216 + version = "1.8.0" 217 + source = "registry+https://github.com/rust-lang/crates.io-index" 218 + checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" 219 + 220 + [[package]] 221 + name = "bitflags" 222 + version = "2.9.1" 223 + source = "registry+https://github.com/rust-lang/crates.io-index" 224 + checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 225 + 226 + [[package]] 227 + name = "block-buffer" 228 + version = "0.10.4" 229 + source = "registry+https://github.com/rust-lang/crates.io-index" 230 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 231 + dependencies = [ 232 + "generic-array", 233 + ] 234 + 235 + [[package]] 236 + name = "borsh" 237 + version = "1.5.7" 238 + source = "registry+https://github.com/rust-lang/crates.io-index" 239 + checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" 240 + dependencies = [ 241 + "cfg_aliases", 242 + ] 243 + 244 + [[package]] 245 + name = "bumpalo" 246 + version = "3.19.0" 247 + source = "registry+https://github.com/rust-lang/crates.io-index" 248 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 249 + 250 + [[package]] 251 + name = "bytecheck" 252 + version = "0.8.1" 253 + source = "registry+https://github.com/rust-lang/crates.io-index" 254 + checksum = "50690fb3370fb9fe3550372746084c46f2ac8c9685c583d2be10eefd89d3d1a3" 255 + dependencies = [ 256 + "bytecheck_derive", 257 + "ptr_meta", 258 + "rancor", 259 + "simdutf8", 260 + ] 261 + 262 + [[package]] 263 + name = "bytecheck_derive" 264 + version = "0.8.1" 265 + source = "registry+https://github.com/rust-lang/crates.io-index" 266 + checksum = "efb7846e0cb180355c2dec69e721edafa36919850f1a9f52ffba4ebc0393cb71" 267 + dependencies = [ 268 + "proc-macro2", 269 + "quote", 270 + "syn", 271 + ] 272 + 273 + [[package]] 274 + name = "byteorder" 275 + version = "1.5.0" 276 + source = "registry+https://github.com/rust-lang/crates.io-index" 277 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 278 + 279 + [[package]] 280 + name = "bytes" 281 + version = "1.10.1" 282 + source = "registry+https://github.com/rust-lang/crates.io-index" 283 + checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 284 + 285 + [[package]] 286 + name = "byteview" 287 + version = "0.6.1" 288 + source = "registry+https://github.com/rust-lang/crates.io-index" 289 + checksum = "6236364b88b9b6d0bc181ba374cf1ab55ba3ef97a1cb6f8cddad48a273767fb5" 290 + 291 + [[package]] 292 + name = "cbor4ii" 293 + version = "0.2.14" 294 + source = "registry+https://github.com/rust-lang/crates.io-index" 295 + checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4" 296 + dependencies = [ 297 + "serde", 298 + ] 299 + 300 + [[package]] 301 + name = "cc" 302 + version = "1.2.30" 303 + source = "registry+https://github.com/rust-lang/crates.io-index" 304 + checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" 305 + dependencies = [ 306 + "jobserver", 307 + "libc", 308 + "shlex", 309 + ] 310 + 311 + [[package]] 312 + name = "cfg-if" 313 + version = "1.0.1" 314 + source = "registry+https://github.com/rust-lang/crates.io-index" 315 + checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 316 + 317 + [[package]] 318 + name = "cfg_aliases" 319 + version = "0.2.1" 320 + source = "registry+https://github.com/rust-lang/crates.io-index" 321 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 322 + 323 + [[package]] 324 + name = "cid" 325 + version = "0.11.1" 326 + source = "registry+https://github.com/rust-lang/crates.io-index" 327 + checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" 328 + dependencies = [ 329 + "core2", 330 + "multibase", 331 + "multihash", 332 + "serde", 333 + "serde_bytes", 334 + "unsigned-varint", 335 + ] 336 + 337 + [[package]] 338 + name = "compare" 339 + version = "0.0.6" 340 + source = "registry+https://github.com/rust-lang/crates.io-index" 341 + checksum = "ea0095f6103c2a8b44acd6fd15960c801dafebf02e21940360833e0673f48ba7" 342 + 343 + [[package]] 344 + name = "const-oid" 345 + version = "0.9.6" 346 + source = "registry+https://github.com/rust-lang/crates.io-index" 347 + checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 348 + 349 + [[package]] 350 + name = "core-foundation" 351 + version = "0.9.4" 352 + source = "registry+https://github.com/rust-lang/crates.io-index" 353 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 354 + dependencies = [ 355 + "core-foundation-sys", 356 + "libc", 357 + ] 358 + 359 + [[package]] 360 + name = "core-foundation" 361 + version = "0.10.1" 362 + source = "registry+https://github.com/rust-lang/crates.io-index" 363 + checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 364 + dependencies = [ 365 + "core-foundation-sys", 366 + "libc", 367 + ] 368 + 369 + [[package]] 370 + name = "core-foundation-sys" 371 + version = "0.8.7" 372 + source = "registry+https://github.com/rust-lang/crates.io-index" 373 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 374 + 375 + [[package]] 376 + name = "core2" 377 + version = "0.4.0" 378 + source = "registry+https://github.com/rust-lang/crates.io-index" 379 + checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" 380 + dependencies = [ 381 + "memchr", 382 + ] 383 + 384 + [[package]] 385 + name = "cpufeatures" 386 + version = "0.2.17" 387 + source = "registry+https://github.com/rust-lang/crates.io-index" 388 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 389 + dependencies = [ 390 + "libc", 391 + ] 392 + 393 + [[package]] 394 + name = "critical-section" 395 + version = "1.2.0" 396 + source = "registry+https://github.com/rust-lang/crates.io-index" 397 + checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 398 + 399 + [[package]] 400 + name = "crossbeam-channel" 401 + version = "0.5.15" 402 + source = "registry+https://github.com/rust-lang/crates.io-index" 403 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 404 + dependencies = [ 405 + "crossbeam-utils", 406 + ] 407 + 408 + [[package]] 409 + name = "crossbeam-epoch" 410 + version = "0.9.18" 411 + source = "registry+https://github.com/rust-lang/crates.io-index" 412 + checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 413 + dependencies = [ 414 + "crossbeam-utils", 415 + ] 416 + 417 + [[package]] 418 + name = "crossbeam-skiplist" 419 + version = "0.1.3" 420 + source = "registry+https://github.com/rust-lang/crates.io-index" 421 + checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b" 422 + dependencies = [ 423 + "crossbeam-epoch", 424 + "crossbeam-utils", 425 + ] 426 + 427 + [[package]] 428 + name = "crossbeam-utils" 429 + version = "0.8.21" 430 + source = "registry+https://github.com/rust-lang/crates.io-index" 431 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 432 + 433 + [[package]] 434 + name = "crypto-bigint" 435 + version = "0.5.5" 436 + source = "registry+https://github.com/rust-lang/crates.io-index" 437 + checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" 438 + dependencies = [ 439 + "generic-array", 440 + "rand_core 0.6.4", 441 + "subtle", 442 + "zeroize", 443 + ] 444 + 445 + [[package]] 446 + name = "crypto-common" 447 + version = "0.1.6" 448 + source = "registry+https://github.com/rust-lang/crates.io-index" 449 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 450 + dependencies = [ 451 + "generic-array", 452 + "typenum", 453 + ] 454 + 455 + [[package]] 456 + name = "dashmap" 457 + version = "6.1.0" 458 + source = "registry+https://github.com/rust-lang/crates.io-index" 459 + checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 460 + dependencies = [ 461 + "cfg-if", 462 + "crossbeam-utils", 463 + "hashbrown 0.14.5", 464 + "lock_api", 465 + "once_cell", 466 + "parking_lot_core", 467 + ] 468 + 469 + [[package]] 470 + name = "data-encoding" 471 + version = "2.9.0" 472 + source = "registry+https://github.com/rust-lang/crates.io-index" 473 + checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 474 + 475 + [[package]] 476 + name = "data-encoding-macro" 477 + version = "0.1.18" 478 + source = "registry+https://github.com/rust-lang/crates.io-index" 479 + checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" 480 + dependencies = [ 481 + "data-encoding", 482 + "data-encoding-macro-internal", 483 + ] 484 + 485 + [[package]] 486 + name = "data-encoding-macro-internal" 487 + version = "0.1.16" 488 + source = "registry+https://github.com/rust-lang/crates.io-index" 489 + checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" 490 + dependencies = [ 491 + "data-encoding", 492 + "syn", 493 + ] 494 + 495 + [[package]] 496 + name = "der" 497 + version = "0.7.10" 498 + source = "registry+https://github.com/rust-lang/crates.io-index" 499 + checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" 500 + dependencies = [ 501 + "const-oid", 502 + "pem-rfc7468", 503 + "zeroize", 504 + ] 505 + 506 + [[package]] 507 + name = "digest" 508 + version = "0.10.7" 509 + source = "registry+https://github.com/rust-lang/crates.io-index" 510 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 511 + dependencies = [ 512 + "block-buffer", 513 + "const-oid", 514 + "crypto-common", 515 + "subtle", 516 + ] 517 + 518 + [[package]] 519 + name = "displaydoc" 520 + version = "0.2.5" 521 + source = "registry+https://github.com/rust-lang/crates.io-index" 522 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 523 + dependencies = [ 524 + "proc-macro2", 525 + "quote", 526 + "syn", 527 + ] 528 + 529 + [[package]] 530 + name = "double-ended-peekable" 531 + version = "0.1.0" 532 + source = "registry+https://github.com/rust-lang/crates.io-index" 533 + checksum = "c0d05e1c0dbad51b52c38bda7adceef61b9efc2baf04acfe8726a8c4630a6f57" 534 + 535 + [[package]] 536 + name = "ecdsa" 537 + version = "0.16.9" 538 + source = "registry+https://github.com/rust-lang/crates.io-index" 539 + checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" 540 + dependencies = [ 541 + "der", 542 + "digest", 543 + "elliptic-curve", 544 + "rfc6979", 545 + "signature", 546 + "spki", 547 + ] 548 + 549 + [[package]] 550 + name = "elliptic-curve" 551 + version = "0.13.8" 552 + source = "registry+https://github.com/rust-lang/crates.io-index" 553 + checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" 554 + dependencies = [ 555 + "base16ct", 556 + "base64ct", 557 + "crypto-bigint", 558 + "digest", 559 + "ff", 560 + "generic-array", 561 + "group", 562 + "hkdf", 563 + "pem-rfc7468", 564 + "pkcs8", 565 + "rand_core 0.6.4", 566 + "sec1", 567 + "serde_json", 568 + "serdect", 569 + "subtle", 570 + "zeroize", 571 + ] 572 + 573 + [[package]] 574 + name = "encoding_rs" 575 + version = "0.8.35" 576 + source = "registry+https://github.com/rust-lang/crates.io-index" 577 + checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 578 + dependencies = [ 579 + "cfg-if", 580 + ] 581 + 582 + [[package]] 583 + name = "enum-as-inner" 584 + version = "0.6.1" 585 + source = "registry+https://github.com/rust-lang/crates.io-index" 586 + checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 587 + dependencies = [ 588 + "heck", 589 + "proc-macro2", 590 + "quote", 591 + "syn", 592 + ] 593 + 594 + [[package]] 595 + name = "enum_dispatch" 596 + version = "0.3.13" 597 + source = "registry+https://github.com/rust-lang/crates.io-index" 598 + checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" 599 + dependencies = [ 600 + "once_cell", 601 + "proc-macro2", 602 + "quote", 603 + "syn", 604 + ] 605 + 606 + [[package]] 607 + name = "equivalent" 608 + version = "1.0.2" 609 + source = "registry+https://github.com/rust-lang/crates.io-index" 610 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 611 + 612 + [[package]] 613 + name = "errno" 614 + version = "0.3.13" 615 + source = "registry+https://github.com/rust-lang/crates.io-index" 616 + checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" 617 + dependencies = [ 618 + "libc", 619 + "windows-sys 0.60.2", 620 + ] 621 + 622 + [[package]] 623 + name = "fastrand" 624 + version = "2.3.0" 625 + source = "registry+https://github.com/rust-lang/crates.io-index" 626 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 627 + 628 + [[package]] 629 + name = "ff" 630 + version = "0.13.1" 631 + source = "registry+https://github.com/rust-lang/crates.io-index" 632 + checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" 633 + dependencies = [ 634 + "rand_core 0.6.4", 635 + "subtle", 636 + ] 637 + 638 + [[package]] 639 + name = "fjall" 640 + version = "2.11.1" 641 + source = "registry+https://github.com/rust-lang/crates.io-index" 642 + checksum = "f5cb653019268f6dc8de3b254b633a2d233a775054349b804b9cfbf18bbe3426" 643 + dependencies = [ 644 + "byteorder", 645 + "byteview", 646 + "dashmap", 647 + "log", 648 + "lsm-tree", 649 + "path-absolutize", 650 + "std-semaphore", 651 + "tempfile", 652 + "xxhash-rust", 653 + ] 654 + 655 + [[package]] 656 + name = "fnv" 657 + version = "1.0.7" 658 + source = "registry+https://github.com/rust-lang/crates.io-index" 659 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 660 + 661 + [[package]] 662 + name = "foldhash" 663 + version = "0.1.5" 664 + source = "registry+https://github.com/rust-lang/crates.io-index" 665 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 666 + 667 + [[package]] 668 + name = "form_urlencoded" 669 + version = "1.2.1" 670 + source = "registry+https://github.com/rust-lang/crates.io-index" 671 + checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 672 + dependencies = [ 673 + "percent-encoding", 674 + ] 675 + 676 + [[package]] 677 + name = "futures" 678 + version = "0.3.31" 679 + source = "registry+https://github.com/rust-lang/crates.io-index" 680 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 681 + dependencies = [ 682 + "futures-channel", 683 + "futures-core", 684 + "futures-executor", 685 + "futures-io", 686 + "futures-sink", 687 + "futures-task", 688 + "futures-util", 689 + ] 690 + 691 + [[package]] 692 + name = "futures-channel" 693 + version = "0.3.31" 694 + source = "registry+https://github.com/rust-lang/crates.io-index" 695 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 696 + dependencies = [ 697 + "futures-core", 698 + "futures-sink", 699 + ] 700 + 701 + [[package]] 702 + name = "futures-core" 703 + version = "0.3.31" 704 + source = "registry+https://github.com/rust-lang/crates.io-index" 705 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 706 + 707 + [[package]] 708 + name = "futures-executor" 709 + version = "0.3.31" 710 + source = "registry+https://github.com/rust-lang/crates.io-index" 711 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 712 + dependencies = [ 713 + "futures-core", 714 + "futures-task", 715 + "futures-util", 716 + ] 717 + 718 + [[package]] 719 + name = "futures-io" 720 + version = "0.3.31" 721 + source = "registry+https://github.com/rust-lang/crates.io-index" 722 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 723 + 724 + [[package]] 725 + name = "futures-macro" 726 + version = "0.3.31" 727 + source = "registry+https://github.com/rust-lang/crates.io-index" 728 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 729 + dependencies = [ 730 + "proc-macro2", 731 + "quote", 732 + "syn", 733 + ] 734 + 735 + [[package]] 736 + name = "futures-sink" 737 + version = "0.3.31" 738 + source = "registry+https://github.com/rust-lang/crates.io-index" 739 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 740 + 741 + [[package]] 742 + name = "futures-task" 743 + version = "0.3.31" 744 + source = "registry+https://github.com/rust-lang/crates.io-index" 745 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 746 + 747 + [[package]] 748 + name = "futures-util" 749 + version = "0.3.31" 750 + source = "registry+https://github.com/rust-lang/crates.io-index" 751 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 752 + dependencies = [ 753 + "futures-channel", 754 + "futures-core", 755 + "futures-io", 756 + "futures-macro", 757 + "futures-sink", 758 + "futures-task", 759 + "memchr", 760 + "pin-project-lite", 761 + "pin-utils", 762 + "slab", 763 + ] 764 + 765 + [[package]] 766 + name = "generator" 767 + version = "0.8.5" 768 + source = "registry+https://github.com/rust-lang/crates.io-index" 769 + checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" 770 + dependencies = [ 771 + "cc", 772 + "cfg-if", 773 + "libc", 774 + "log", 775 + "rustversion", 776 + "windows", 777 + ] 778 + 779 + [[package]] 780 + name = "generic-array" 781 + version = "0.14.7" 782 + source = "registry+https://github.com/rust-lang/crates.io-index" 783 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 784 + dependencies = [ 785 + "typenum", 786 + "version_check", 787 + "zeroize", 788 + ] 789 + 790 + [[package]] 791 + name = "getrandom" 792 + version = "0.2.16" 793 + source = "registry+https://github.com/rust-lang/crates.io-index" 794 + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 795 + dependencies = [ 796 + "cfg-if", 797 + "js-sys", 798 + "libc", 799 + "wasi 0.11.1+wasi-snapshot-preview1", 800 + "wasm-bindgen", 801 + ] 802 + 803 + [[package]] 804 + name = "getrandom" 805 + version = "0.3.3" 806 + source = "registry+https://github.com/rust-lang/crates.io-index" 807 + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 808 + dependencies = [ 809 + "cfg-if", 810 + "js-sys", 811 + "libc", 812 + "r-efi", 813 + "wasi 0.14.2+wasi-0.2.4", 814 + "wasm-bindgen", 815 + ] 816 + 817 + [[package]] 818 + name = "gimli" 819 + version = "0.31.1" 820 + source = "registry+https://github.com/rust-lang/crates.io-index" 821 + checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 822 + 823 + [[package]] 824 + name = "group" 825 + version = "0.13.0" 826 + source = "registry+https://github.com/rust-lang/crates.io-index" 827 + checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 828 + dependencies = [ 829 + "ff", 830 + "rand_core 0.6.4", 831 + "subtle", 832 + ] 833 + 834 + [[package]] 835 + name = "guardian" 836 + version = "1.3.0" 837 + source = "registry+https://github.com/rust-lang/crates.io-index" 838 + checksum = "17e2ac29387b1aa07a1e448f7bb4f35b500787971e965b02842b900afa5c8f6f" 839 + 840 + [[package]] 841 + name = "h2" 842 + version = "0.4.11" 843 + source = "registry+https://github.com/rust-lang/crates.io-index" 844 + checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" 845 + dependencies = [ 846 + "atomic-waker", 847 + "bytes", 848 + "fnv", 849 + "futures-core", 850 + "futures-sink", 851 + "http", 852 + "indexmap", 853 + "slab", 854 + "tokio", 855 + "tokio-util", 856 + "tracing", 857 + ] 858 + 859 + [[package]] 860 + name = "hashbrown" 861 + version = "0.14.5" 862 + source = "registry+https://github.com/rust-lang/crates.io-index" 863 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 864 + 865 + [[package]] 866 + name = "hashbrown" 867 + version = "0.15.4" 868 + source = "registry+https://github.com/rust-lang/crates.io-index" 869 + checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" 870 + dependencies = [ 871 + "allocator-api2", 872 + "equivalent", 873 + "foldhash", 874 + ] 875 + 876 + [[package]] 877 + name = "heck" 878 + version = "0.5.0" 879 + source = "registry+https://github.com/rust-lang/crates.io-index" 880 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 881 + 882 + [[package]] 883 + name = "hickory-proto" 884 + version = "0.25.2" 885 + source = "registry+https://github.com/rust-lang/crates.io-index" 886 + checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" 887 + dependencies = [ 888 + "async-trait", 889 + "cfg-if", 890 + "data-encoding", 891 + "enum-as-inner", 892 + "futures-channel", 893 + "futures-io", 894 + "futures-util", 895 + "idna", 896 + "ipnet", 897 + "once_cell", 898 + "rand 0.9.1", 899 + "ring", 900 + "thiserror 2.0.12", 901 + "tinyvec", 902 + "tokio", 903 + "tracing", 904 + "url", 905 + ] 906 + 907 + [[package]] 908 + name = "hickory-resolver" 909 + version = "0.25.2" 910 + source = "registry+https://github.com/rust-lang/crates.io-index" 911 + checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" 912 + dependencies = [ 913 + "cfg-if", 914 + "futures-util", 915 + "hickory-proto", 916 + "ipconfig", 917 + "moka", 918 + "once_cell", 919 + "parking_lot", 920 + "rand 0.9.1", 921 + "resolv-conf", 922 + "smallvec", 923 + "thiserror 2.0.12", 924 + "tokio", 925 + "tracing", 926 + ] 927 + 928 + [[package]] 929 + name = "hkdf" 930 + version = "0.12.4" 931 + source = "registry+https://github.com/rust-lang/crates.io-index" 932 + checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" 933 + dependencies = [ 934 + "hmac", 935 + ] 936 + 937 + [[package]] 938 + name = "hmac" 939 + version = "0.12.1" 940 + source = "registry+https://github.com/rust-lang/crates.io-index" 941 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 942 + dependencies = [ 943 + "digest", 944 + ] 945 + 946 + [[package]] 947 + name = "http" 948 + version = "1.3.1" 949 + source = "registry+https://github.com/rust-lang/crates.io-index" 950 + checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 951 + dependencies = [ 952 + "bytes", 953 + "fnv", 954 + "itoa", 955 + ] 956 + 957 + [[package]] 958 + name = "http-body" 959 + version = "1.0.1" 960 + source = "registry+https://github.com/rust-lang/crates.io-index" 961 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 962 + dependencies = [ 963 + "bytes", 964 + "http", 965 + ] 966 + 967 + [[package]] 968 + name = "http-body-util" 969 + version = "0.1.3" 970 + source = "registry+https://github.com/rust-lang/crates.io-index" 971 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 972 + dependencies = [ 973 + "bytes", 974 + "futures-core", 975 + "http", 976 + "http-body", 977 + "pin-project-lite", 978 + ] 979 + 980 + [[package]] 981 + name = "httparse" 982 + version = "1.10.1" 983 + source = "registry+https://github.com/rust-lang/crates.io-index" 984 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 985 + 986 + [[package]] 987 + name = "httpdate" 988 + version = "1.0.3" 989 + source = "registry+https://github.com/rust-lang/crates.io-index" 990 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 991 + 992 + [[package]] 993 + name = "hyper" 994 + version = "1.6.0" 995 + source = "registry+https://github.com/rust-lang/crates.io-index" 996 + checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 997 + dependencies = [ 998 + "bytes", 999 + "futures-channel", 1000 + "futures-util", 1001 + "h2", 1002 + "http", 1003 + "http-body", 1004 + "httparse", 1005 + "httpdate", 1006 + "itoa", 1007 + "pin-project-lite", 1008 + "smallvec", 1009 + "tokio", 1010 + "want", 1011 + ] 1012 + 1013 + [[package]] 1014 + name = "hyper-rustls" 1015 + version = "0.27.7" 1016 + source = "registry+https://github.com/rust-lang/crates.io-index" 1017 + checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" 1018 + dependencies = [ 1019 + "http", 1020 + "hyper", 1021 + "hyper-util", 1022 + "rustls", 1023 + "rustls-pki-types", 1024 + "tokio", 1025 + "tokio-rustls", 1026 + "tower-service", 1027 + "webpki-roots", 1028 + ] 1029 + 1030 + [[package]] 1031 + name = "hyper-util" 1032 + version = "0.1.15" 1033 + source = "registry+https://github.com/rust-lang/crates.io-index" 1034 + checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" 1035 + dependencies = [ 1036 + "base64", 1037 + "bytes", 1038 + "futures-channel", 1039 + "futures-core", 1040 + "futures-util", 1041 + "http", 1042 + "http-body", 1043 + "hyper", 1044 + "ipnet", 1045 + "libc", 1046 + "percent-encoding", 1047 + "pin-project-lite", 1048 + "socket2", 1049 + "system-configuration", 1050 + "tokio", 1051 + "tower-service", 1052 + "tracing", 1053 + "windows-registry", 1054 + ] 1055 + 1056 + [[package]] 1057 + name = "icu_collections" 1058 + version = "2.0.0" 1059 + source = "registry+https://github.com/rust-lang/crates.io-index" 1060 + checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 1061 + dependencies = [ 1062 + "displaydoc", 1063 + "potential_utf", 1064 + "yoke", 1065 + "zerofrom", 1066 + "zerovec", 1067 + ] 1068 + 1069 + [[package]] 1070 + name = "icu_locale_core" 1071 + version = "2.0.0" 1072 + source = "registry+https://github.com/rust-lang/crates.io-index" 1073 + checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 1074 + dependencies = [ 1075 + "displaydoc", 1076 + "litemap", 1077 + "tinystr", 1078 + "writeable", 1079 + "zerovec", 1080 + ] 1081 + 1082 + [[package]] 1083 + name = "icu_normalizer" 1084 + version = "2.0.0" 1085 + source = "registry+https://github.com/rust-lang/crates.io-index" 1086 + checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 1087 + dependencies = [ 1088 + "displaydoc", 1089 + "icu_collections", 1090 + "icu_normalizer_data", 1091 + "icu_properties", 1092 + "icu_provider", 1093 + "smallvec", 1094 + "zerovec", 1095 + ] 1096 + 1097 + [[package]] 1098 + name = "icu_normalizer_data" 1099 + version = "2.0.0" 1100 + source = "registry+https://github.com/rust-lang/crates.io-index" 1101 + checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 1102 + 1103 + [[package]] 1104 + name = "icu_properties" 1105 + version = "2.0.1" 1106 + source = "registry+https://github.com/rust-lang/crates.io-index" 1107 + checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 1108 + dependencies = [ 1109 + "displaydoc", 1110 + "icu_collections", 1111 + "icu_locale_core", 1112 + "icu_properties_data", 1113 + "icu_provider", 1114 + "potential_utf", 1115 + "zerotrie", 1116 + "zerovec", 1117 + ] 1118 + 1119 + [[package]] 1120 + name = "icu_properties_data" 1121 + version = "2.0.1" 1122 + source = "registry+https://github.com/rust-lang/crates.io-index" 1123 + checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 1124 + 1125 + [[package]] 1126 + name = "icu_provider" 1127 + version = "2.0.0" 1128 + source = "registry+https://github.com/rust-lang/crates.io-index" 1129 + checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 1130 + dependencies = [ 1131 + "displaydoc", 1132 + "icu_locale_core", 1133 + "stable_deref_trait", 1134 + "tinystr", 1135 + "writeable", 1136 + "yoke", 1137 + "zerofrom", 1138 + "zerotrie", 1139 + "zerovec", 1140 + ] 1141 + 1142 + [[package]] 1143 + name = "idna" 1144 + version = "1.0.3" 1145 + source = "registry+https://github.com/rust-lang/crates.io-index" 1146 + checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 1147 + dependencies = [ 1148 + "idna_adapter", 1149 + "smallvec", 1150 + "utf8_iter", 1151 + ] 1152 + 1153 + [[package]] 1154 + name = "idna_adapter" 1155 + version = "1.2.1" 1156 + source = "registry+https://github.com/rust-lang/crates.io-index" 1157 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1158 + dependencies = [ 1159 + "icu_normalizer", 1160 + "icu_properties", 1161 + ] 1162 + 1163 + [[package]] 1164 + name = "indexmap" 1165 + version = "2.10.0" 1166 + source = "registry+https://github.com/rust-lang/crates.io-index" 1167 + checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 1168 + dependencies = [ 1169 + "equivalent", 1170 + "hashbrown 0.15.4", 1171 + ] 1172 + 1173 + [[package]] 1174 + name = "interval-heap" 1175 + version = "0.0.5" 1176 + source = "registry+https://github.com/rust-lang/crates.io-index" 1177 + checksum = "11274e5e8e89b8607cfedc2910b6626e998779b48a019151c7604d0adcb86ac6" 1178 + dependencies = [ 1179 + "compare", 1180 + ] 1181 + 1182 + [[package]] 1183 + name = "io-uring" 1184 + version = "0.7.8" 1185 + source = "registry+https://github.com/rust-lang/crates.io-index" 1186 + checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" 1187 + dependencies = [ 1188 + "bitflags", 1189 + "cfg-if", 1190 + "libc", 1191 + ] 1192 + 1193 + [[package]] 1194 + name = "ipconfig" 1195 + version = "0.3.2" 1196 + source = "registry+https://github.com/rust-lang/crates.io-index" 1197 + checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" 1198 + dependencies = [ 1199 + "socket2", 1200 + "widestring", 1201 + "windows-sys 0.48.0", 1202 + "winreg", 1203 + ] 1204 + 1205 + [[package]] 1206 + name = "ipld-core" 1207 + version = "0.4.2" 1208 + source = "registry+https://github.com/rust-lang/crates.io-index" 1209 + checksum = "104718b1cc124d92a6d01ca9c9258a7df311405debb3408c445a36452f9bf8db" 1210 + dependencies = [ 1211 + "cid", 1212 + "serde", 1213 + "serde_bytes", 1214 + ] 1215 + 1216 + [[package]] 1217 + name = "ipnet" 1218 + version = "2.11.0" 1219 + source = "registry+https://github.com/rust-lang/crates.io-index" 1220 + checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 1221 + 1222 + [[package]] 1223 + name = "iri-string" 1224 + version = "0.7.8" 1225 + source = "registry+https://github.com/rust-lang/crates.io-index" 1226 + checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 1227 + dependencies = [ 1228 + "memchr", 1229 + "serde", 1230 + ] 1231 + 1232 + [[package]] 1233 + name = "itoa" 1234 + version = "1.0.15" 1235 + source = "registry+https://github.com/rust-lang/crates.io-index" 1236 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1237 + 1238 + [[package]] 1239 + name = "jobserver" 1240 + version = "0.1.33" 1241 + source = "registry+https://github.com/rust-lang/crates.io-index" 1242 + checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" 1243 + dependencies = [ 1244 + "getrandom 0.3.3", 1245 + "libc", 1246 + ] 1247 + 1248 + [[package]] 1249 + name = "js-sys" 1250 + version = "0.3.77" 1251 + source = "registry+https://github.com/rust-lang/crates.io-index" 1252 + checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 1253 + dependencies = [ 1254 + "once_cell", 1255 + "wasm-bindgen", 1256 + ] 1257 + 1258 + [[package]] 1259 + name = "k256" 1260 + version = "0.13.4" 1261 + source = "registry+https://github.com/rust-lang/crates.io-index" 1262 + checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" 1263 + dependencies = [ 1264 + "cfg-if", 1265 + "ecdsa", 1266 + "elliptic-curve", 1267 + "once_cell", 1268 + "sha2", 1269 + "signature", 1270 + ] 1271 + 1272 + [[package]] 1273 + name = "lazy_static" 1274 + version = "1.5.0" 1275 + source = "registry+https://github.com/rust-lang/crates.io-index" 1276 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1277 + 1278 + [[package]] 1279 + name = "libc" 1280 + version = "0.2.174" 1281 + source = "registry+https://github.com/rust-lang/crates.io-index" 1282 + checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" 1283 + 1284 + [[package]] 1285 + name = "linux-raw-sys" 1286 + version = "0.9.4" 1287 + source = "registry+https://github.com/rust-lang/crates.io-index" 1288 + checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 1289 + 1290 + [[package]] 1291 + name = "litemap" 1292 + version = "0.8.0" 1293 + source = "registry+https://github.com/rust-lang/crates.io-index" 1294 + checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 1295 + 1296 + [[package]] 1297 + name = "lock_api" 1298 + version = "0.4.13" 1299 + source = "registry+https://github.com/rust-lang/crates.io-index" 1300 + checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 1301 + dependencies = [ 1302 + "autocfg", 1303 + "scopeguard", 1304 + ] 1305 + 1306 + [[package]] 1307 + name = "log" 1308 + version = "0.4.27" 1309 + source = "registry+https://github.com/rust-lang/crates.io-index" 1310 + checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1311 + 1312 + [[package]] 1313 + name = "loom" 1314 + version = "0.7.2" 1315 + source = "registry+https://github.com/rust-lang/crates.io-index" 1316 + checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" 1317 + dependencies = [ 1318 + "cfg-if", 1319 + "generator", 1320 + "scoped-tls", 1321 + "tracing", 1322 + "tracing-subscriber", 1323 + ] 1324 + 1325 + [[package]] 1326 + name = "lru" 1327 + version = "0.12.5" 1328 + source = "registry+https://github.com/rust-lang/crates.io-index" 1329 + checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 1330 + dependencies = [ 1331 + "hashbrown 0.15.4", 1332 + ] 1333 + 1334 + [[package]] 1335 + name = "lru-slab" 1336 + version = "0.1.2" 1337 + source = "registry+https://github.com/rust-lang/crates.io-index" 1338 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 1339 + 1340 + [[package]] 1341 + name = "lsm-tree" 1342 + version = "2.10.1" 1343 + source = "registry+https://github.com/rust-lang/crates.io-index" 1344 + checksum = "1d2bd4cdc451a8dcf11329190afb9b78eb8988bed07a3da29b8d73d2e0c731ff" 1345 + dependencies = [ 1346 + "byteorder", 1347 + "crossbeam-skiplist", 1348 + "double-ended-peekable", 1349 + "enum_dispatch", 1350 + "guardian", 1351 + "interval-heap", 1352 + "log", 1353 + "lz4_flex", 1354 + "path-absolutize", 1355 + "quick_cache", 1356 + "rustc-hash", 1357 + "self_cell", 1358 + "tempfile", 1359 + "value-log", 1360 + "varint-rs", 1361 + "xxhash-rust", 1362 + ] 1363 + 1364 + [[package]] 1365 + name = "lz4_flex" 1366 + version = "0.11.3" 1367 + source = "registry+https://github.com/rust-lang/crates.io-index" 1368 + checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" 1369 + 1370 + [[package]] 1371 + name = "matchers" 1372 + version = "0.1.0" 1373 + source = "registry+https://github.com/rust-lang/crates.io-index" 1374 + checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 1375 + dependencies = [ 1376 + "regex-automata 0.1.10", 1377 + ] 1378 + 1379 + [[package]] 1380 + name = "matchit" 1381 + version = "0.8.4" 1382 + source = "registry+https://github.com/rust-lang/crates.io-index" 1383 + checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" 1384 + 1385 + [[package]] 1386 + name = "memchr" 1387 + version = "2.7.5" 1388 + source = "registry+https://github.com/rust-lang/crates.io-index" 1389 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 1390 + 1391 + [[package]] 1392 + name = "mime" 1393 + version = "0.3.17" 1394 + source = "registry+https://github.com/rust-lang/crates.io-index" 1395 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1396 + 1397 + [[package]] 1398 + name = "miniz_oxide" 1399 + version = "0.8.9" 1400 + source = "registry+https://github.com/rust-lang/crates.io-index" 1401 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1402 + dependencies = [ 1403 + "adler2", 1404 + ] 1405 + 1406 + [[package]] 1407 + name = "mio" 1408 + version = "1.0.4" 1409 + source = "registry+https://github.com/rust-lang/crates.io-index" 1410 + checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 1411 + dependencies = [ 1412 + "libc", 1413 + "wasi 0.11.1+wasi-snapshot-preview1", 1414 + "windows-sys 0.59.0", 1415 + ] 1416 + 1417 + [[package]] 1418 + name = "moka" 1419 + version = "0.12.10" 1420 + source = "registry+https://github.com/rust-lang/crates.io-index" 1421 + checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" 1422 + dependencies = [ 1423 + "crossbeam-channel", 1424 + "crossbeam-epoch", 1425 + "crossbeam-utils", 1426 + "loom", 1427 + "parking_lot", 1428 + "portable-atomic", 1429 + "rustc_version", 1430 + "smallvec", 1431 + "tagptr", 1432 + "thiserror 1.0.69", 1433 + "uuid", 1434 + ] 1435 + 1436 + [[package]] 1437 + name = "multibase" 1438 + version = "0.9.1" 1439 + source = "registry+https://github.com/rust-lang/crates.io-index" 1440 + checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" 1441 + dependencies = [ 1442 + "base-x", 1443 + "data-encoding", 1444 + "data-encoding-macro", 1445 + ] 1446 + 1447 + [[package]] 1448 + name = "multihash" 1449 + version = "0.19.3" 1450 + source = "registry+https://github.com/rust-lang/crates.io-index" 1451 + checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" 1452 + dependencies = [ 1453 + "core2", 1454 + "serde", 1455 + "unsigned-varint", 1456 + ] 1457 + 1458 + [[package]] 1459 + name = "munge" 1460 + version = "0.4.5" 1461 + source = "registry+https://github.com/rust-lang/crates.io-index" 1462 + checksum = "9cce144fab80fbb74ec5b89d1ca9d41ddf6b644ab7e986f7d3ed0aab31625cb1" 1463 + dependencies = [ 1464 + "munge_macro", 1465 + ] 1466 + 1467 + [[package]] 1468 + name = "munge_macro" 1469 + version = "0.4.5" 1470 + source = "registry+https://github.com/rust-lang/crates.io-index" 1471 + checksum = "574af9cd5b9971cbfdf535d6a8d533778481b241c447826d976101e0149392a1" 1472 + dependencies = [ 1473 + "proc-macro2", 1474 + "quote", 1475 + "syn", 1476 + ] 1477 + 1478 + [[package]] 1479 + name = "nu-ansi-term" 1480 + version = "0.46.0" 1481 + source = "registry+https://github.com/rust-lang/crates.io-index" 1482 + checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 1483 + dependencies = [ 1484 + "overload", 1485 + "winapi", 1486 + ] 1487 + 1488 + [[package]] 1489 + name = "object" 1490 + version = "0.36.7" 1491 + source = "registry+https://github.com/rust-lang/crates.io-index" 1492 + checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 1493 + dependencies = [ 1494 + "memchr", 1495 + ] 1496 + 1497 + [[package]] 1498 + name = "once_cell" 1499 + version = "1.21.3" 1500 + source = "registry+https://github.com/rust-lang/crates.io-index" 1501 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1502 + dependencies = [ 1503 + "critical-section", 1504 + "portable-atomic", 1505 + ] 1506 + 1507 + [[package]] 1508 + name = "openssl-probe" 1509 + version = "0.1.6" 1510 + source = "registry+https://github.com/rust-lang/crates.io-index" 1511 + checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 1512 + 1513 + [[package]] 1514 + name = "overload" 1515 + version = "0.1.1" 1516 + source = "registry+https://github.com/rust-lang/crates.io-index" 1517 + checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 1518 + 1519 + [[package]] 1520 + name = "p256" 1521 + version = "0.13.2" 1522 + source = "registry+https://github.com/rust-lang/crates.io-index" 1523 + checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" 1524 + dependencies = [ 1525 + "ecdsa", 1526 + "elliptic-curve", 1527 + "primeorder", 1528 + "sha2", 1529 + ] 1530 + 1531 + [[package]] 1532 + name = "p384" 1533 + version = "0.13.1" 1534 + source = "registry+https://github.com/rust-lang/crates.io-index" 1535 + checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" 1536 + dependencies = [ 1537 + "ecdsa", 1538 + "elliptic-curve", 1539 + "primeorder", 1540 + "sha2", 1541 + ] 1542 + 1543 + [[package]] 1544 + name = "papaya" 1545 + version = "0.2.3" 1546 + source = "registry+https://github.com/rust-lang/crates.io-index" 1547 + checksum = "f92dd0b07c53a0a0c764db2ace8c541dc47320dad97c2200c2a637ab9dd2328f" 1548 + dependencies = [ 1549 + "equivalent", 1550 + "seize", 1551 + ] 1552 + 1553 + [[package]] 1554 + name = "parking_lot" 1555 + version = "0.12.4" 1556 + source = "registry+https://github.com/rust-lang/crates.io-index" 1557 + checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 1558 + dependencies = [ 1559 + "lock_api", 1560 + "parking_lot_core", 1561 + ] 1562 + 1563 + [[package]] 1564 + name = "parking_lot_core" 1565 + version = "0.9.11" 1566 + source = "registry+https://github.com/rust-lang/crates.io-index" 1567 + checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 1568 + dependencies = [ 1569 + "cfg-if", 1570 + "libc", 1571 + "redox_syscall", 1572 + "smallvec", 1573 + "windows-targets 0.52.6", 1574 + ] 1575 + 1576 + [[package]] 1577 + name = "path-absolutize" 1578 + version = "3.1.1" 1579 + source = "registry+https://github.com/rust-lang/crates.io-index" 1580 + checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5" 1581 + dependencies = [ 1582 + "path-dedot", 1583 + ] 1584 + 1585 + [[package]] 1586 + name = "path-dedot" 1587 + version = "3.1.1" 1588 + source = "registry+https://github.com/rust-lang/crates.io-index" 1589 + checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397" 1590 + dependencies = [ 1591 + "once_cell", 1592 + ] 1593 + 1594 + [[package]] 1595 + name = "pem-rfc7468" 1596 + version = "0.7.0" 1597 + source = "registry+https://github.com/rust-lang/crates.io-index" 1598 + checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 1599 + dependencies = [ 1600 + "base64ct", 1601 + ] 1602 + 1603 + [[package]] 1604 + name = "percent-encoding" 1605 + version = "2.3.1" 1606 + source = "registry+https://github.com/rust-lang/crates.io-index" 1607 + checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1608 + 1609 + [[package]] 1610 + name = "pin-project-lite" 1611 + version = "0.2.16" 1612 + source = "registry+https://github.com/rust-lang/crates.io-index" 1613 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1614 + 1615 + [[package]] 1616 + name = "pin-utils" 1617 + version = "0.1.0" 1618 + source = "registry+https://github.com/rust-lang/crates.io-index" 1619 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1620 + 1621 + [[package]] 1622 + name = "pkcs8" 1623 + version = "0.10.2" 1624 + source = "registry+https://github.com/rust-lang/crates.io-index" 1625 + checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 1626 + dependencies = [ 1627 + "der", 1628 + "spki", 1629 + ] 1630 + 1631 + [[package]] 1632 + name = "pkg-config" 1633 + version = "0.3.32" 1634 + source = "registry+https://github.com/rust-lang/crates.io-index" 1635 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1636 + 1637 + [[package]] 1638 + name = "portable-atomic" 1639 + version = "1.11.1" 1640 + source = "registry+https://github.com/rust-lang/crates.io-index" 1641 + checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 1642 + 1643 + [[package]] 1644 + name = "potential_utf" 1645 + version = "0.1.2" 1646 + source = "registry+https://github.com/rust-lang/crates.io-index" 1647 + checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 1648 + dependencies = [ 1649 + "zerovec", 1650 + ] 1651 + 1652 + [[package]] 1653 + name = "ppv-lite86" 1654 + version = "0.2.21" 1655 + source = "registry+https://github.com/rust-lang/crates.io-index" 1656 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1657 + dependencies = [ 1658 + "zerocopy", 1659 + ] 1660 + 1661 + [[package]] 1662 + name = "primeorder" 1663 + version = "0.13.6" 1664 + source = "registry+https://github.com/rust-lang/crates.io-index" 1665 + checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" 1666 + dependencies = [ 1667 + "elliptic-curve", 1668 + ] 1669 + 1670 + [[package]] 1671 + name = "proc-macro2" 1672 + version = "1.0.95" 1673 + source = "registry+https://github.com/rust-lang/crates.io-index" 1674 + checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 1675 + dependencies = [ 1676 + "unicode-ident", 1677 + ] 1678 + 1679 + [[package]] 1680 + name = "ptr_meta" 1681 + version = "0.3.0" 1682 + source = "registry+https://github.com/rust-lang/crates.io-index" 1683 + checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" 1684 + dependencies = [ 1685 + "ptr_meta_derive", 1686 + ] 1687 + 1688 + [[package]] 1689 + name = "ptr_meta_derive" 1690 + version = "0.3.0" 1691 + source = "registry+https://github.com/rust-lang/crates.io-index" 1692 + checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" 1693 + dependencies = [ 1694 + "proc-macro2", 1695 + "quote", 1696 + "syn", 1697 + ] 1698 + 1699 + [[package]] 1700 + name = "quick_cache" 1701 + version = "0.6.14" 1702 + source = "registry+https://github.com/rust-lang/crates.io-index" 1703 + checksum = "6b450dad8382b1b95061d5ca1eb792081fb082adf48c678791fe917509596d5f" 1704 + dependencies = [ 1705 + "equivalent", 1706 + "hashbrown 0.15.4", 1707 + ] 1708 + 1709 + [[package]] 1710 + name = "quinn" 1711 + version = "0.11.8" 1712 + source = "registry+https://github.com/rust-lang/crates.io-index" 1713 + checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" 1714 + dependencies = [ 1715 + "bytes", 1716 + "cfg_aliases", 1717 + "pin-project-lite", 1718 + "quinn-proto", 1719 + "quinn-udp", 1720 + "rustc-hash", 1721 + "rustls", 1722 + "socket2", 1723 + "thiserror 2.0.12", 1724 + "tokio", 1725 + "tracing", 1726 + "web-time", 1727 + ] 1728 + 1729 + [[package]] 1730 + name = "quinn-proto" 1731 + version = "0.11.12" 1732 + source = "registry+https://github.com/rust-lang/crates.io-index" 1733 + checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" 1734 + dependencies = [ 1735 + "bytes", 1736 + "getrandom 0.3.3", 1737 + "lru-slab", 1738 + "rand 0.9.1", 1739 + "ring", 1740 + "rustc-hash", 1741 + "rustls", 1742 + "rustls-pki-types", 1743 + "slab", 1744 + "thiserror 2.0.12", 1745 + "tinyvec", 1746 + "tracing", 1747 + "web-time", 1748 + ] 1749 + 1750 + [[package]] 1751 + name = "quinn-udp" 1752 + version = "0.5.13" 1753 + source = "registry+https://github.com/rust-lang/crates.io-index" 1754 + checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" 1755 + dependencies = [ 1756 + "cfg_aliases", 1757 + "libc", 1758 + "once_cell", 1759 + "socket2", 1760 + "tracing", 1761 + "windows-sys 0.59.0", 1762 + ] 1763 + 1764 + [[package]] 1765 + name = "quote" 1766 + version = "1.0.40" 1767 + source = "registry+https://github.com/rust-lang/crates.io-index" 1768 + checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1769 + dependencies = [ 1770 + "proc-macro2", 1771 + ] 1772 + 1773 + [[package]] 1774 + name = "r-efi" 1775 + version = "5.3.0" 1776 + source = "registry+https://github.com/rust-lang/crates.io-index" 1777 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1778 + 1779 + [[package]] 1780 + name = "rancor" 1781 + version = "0.1.0" 1782 + source = "registry+https://github.com/rust-lang/crates.io-index" 1783 + checksum = "caf5f7161924b9d1cea0e4cabc97c372cea92b5f927fc13c6bca67157a0ad947" 1784 + dependencies = [ 1785 + "ptr_meta", 1786 + ] 1787 + 1788 + [[package]] 1789 + name = "rand" 1790 + version = "0.8.5" 1791 + source = "registry+https://github.com/rust-lang/crates.io-index" 1792 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1793 + dependencies = [ 1794 + "libc", 1795 + "rand_chacha 0.3.1", 1796 + "rand_core 0.6.4", 1797 + ] 1798 + 1799 + [[package]] 1800 + name = "rand" 1801 + version = "0.9.1" 1802 + source = "registry+https://github.com/rust-lang/crates.io-index" 1803 + checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" 1804 + dependencies = [ 1805 + "rand_chacha 0.9.0", 1806 + "rand_core 0.9.3", 1807 + ] 1808 + 1809 + [[package]] 1810 + name = "rand_chacha" 1811 + version = "0.3.1" 1812 + source = "registry+https://github.com/rust-lang/crates.io-index" 1813 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1814 + dependencies = [ 1815 + "ppv-lite86", 1816 + "rand_core 0.6.4", 1817 + ] 1818 + 1819 + [[package]] 1820 + name = "rand_chacha" 1821 + version = "0.9.0" 1822 + source = "registry+https://github.com/rust-lang/crates.io-index" 1823 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1824 + dependencies = [ 1825 + "ppv-lite86", 1826 + "rand_core 0.9.3", 1827 + ] 1828 + 1829 + [[package]] 1830 + name = "rand_core" 1831 + version = "0.6.4" 1832 + source = "registry+https://github.com/rust-lang/crates.io-index" 1833 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1834 + dependencies = [ 1835 + "getrandom 0.2.16", 1836 + ] 1837 + 1838 + [[package]] 1839 + name = "rand_core" 1840 + version = "0.9.3" 1841 + source = "registry+https://github.com/rust-lang/crates.io-index" 1842 + checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 1843 + dependencies = [ 1844 + "getrandom 0.3.3", 1845 + ] 1846 + 1847 + [[package]] 1848 + name = "redox_syscall" 1849 + version = "0.5.13" 1850 + source = "registry+https://github.com/rust-lang/crates.io-index" 1851 + checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" 1852 + dependencies = [ 1853 + "bitflags", 1854 + ] 1855 + 1856 + [[package]] 1857 + name = "regex" 1858 + version = "1.11.1" 1859 + source = "registry+https://github.com/rust-lang/crates.io-index" 1860 + checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1861 + dependencies = [ 1862 + "aho-corasick", 1863 + "memchr", 1864 + "regex-automata 0.4.9", 1865 + "regex-syntax 0.8.5", 1866 + ] 1867 + 1868 + [[package]] 1869 + name = "regex-automata" 1870 + version = "0.1.10" 1871 + source = "registry+https://github.com/rust-lang/crates.io-index" 1872 + checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 1873 + dependencies = [ 1874 + "regex-syntax 0.6.29", 1875 + ] 1876 + 1877 + [[package]] 1878 + name = "regex-automata" 1879 + version = "0.4.9" 1880 + source = "registry+https://github.com/rust-lang/crates.io-index" 1881 + checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1882 + dependencies = [ 1883 + "aho-corasick", 1884 + "memchr", 1885 + "regex-syntax 0.8.5", 1886 + ] 1887 + 1888 + [[package]] 1889 + name = "regex-syntax" 1890 + version = "0.6.29" 1891 + source = "registry+https://github.com/rust-lang/crates.io-index" 1892 + checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 1893 + 1894 + [[package]] 1895 + name = "regex-syntax" 1896 + version = "0.8.5" 1897 + source = "registry+https://github.com/rust-lang/crates.io-index" 1898 + checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1899 + 1900 + [[package]] 1901 + name = "rend" 1902 + version = "0.5.2" 1903 + source = "registry+https://github.com/rust-lang/crates.io-index" 1904 + checksum = "a35e8a6bf28cd121053a66aa2e6a2e3eaffad4a60012179f0e864aa5ffeff215" 1905 + dependencies = [ 1906 + "bytecheck", 1907 + ] 1908 + 1909 + [[package]] 1910 + name = "reqwest" 1911 + version = "0.12.22" 1912 + source = "registry+https://github.com/rust-lang/crates.io-index" 1913 + checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" 1914 + dependencies = [ 1915 + "base64", 1916 + "bytes", 1917 + "encoding_rs", 1918 + "futures-core", 1919 + "h2", 1920 + "http", 1921 + "http-body", 1922 + "http-body-util", 1923 + "hyper", 1924 + "hyper-rustls", 1925 + "hyper-util", 1926 + "js-sys", 1927 + "log", 1928 + "mime", 1929 + "percent-encoding", 1930 + "pin-project-lite", 1931 + "quinn", 1932 + "rustls", 1933 + "rustls-pki-types", 1934 + "serde", 1935 + "serde_json", 1936 + "serde_urlencoded", 1937 + "sync_wrapper", 1938 + "tokio", 1939 + "tokio-rustls", 1940 + "tower", 1941 + "tower-http", 1942 + "tower-service", 1943 + "url", 1944 + "wasm-bindgen", 1945 + "wasm-bindgen-futures", 1946 + "web-sys", 1947 + "webpki-roots", 1948 + ] 1949 + 1950 + [[package]] 1951 + name = "resolv-conf" 1952 + version = "0.7.4" 1953 + source = "registry+https://github.com/rust-lang/crates.io-index" 1954 + checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" 1955 + 1956 + [[package]] 1957 + name = "rfc6979" 1958 + version = "0.4.0" 1959 + source = "registry+https://github.com/rust-lang/crates.io-index" 1960 + checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 1961 + dependencies = [ 1962 + "hmac", 1963 + "subtle", 1964 + ] 1965 + 1966 + [[package]] 1967 + name = "ring" 1968 + version = "0.17.14" 1969 + source = "registry+https://github.com/rust-lang/crates.io-index" 1970 + checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 1971 + dependencies = [ 1972 + "cc", 1973 + "cfg-if", 1974 + "getrandom 0.2.16", 1975 + "libc", 1976 + "untrusted", 1977 + "windows-sys 0.52.0", 1978 + ] 1979 + 1980 + [[package]] 1981 + name = "rkyv" 1982 + version = "0.8.10" 1983 + source = "registry+https://github.com/rust-lang/crates.io-index" 1984 + checksum = "1e147371c75553e1e2fcdb483944a8540b8438c31426279553b9a8182a9b7b65" 1985 + dependencies = [ 1986 + "bytecheck", 1987 + "bytes", 1988 + "hashbrown 0.15.4", 1989 + "indexmap", 1990 + "munge", 1991 + "ptr_meta", 1992 + "rancor", 1993 + "rend", 1994 + "rkyv_derive", 1995 + "tinyvec", 1996 + "uuid", 1997 + ] 1998 + 1999 + [[package]] 2000 + name = "rkyv_derive" 2001 + version = "0.8.10" 2002 + source = "registry+https://github.com/rust-lang/crates.io-index" 2003 + checksum = "246b40ac189af6c675d124b802e8ef6d5246c53e17367ce9501f8f66a81abb7a" 2004 + dependencies = [ 2005 + "proc-macro2", 2006 + "quote", 2007 + "syn", 2008 + ] 2009 + 2010 + [[package]] 2011 + name = "rustc-demangle" 2012 + version = "0.1.25" 2013 + source = "registry+https://github.com/rust-lang/crates.io-index" 2014 + checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" 2015 + 2016 + [[package]] 2017 + name = "rustc-hash" 2018 + version = "2.1.1" 2019 + source = "registry+https://github.com/rust-lang/crates.io-index" 2020 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 2021 + 2022 + [[package]] 2023 + name = "rustc_version" 2024 + version = "0.4.1" 2025 + source = "registry+https://github.com/rust-lang/crates.io-index" 2026 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2027 + dependencies = [ 2028 + "semver", 2029 + ] 2030 + 2031 + [[package]] 2032 + name = "rustix" 2033 + version = "1.0.8" 2034 + source = "registry+https://github.com/rust-lang/crates.io-index" 2035 + checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" 2036 + dependencies = [ 2037 + "bitflags", 2038 + "errno", 2039 + "libc", 2040 + "linux-raw-sys", 2041 + "windows-sys 0.60.2", 2042 + ] 2043 + 2044 + [[package]] 2045 + name = "rustls" 2046 + version = "0.23.29" 2047 + source = "registry+https://github.com/rust-lang/crates.io-index" 2048 + checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" 2049 + dependencies = [ 2050 + "once_cell", 2051 + "ring", 2052 + "rustls-pki-types", 2053 + "rustls-webpki", 2054 + "subtle", 2055 + "zeroize", 2056 + ] 2057 + 2058 + [[package]] 2059 + name = "rustls-native-certs" 2060 + version = "0.8.1" 2061 + source = "registry+https://github.com/rust-lang/crates.io-index" 2062 + checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" 2063 + dependencies = [ 2064 + "openssl-probe", 2065 + "rustls-pki-types", 2066 + "schannel", 2067 + "security-framework", 2068 + ] 2069 + 2070 + [[package]] 2071 + name = "rustls-pki-types" 2072 + version = "1.12.0" 2073 + source = "registry+https://github.com/rust-lang/crates.io-index" 2074 + checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 2075 + dependencies = [ 2076 + "web-time", 2077 + "zeroize", 2078 + ] 2079 + 2080 + [[package]] 2081 + name = "rustls-webpki" 2082 + version = "0.103.4" 2083 + source = "registry+https://github.com/rust-lang/crates.io-index" 2084 + checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" 2085 + dependencies = [ 2086 + "ring", 2087 + "rustls-pki-types", 2088 + "untrusted", 2089 + ] 2090 + 2091 + [[package]] 2092 + name = "rustversion" 2093 + version = "1.0.21" 2094 + source = "registry+https://github.com/rust-lang/crates.io-index" 2095 + checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" 2096 + 2097 + [[package]] 2098 + name = "ryu" 2099 + version = "1.0.20" 2100 + source = "registry+https://github.com/rust-lang/crates.io-index" 2101 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 2102 + 2103 + [[package]] 2104 + name = "schannel" 2105 + version = "0.1.27" 2106 + source = "registry+https://github.com/rust-lang/crates.io-index" 2107 + checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 2108 + dependencies = [ 2109 + "windows-sys 0.59.0", 2110 + ] 2111 + 2112 + [[package]] 2113 + name = "scoped-tls" 2114 + version = "1.0.1" 2115 + source = "registry+https://github.com/rust-lang/crates.io-index" 2116 + checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2117 + 2118 + [[package]] 2119 + name = "scopeguard" 2120 + version = "1.2.0" 2121 + source = "registry+https://github.com/rust-lang/crates.io-index" 2122 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2123 + 2124 + [[package]] 2125 + name = "sec1" 2126 + version = "0.7.3" 2127 + source = "registry+https://github.com/rust-lang/crates.io-index" 2128 + checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 2129 + dependencies = [ 2130 + "base16ct", 2131 + "der", 2132 + "generic-array", 2133 + "pkcs8", 2134 + "serdect", 2135 + "subtle", 2136 + "zeroize", 2137 + ] 2138 + 2139 + [[package]] 2140 + name = "security-framework" 2141 + version = "3.2.0" 2142 + source = "registry+https://github.com/rust-lang/crates.io-index" 2143 + checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" 2144 + dependencies = [ 2145 + "bitflags", 2146 + "core-foundation 0.10.1", 2147 + "core-foundation-sys", 2148 + "libc", 2149 + "security-framework-sys", 2150 + ] 2151 + 2152 + [[package]] 2153 + name = "security-framework-sys" 2154 + version = "2.14.0" 2155 + source = "registry+https://github.com/rust-lang/crates.io-index" 2156 + checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 2157 + dependencies = [ 2158 + "core-foundation-sys", 2159 + "libc", 2160 + ] 2161 + 2162 + [[package]] 2163 + name = "seize" 2164 + version = "0.5.0" 2165 + source = "registry+https://github.com/rust-lang/crates.io-index" 2166 + checksum = "e4b8d813387d566f627f3ea1b914c068aac94c40ae27ec43f5f33bde65abefe7" 2167 + dependencies = [ 2168 + "libc", 2169 + "windows-sys 0.52.0", 2170 + ] 2171 + 2172 + [[package]] 2173 + name = "self_cell" 2174 + version = "1.2.0" 2175 + source = "registry+https://github.com/rust-lang/crates.io-index" 2176 + checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" 2177 + 2178 + [[package]] 2179 + name = "semver" 2180 + version = "1.0.26" 2181 + source = "registry+https://github.com/rust-lang/crates.io-index" 2182 + checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 2183 + 2184 + [[package]] 2185 + name = "serde" 2186 + version = "1.0.219" 2187 + source = "registry+https://github.com/rust-lang/crates.io-index" 2188 + checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 2189 + dependencies = [ 2190 + "serde_derive", 2191 + ] 2192 + 2193 + [[package]] 2194 + name = "serde_bytes" 2195 + version = "0.11.17" 2196 + source = "registry+https://github.com/rust-lang/crates.io-index" 2197 + checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" 2198 + dependencies = [ 2199 + "serde", 2200 + ] 2201 + 2202 + [[package]] 2203 + name = "serde_derive" 2204 + version = "1.0.219" 2205 + source = "registry+https://github.com/rust-lang/crates.io-index" 2206 + checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 2207 + dependencies = [ 2208 + "proc-macro2", 2209 + "quote", 2210 + "syn", 2211 + ] 2212 + 2213 + [[package]] 2214 + name = "serde_ipld_dagcbor" 2215 + version = "0.6.3" 2216 + source = "registry+https://github.com/rust-lang/crates.io-index" 2217 + checksum = "99600723cf53fb000a66175555098db7e75217c415bdd9a16a65d52a19dcc4fc" 2218 + dependencies = [ 2219 + "cbor4ii", 2220 + "ipld-core", 2221 + "scopeguard", 2222 + "serde", 2223 + ] 2224 + 2225 + [[package]] 2226 + name = "serde_json" 2227 + version = "1.0.141" 2228 + source = "registry+https://github.com/rust-lang/crates.io-index" 2229 + checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" 2230 + dependencies = [ 2231 + "itoa", 2232 + "memchr", 2233 + "ryu", 2234 + "serde", 2235 + ] 2236 + 2237 + [[package]] 2238 + name = "serde_path_to_error" 2239 + version = "0.1.17" 2240 + source = "registry+https://github.com/rust-lang/crates.io-index" 2241 + checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" 2242 + dependencies = [ 2243 + "itoa", 2244 + "serde", 2245 + ] 2246 + 2247 + [[package]] 2248 + name = "serde_urlencoded" 2249 + version = "0.7.1" 2250 + source = "registry+https://github.com/rust-lang/crates.io-index" 2251 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2252 + dependencies = [ 2253 + "form_urlencoded", 2254 + "itoa", 2255 + "ryu", 2256 + "serde", 2257 + ] 2258 + 2259 + [[package]] 2260 + name = "serdect" 2261 + version = "0.2.0" 2262 + source = "registry+https://github.com/rust-lang/crates.io-index" 2263 + checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" 2264 + dependencies = [ 2265 + "base16ct", 2266 + "serde", 2267 + ] 2268 + 2269 + [[package]] 2270 + name = "server" 2271 + version = "0.1.0" 2272 + dependencies = [ 2273 + "anyhow", 2274 + "async-trait", 2275 + "atproto-jetstream", 2276 + "axum", 2277 + "fjall", 2278 + "papaya", 2279 + "rkyv", 2280 + "serde", 2281 + "smol_str", 2282 + "tokio", 2283 + "tracing", 2284 + "tracing-subscriber", 2285 + ] 2286 + 2287 + [[package]] 2288 + name = "sha2" 2289 + version = "0.10.9" 2290 + source = "registry+https://github.com/rust-lang/crates.io-index" 2291 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 2292 + dependencies = [ 2293 + "cfg-if", 2294 + "cpufeatures", 2295 + "digest", 2296 + ] 2297 + 2298 + [[package]] 2299 + name = "sharded-slab" 2300 + version = "0.1.7" 2301 + source = "registry+https://github.com/rust-lang/crates.io-index" 2302 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 2303 + dependencies = [ 2304 + "lazy_static", 2305 + ] 2306 + 2307 + [[package]] 2308 + name = "shlex" 2309 + version = "1.3.0" 2310 + source = "registry+https://github.com/rust-lang/crates.io-index" 2311 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 2312 + 2313 + [[package]] 2314 + name = "signal-hook-registry" 2315 + version = "1.4.5" 2316 + source = "registry+https://github.com/rust-lang/crates.io-index" 2317 + checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" 2318 + dependencies = [ 2319 + "libc", 2320 + ] 2321 + 2322 + [[package]] 2323 + name = "signature" 2324 + version = "2.2.0" 2325 + source = "registry+https://github.com/rust-lang/crates.io-index" 2326 + checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 2327 + dependencies = [ 2328 + "digest", 2329 + "rand_core 0.6.4", 2330 + ] 2331 + 2332 + [[package]] 2333 + name = "simdutf8" 2334 + version = "0.1.5" 2335 + source = "registry+https://github.com/rust-lang/crates.io-index" 2336 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 2337 + 2338 + [[package]] 2339 + name = "slab" 2340 + version = "0.4.10" 2341 + source = "registry+https://github.com/rust-lang/crates.io-index" 2342 + checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" 2343 + 2344 + [[package]] 2345 + name = "smallvec" 2346 + version = "1.15.1" 2347 + source = "registry+https://github.com/rust-lang/crates.io-index" 2348 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 2349 + 2350 + [[package]] 2351 + name = "smol_str" 2352 + version = "0.3.2" 2353 + source = "registry+https://github.com/rust-lang/crates.io-index" 2354 + checksum = "9676b89cd56310a87b93dec47b11af744f34d5fc9f367b829474eec0a891350d" 2355 + dependencies = [ 2356 + "borsh", 2357 + "serde", 2358 + ] 2359 + 2360 + [[package]] 2361 + name = "socket2" 2362 + version = "0.5.10" 2363 + source = "registry+https://github.com/rust-lang/crates.io-index" 2364 + checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 2365 + dependencies = [ 2366 + "libc", 2367 + "windows-sys 0.52.0", 2368 + ] 2369 + 2370 + [[package]] 2371 + name = "spki" 2372 + version = "0.7.3" 2373 + source = "registry+https://github.com/rust-lang/crates.io-index" 2374 + checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 2375 + dependencies = [ 2376 + "base64ct", 2377 + "der", 2378 + ] 2379 + 2380 + [[package]] 2381 + name = "stable_deref_trait" 2382 + version = "1.2.0" 2383 + source = "registry+https://github.com/rust-lang/crates.io-index" 2384 + checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2385 + 2386 + [[package]] 2387 + name = "std-semaphore" 2388 + version = "0.1.0" 2389 + source = "registry+https://github.com/rust-lang/crates.io-index" 2390 + checksum = "33ae9eec00137a8eed469fb4148acd9fc6ac8c3f9b110f52cd34698c8b5bfa0e" 2391 + 2392 + [[package]] 2393 + name = "subtle" 2394 + version = "2.6.1" 2395 + source = "registry+https://github.com/rust-lang/crates.io-index" 2396 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 2397 + 2398 + [[package]] 2399 + name = "syn" 2400 + version = "2.0.104" 2401 + source = "registry+https://github.com/rust-lang/crates.io-index" 2402 + checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" 2403 + dependencies = [ 2404 + "proc-macro2", 2405 + "quote", 2406 + "unicode-ident", 2407 + ] 2408 + 2409 + [[package]] 2410 + name = "sync_wrapper" 2411 + version = "1.0.2" 2412 + source = "registry+https://github.com/rust-lang/crates.io-index" 2413 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 2414 + dependencies = [ 2415 + "futures-core", 2416 + ] 2417 + 2418 + [[package]] 2419 + name = "synstructure" 2420 + version = "0.13.2" 2421 + source = "registry+https://github.com/rust-lang/crates.io-index" 2422 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 2423 + dependencies = [ 2424 + "proc-macro2", 2425 + "quote", 2426 + "syn", 2427 + ] 2428 + 2429 + [[package]] 2430 + name = "system-configuration" 2431 + version = "0.6.1" 2432 + source = "registry+https://github.com/rust-lang/crates.io-index" 2433 + checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 2434 + dependencies = [ 2435 + "bitflags", 2436 + "core-foundation 0.9.4", 2437 + "system-configuration-sys", 2438 + ] 2439 + 2440 + [[package]] 2441 + name = "system-configuration-sys" 2442 + version = "0.6.0" 2443 + source = "registry+https://github.com/rust-lang/crates.io-index" 2444 + checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 2445 + dependencies = [ 2446 + "core-foundation-sys", 2447 + "libc", 2448 + ] 2449 + 2450 + [[package]] 2451 + name = "tagptr" 2452 + version = "0.2.0" 2453 + source = "registry+https://github.com/rust-lang/crates.io-index" 2454 + checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 2455 + 2456 + [[package]] 2457 + name = "tempfile" 2458 + version = "3.20.0" 2459 + source = "registry+https://github.com/rust-lang/crates.io-index" 2460 + checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" 2461 + dependencies = [ 2462 + "fastrand", 2463 + "getrandom 0.3.3", 2464 + "once_cell", 2465 + "rustix", 2466 + "windows-sys 0.59.0", 2467 + ] 2468 + 2469 + [[package]] 2470 + name = "thiserror" 2471 + version = "1.0.69" 2472 + source = "registry+https://github.com/rust-lang/crates.io-index" 2473 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 2474 + dependencies = [ 2475 + "thiserror-impl 1.0.69", 2476 + ] 2477 + 2478 + [[package]] 2479 + name = "thiserror" 2480 + version = "2.0.12" 2481 + source = "registry+https://github.com/rust-lang/crates.io-index" 2482 + checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 2483 + dependencies = [ 2484 + "thiserror-impl 2.0.12", 2485 + ] 2486 + 2487 + [[package]] 2488 + name = "thiserror-impl" 2489 + version = "1.0.69" 2490 + source = "registry+https://github.com/rust-lang/crates.io-index" 2491 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 2492 + dependencies = [ 2493 + "proc-macro2", 2494 + "quote", 2495 + "syn", 2496 + ] 2497 + 2498 + [[package]] 2499 + name = "thiserror-impl" 2500 + version = "2.0.12" 2501 + source = "registry+https://github.com/rust-lang/crates.io-index" 2502 + checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 2503 + dependencies = [ 2504 + "proc-macro2", 2505 + "quote", 2506 + "syn", 2507 + ] 2508 + 2509 + [[package]] 2510 + name = "thread_local" 2511 + version = "1.1.9" 2512 + source = "registry+https://github.com/rust-lang/crates.io-index" 2513 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 2514 + dependencies = [ 2515 + "cfg-if", 2516 + ] 2517 + 2518 + [[package]] 2519 + name = "tinystr" 2520 + version = "0.8.1" 2521 + source = "registry+https://github.com/rust-lang/crates.io-index" 2522 + checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 2523 + dependencies = [ 2524 + "displaydoc", 2525 + "zerovec", 2526 + ] 2527 + 2528 + [[package]] 2529 + name = "tinyvec" 2530 + version = "1.9.0" 2531 + source = "registry+https://github.com/rust-lang/crates.io-index" 2532 + checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 2533 + dependencies = [ 2534 + "tinyvec_macros", 2535 + ] 2536 + 2537 + [[package]] 2538 + name = "tinyvec_macros" 2539 + version = "0.1.1" 2540 + source = "registry+https://github.com/rust-lang/crates.io-index" 2541 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2542 + 2543 + [[package]] 2544 + name = "tokio" 2545 + version = "1.46.1" 2546 + source = "registry+https://github.com/rust-lang/crates.io-index" 2547 + checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" 2548 + dependencies = [ 2549 + "backtrace", 2550 + "bytes", 2551 + "io-uring", 2552 + "libc", 2553 + "mio", 2554 + "parking_lot", 2555 + "pin-project-lite", 2556 + "signal-hook-registry", 2557 + "slab", 2558 + "socket2", 2559 + "tokio-macros", 2560 + "windows-sys 0.52.0", 2561 + ] 2562 + 2563 + [[package]] 2564 + name = "tokio-macros" 2565 + version = "2.5.0" 2566 + source = "registry+https://github.com/rust-lang/crates.io-index" 2567 + checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 2568 + dependencies = [ 2569 + "proc-macro2", 2570 + "quote", 2571 + "syn", 2572 + ] 2573 + 2574 + [[package]] 2575 + name = "tokio-rustls" 2576 + version = "0.26.2" 2577 + source = "registry+https://github.com/rust-lang/crates.io-index" 2578 + checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" 2579 + dependencies = [ 2580 + "rustls", 2581 + "tokio", 2582 + ] 2583 + 2584 + [[package]] 2585 + name = "tokio-util" 2586 + version = "0.7.15" 2587 + source = "registry+https://github.com/rust-lang/crates.io-index" 2588 + checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" 2589 + dependencies = [ 2590 + "bytes", 2591 + "futures-core", 2592 + "futures-sink", 2593 + "pin-project-lite", 2594 + "tokio", 2595 + ] 2596 + 2597 + [[package]] 2598 + name = "tokio-websockets" 2599 + version = "0.11.4" 2600 + source = "registry+https://github.com/rust-lang/crates.io-index" 2601 + checksum = "9fcaf159b4e7a376b05b5bfd77bfd38f3324f5fce751b4213bfc7eaa47affb4e" 2602 + dependencies = [ 2603 + "base64", 2604 + "bytes", 2605 + "futures-core", 2606 + "futures-sink", 2607 + "http", 2608 + "httparse", 2609 + "rand 0.9.1", 2610 + "ring", 2611 + "rustls-native-certs", 2612 + "rustls-pki-types", 2613 + "simdutf8", 2614 + "tokio", 2615 + "tokio-rustls", 2616 + "tokio-util", 2617 + ] 2618 + 2619 + [[package]] 2620 + name = "tower" 2621 + version = "0.5.2" 2622 + source = "registry+https://github.com/rust-lang/crates.io-index" 2623 + checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 2624 + dependencies = [ 2625 + "futures-core", 2626 + "futures-util", 2627 + "pin-project-lite", 2628 + "sync_wrapper", 2629 + "tokio", 2630 + "tower-layer", 2631 + "tower-service", 2632 + "tracing", 2633 + ] 2634 + 2635 + [[package]] 2636 + name = "tower-http" 2637 + version = "0.6.6" 2638 + source = "registry+https://github.com/rust-lang/crates.io-index" 2639 + checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 2640 + dependencies = [ 2641 + "bitflags", 2642 + "bytes", 2643 + "futures-util", 2644 + "http", 2645 + "http-body", 2646 + "iri-string", 2647 + "pin-project-lite", 2648 + "tower", 2649 + "tower-layer", 2650 + "tower-service", 2651 + ] 2652 + 2653 + [[package]] 2654 + name = "tower-layer" 2655 + version = "0.3.3" 2656 + source = "registry+https://github.com/rust-lang/crates.io-index" 2657 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 2658 + 2659 + [[package]] 2660 + name = "tower-service" 2661 + version = "0.3.3" 2662 + source = "registry+https://github.com/rust-lang/crates.io-index" 2663 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 2664 + 2665 + [[package]] 2666 + name = "tracing" 2667 + version = "0.1.41" 2668 + source = "registry+https://github.com/rust-lang/crates.io-index" 2669 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 2670 + dependencies = [ 2671 + "log", 2672 + "pin-project-lite", 2673 + "tracing-attributes", 2674 + "tracing-core", 2675 + ] 2676 + 2677 + [[package]] 2678 + name = "tracing-attributes" 2679 + version = "0.1.30" 2680 + source = "registry+https://github.com/rust-lang/crates.io-index" 2681 + checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 2682 + dependencies = [ 2683 + "proc-macro2", 2684 + "quote", 2685 + "syn", 2686 + ] 2687 + 2688 + [[package]] 2689 + name = "tracing-core" 2690 + version = "0.1.34" 2691 + source = "registry+https://github.com/rust-lang/crates.io-index" 2692 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 2693 + dependencies = [ 2694 + "once_cell", 2695 + "valuable", 2696 + ] 2697 + 2698 + [[package]] 2699 + name = "tracing-log" 2700 + version = "0.2.0" 2701 + source = "registry+https://github.com/rust-lang/crates.io-index" 2702 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 2703 + dependencies = [ 2704 + "log", 2705 + "once_cell", 2706 + "tracing-core", 2707 + ] 2708 + 2709 + [[package]] 2710 + name = "tracing-subscriber" 2711 + version = "0.3.19" 2712 + source = "registry+https://github.com/rust-lang/crates.io-index" 2713 + checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 2714 + dependencies = [ 2715 + "matchers", 2716 + "nu-ansi-term", 2717 + "once_cell", 2718 + "regex", 2719 + "sharded-slab", 2720 + "smallvec", 2721 + "thread_local", 2722 + "tracing", 2723 + "tracing-core", 2724 + "tracing-log", 2725 + ] 2726 + 2727 + [[package]] 2728 + name = "try-lock" 2729 + version = "0.2.5" 2730 + source = "registry+https://github.com/rust-lang/crates.io-index" 2731 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2732 + 2733 + [[package]] 2734 + name = "typenum" 2735 + version = "1.18.0" 2736 + source = "registry+https://github.com/rust-lang/crates.io-index" 2737 + checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 2738 + 2739 + [[package]] 2740 + name = "unicode-ident" 2741 + version = "1.0.18" 2742 + source = "registry+https://github.com/rust-lang/crates.io-index" 2743 + checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 2744 + 2745 + [[package]] 2746 + name = "unsigned-varint" 2747 + version = "0.8.0" 2748 + source = "registry+https://github.com/rust-lang/crates.io-index" 2749 + checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" 2750 + 2751 + [[package]] 2752 + name = "untrusted" 2753 + version = "0.9.0" 2754 + source = "registry+https://github.com/rust-lang/crates.io-index" 2755 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 2756 + 2757 + [[package]] 2758 + name = "url" 2759 + version = "2.5.4" 2760 + source = "registry+https://github.com/rust-lang/crates.io-index" 2761 + checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2762 + dependencies = [ 2763 + "form_urlencoded", 2764 + "idna", 2765 + "percent-encoding", 2766 + ] 2767 + 2768 + [[package]] 2769 + name = "urlencoding" 2770 + version = "2.1.3" 2771 + source = "registry+https://github.com/rust-lang/crates.io-index" 2772 + checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" 2773 + 2774 + [[package]] 2775 + name = "utf8_iter" 2776 + version = "1.0.4" 2777 + source = "registry+https://github.com/rust-lang/crates.io-index" 2778 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2779 + 2780 + [[package]] 2781 + name = "uuid" 2782 + version = "1.17.0" 2783 + source = "registry+https://github.com/rust-lang/crates.io-index" 2784 + checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" 2785 + dependencies = [ 2786 + "getrandom 0.3.3", 2787 + "js-sys", 2788 + "wasm-bindgen", 2789 + ] 2790 + 2791 + [[package]] 2792 + name = "valuable" 2793 + version = "0.1.1" 2794 + source = "registry+https://github.com/rust-lang/crates.io-index" 2795 + checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 2796 + 2797 + [[package]] 2798 + name = "value-log" 2799 + version = "1.9.0" 2800 + source = "registry+https://github.com/rust-lang/crates.io-index" 2801 + checksum = "62fc7c4ce161f049607ecea654dca3f2d727da5371ae85e2e4f14ce2b98ed67c" 2802 + dependencies = [ 2803 + "byteorder", 2804 + "byteview", 2805 + "interval-heap", 2806 + "log", 2807 + "path-absolutize", 2808 + "rustc-hash", 2809 + "tempfile", 2810 + "varint-rs", 2811 + "xxhash-rust", 2812 + ] 2813 + 2814 + [[package]] 2815 + name = "varint-rs" 2816 + version = "2.2.0" 2817 + source = "registry+https://github.com/rust-lang/crates.io-index" 2818 + checksum = "8f54a172d0620933a27a4360d3db3e2ae0dd6cceae9730751a036bbf182c4b23" 2819 + 2820 + [[package]] 2821 + name = "version_check" 2822 + version = "0.9.5" 2823 + source = "registry+https://github.com/rust-lang/crates.io-index" 2824 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2825 + 2826 + [[package]] 2827 + name = "want" 2828 + version = "0.3.1" 2829 + source = "registry+https://github.com/rust-lang/crates.io-index" 2830 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 2831 + dependencies = [ 2832 + "try-lock", 2833 + ] 2834 + 2835 + [[package]] 2836 + name = "wasi" 2837 + version = "0.11.1+wasi-snapshot-preview1" 2838 + source = "registry+https://github.com/rust-lang/crates.io-index" 2839 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 2840 + 2841 + [[package]] 2842 + name = "wasi" 2843 + version = "0.14.2+wasi-0.2.4" 2844 + source = "registry+https://github.com/rust-lang/crates.io-index" 2845 + checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2846 + dependencies = [ 2847 + "wit-bindgen-rt", 2848 + ] 2849 + 2850 + [[package]] 2851 + name = "wasm-bindgen" 2852 + version = "0.2.100" 2853 + source = "registry+https://github.com/rust-lang/crates.io-index" 2854 + checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 2855 + dependencies = [ 2856 + "cfg-if", 2857 + "once_cell", 2858 + "rustversion", 2859 + "wasm-bindgen-macro", 2860 + ] 2861 + 2862 + [[package]] 2863 + name = "wasm-bindgen-backend" 2864 + version = "0.2.100" 2865 + source = "registry+https://github.com/rust-lang/crates.io-index" 2866 + checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 2867 + dependencies = [ 2868 + "bumpalo", 2869 + "log", 2870 + "proc-macro2", 2871 + "quote", 2872 + "syn", 2873 + "wasm-bindgen-shared", 2874 + ] 2875 + 2876 + [[package]] 2877 + name = "wasm-bindgen-futures" 2878 + version = "0.4.50" 2879 + source = "registry+https://github.com/rust-lang/crates.io-index" 2880 + checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 2881 + dependencies = [ 2882 + "cfg-if", 2883 + "js-sys", 2884 + "once_cell", 2885 + "wasm-bindgen", 2886 + "web-sys", 2887 + ] 2888 + 2889 + [[package]] 2890 + name = "wasm-bindgen-macro" 2891 + version = "0.2.100" 2892 + source = "registry+https://github.com/rust-lang/crates.io-index" 2893 + checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 2894 + dependencies = [ 2895 + "quote", 2896 + "wasm-bindgen-macro-support", 2897 + ] 2898 + 2899 + [[package]] 2900 + name = "wasm-bindgen-macro-support" 2901 + version = "0.2.100" 2902 + source = "registry+https://github.com/rust-lang/crates.io-index" 2903 + checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 2904 + dependencies = [ 2905 + "proc-macro2", 2906 + "quote", 2907 + "syn", 2908 + "wasm-bindgen-backend", 2909 + "wasm-bindgen-shared", 2910 + ] 2911 + 2912 + [[package]] 2913 + name = "wasm-bindgen-shared" 2914 + version = "0.2.100" 2915 + source = "registry+https://github.com/rust-lang/crates.io-index" 2916 + checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 2917 + dependencies = [ 2918 + "unicode-ident", 2919 + ] 2920 + 2921 + [[package]] 2922 + name = "web-sys" 2923 + version = "0.3.77" 2924 + source = "registry+https://github.com/rust-lang/crates.io-index" 2925 + checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 2926 + dependencies = [ 2927 + "js-sys", 2928 + "wasm-bindgen", 2929 + ] 2930 + 2931 + [[package]] 2932 + name = "web-time" 2933 + version = "1.1.0" 2934 + source = "registry+https://github.com/rust-lang/crates.io-index" 2935 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 2936 + dependencies = [ 2937 + "js-sys", 2938 + "wasm-bindgen", 2939 + ] 2940 + 2941 + [[package]] 2942 + name = "webpki-roots" 2943 + version = "1.0.2" 2944 + source = "registry+https://github.com/rust-lang/crates.io-index" 2945 + checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" 2946 + dependencies = [ 2947 + "rustls-pki-types", 2948 + ] 2949 + 2950 + [[package]] 2951 + name = "widestring" 2952 + version = "1.2.0" 2953 + source = "registry+https://github.com/rust-lang/crates.io-index" 2954 + checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" 2955 + 2956 + [[package]] 2957 + name = "winapi" 2958 + version = "0.3.9" 2959 + source = "registry+https://github.com/rust-lang/crates.io-index" 2960 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2961 + dependencies = [ 2962 + "winapi-i686-pc-windows-gnu", 2963 + "winapi-x86_64-pc-windows-gnu", 2964 + ] 2965 + 2966 + [[package]] 2967 + name = "winapi-i686-pc-windows-gnu" 2968 + version = "0.4.0" 2969 + source = "registry+https://github.com/rust-lang/crates.io-index" 2970 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2971 + 2972 + [[package]] 2973 + name = "winapi-x86_64-pc-windows-gnu" 2974 + version = "0.4.0" 2975 + source = "registry+https://github.com/rust-lang/crates.io-index" 2976 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2977 + 2978 + [[package]] 2979 + name = "windows" 2980 + version = "0.61.3" 2981 + source = "registry+https://github.com/rust-lang/crates.io-index" 2982 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 2983 + dependencies = [ 2984 + "windows-collections", 2985 + "windows-core", 2986 + "windows-future", 2987 + "windows-link", 2988 + "windows-numerics", 2989 + ] 2990 + 2991 + [[package]] 2992 + name = "windows-collections" 2993 + version = "0.2.0" 2994 + source = "registry+https://github.com/rust-lang/crates.io-index" 2995 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 2996 + dependencies = [ 2997 + "windows-core", 2998 + ] 2999 + 3000 + [[package]] 3001 + name = "windows-core" 3002 + version = "0.61.2" 3003 + source = "registry+https://github.com/rust-lang/crates.io-index" 3004 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 3005 + dependencies = [ 3006 + "windows-implement", 3007 + "windows-interface", 3008 + "windows-link", 3009 + "windows-result", 3010 + "windows-strings", 3011 + ] 3012 + 3013 + [[package]] 3014 + name = "windows-future" 3015 + version = "0.2.1" 3016 + source = "registry+https://github.com/rust-lang/crates.io-index" 3017 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 3018 + dependencies = [ 3019 + "windows-core", 3020 + "windows-link", 3021 + "windows-threading", 3022 + ] 3023 + 3024 + [[package]] 3025 + name = "windows-implement" 3026 + version = "0.60.0" 3027 + source = "registry+https://github.com/rust-lang/crates.io-index" 3028 + checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" 3029 + dependencies = [ 3030 + "proc-macro2", 3031 + "quote", 3032 + "syn", 3033 + ] 3034 + 3035 + [[package]] 3036 + name = "windows-interface" 3037 + version = "0.59.1" 3038 + source = "registry+https://github.com/rust-lang/crates.io-index" 3039 + checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" 3040 + dependencies = [ 3041 + "proc-macro2", 3042 + "quote", 3043 + "syn", 3044 + ] 3045 + 3046 + [[package]] 3047 + name = "windows-link" 3048 + version = "0.1.3" 3049 + source = "registry+https://github.com/rust-lang/crates.io-index" 3050 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 3051 + 3052 + [[package]] 3053 + name = "windows-numerics" 3054 + version = "0.2.0" 3055 + source = "registry+https://github.com/rust-lang/crates.io-index" 3056 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 3057 + dependencies = [ 3058 + "windows-core", 3059 + "windows-link", 3060 + ] 3061 + 3062 + [[package]] 3063 + name = "windows-registry" 3064 + version = "0.5.3" 3065 + source = "registry+https://github.com/rust-lang/crates.io-index" 3066 + checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" 3067 + dependencies = [ 3068 + "windows-link", 3069 + "windows-result", 3070 + "windows-strings", 3071 + ] 3072 + 3073 + [[package]] 3074 + name = "windows-result" 3075 + version = "0.3.4" 3076 + source = "registry+https://github.com/rust-lang/crates.io-index" 3077 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 3078 + dependencies = [ 3079 + "windows-link", 3080 + ] 3081 + 3082 + [[package]] 3083 + name = "windows-strings" 3084 + version = "0.4.2" 3085 + source = "registry+https://github.com/rust-lang/crates.io-index" 3086 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 3087 + dependencies = [ 3088 + "windows-link", 3089 + ] 3090 + 3091 + [[package]] 3092 + name = "windows-sys" 3093 + version = "0.48.0" 3094 + source = "registry+https://github.com/rust-lang/crates.io-index" 3095 + checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3096 + dependencies = [ 3097 + "windows-targets 0.48.5", 3098 + ] 3099 + 3100 + [[package]] 3101 + name = "windows-sys" 3102 + version = "0.52.0" 3103 + source = "registry+https://github.com/rust-lang/crates.io-index" 3104 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3105 + dependencies = [ 3106 + "windows-targets 0.52.6", 3107 + ] 3108 + 3109 + [[package]] 3110 + name = "windows-sys" 3111 + version = "0.59.0" 3112 + source = "registry+https://github.com/rust-lang/crates.io-index" 3113 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 3114 + dependencies = [ 3115 + "windows-targets 0.52.6", 3116 + ] 3117 + 3118 + [[package]] 3119 + name = "windows-sys" 3120 + version = "0.60.2" 3121 + source = "registry+https://github.com/rust-lang/crates.io-index" 3122 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 3123 + dependencies = [ 3124 + "windows-targets 0.53.2", 3125 + ] 3126 + 3127 + [[package]] 3128 + name = "windows-targets" 3129 + version = "0.48.5" 3130 + source = "registry+https://github.com/rust-lang/crates.io-index" 3131 + checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3132 + dependencies = [ 3133 + "windows_aarch64_gnullvm 0.48.5", 3134 + "windows_aarch64_msvc 0.48.5", 3135 + "windows_i686_gnu 0.48.5", 3136 + "windows_i686_msvc 0.48.5", 3137 + "windows_x86_64_gnu 0.48.5", 3138 + "windows_x86_64_gnullvm 0.48.5", 3139 + "windows_x86_64_msvc 0.48.5", 3140 + ] 3141 + 3142 + [[package]] 3143 + name = "windows-targets" 3144 + version = "0.52.6" 3145 + source = "registry+https://github.com/rust-lang/crates.io-index" 3146 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 3147 + dependencies = [ 3148 + "windows_aarch64_gnullvm 0.52.6", 3149 + "windows_aarch64_msvc 0.52.6", 3150 + "windows_i686_gnu 0.52.6", 3151 + "windows_i686_gnullvm 0.52.6", 3152 + "windows_i686_msvc 0.52.6", 3153 + "windows_x86_64_gnu 0.52.6", 3154 + "windows_x86_64_gnullvm 0.52.6", 3155 + "windows_x86_64_msvc 0.52.6", 3156 + ] 3157 + 3158 + [[package]] 3159 + name = "windows-targets" 3160 + version = "0.53.2" 3161 + source = "registry+https://github.com/rust-lang/crates.io-index" 3162 + checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" 3163 + dependencies = [ 3164 + "windows_aarch64_gnullvm 0.53.0", 3165 + "windows_aarch64_msvc 0.53.0", 3166 + "windows_i686_gnu 0.53.0", 3167 + "windows_i686_gnullvm 0.53.0", 3168 + "windows_i686_msvc 0.53.0", 3169 + "windows_x86_64_gnu 0.53.0", 3170 + "windows_x86_64_gnullvm 0.53.0", 3171 + "windows_x86_64_msvc 0.53.0", 3172 + ] 3173 + 3174 + [[package]] 3175 + name = "windows-threading" 3176 + version = "0.1.0" 3177 + source = "registry+https://github.com/rust-lang/crates.io-index" 3178 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 3179 + dependencies = [ 3180 + "windows-link", 3181 + ] 3182 + 3183 + [[package]] 3184 + name = "windows_aarch64_gnullvm" 3185 + version = "0.48.5" 3186 + source = "registry+https://github.com/rust-lang/crates.io-index" 3187 + checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3188 + 3189 + [[package]] 3190 + name = "windows_aarch64_gnullvm" 3191 + version = "0.52.6" 3192 + source = "registry+https://github.com/rust-lang/crates.io-index" 3193 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 3194 + 3195 + [[package]] 3196 + name = "windows_aarch64_gnullvm" 3197 + version = "0.53.0" 3198 + source = "registry+https://github.com/rust-lang/crates.io-index" 3199 + checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 3200 + 3201 + [[package]] 3202 + name = "windows_aarch64_msvc" 3203 + version = "0.48.5" 3204 + source = "registry+https://github.com/rust-lang/crates.io-index" 3205 + checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3206 + 3207 + [[package]] 3208 + name = "windows_aarch64_msvc" 3209 + version = "0.52.6" 3210 + source = "registry+https://github.com/rust-lang/crates.io-index" 3211 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3212 + 3213 + [[package]] 3214 + name = "windows_aarch64_msvc" 3215 + version = "0.53.0" 3216 + source = "registry+https://github.com/rust-lang/crates.io-index" 3217 + checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 3218 + 3219 + [[package]] 3220 + name = "windows_i686_gnu" 3221 + version = "0.48.5" 3222 + source = "registry+https://github.com/rust-lang/crates.io-index" 3223 + checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3224 + 3225 + [[package]] 3226 + name = "windows_i686_gnu" 3227 + version = "0.52.6" 3228 + source = "registry+https://github.com/rust-lang/crates.io-index" 3229 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3230 + 3231 + [[package]] 3232 + name = "windows_i686_gnu" 3233 + version = "0.53.0" 3234 + source = "registry+https://github.com/rust-lang/crates.io-index" 3235 + checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 3236 + 3237 + [[package]] 3238 + name = "windows_i686_gnullvm" 3239 + version = "0.52.6" 3240 + source = "registry+https://github.com/rust-lang/crates.io-index" 3241 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3242 + 3243 + [[package]] 3244 + name = "windows_i686_gnullvm" 3245 + version = "0.53.0" 3246 + source = "registry+https://github.com/rust-lang/crates.io-index" 3247 + checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 3248 + 3249 + [[package]] 3250 + name = "windows_i686_msvc" 3251 + version = "0.48.5" 3252 + source = "registry+https://github.com/rust-lang/crates.io-index" 3253 + checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3254 + 3255 + [[package]] 3256 + name = "windows_i686_msvc" 3257 + version = "0.52.6" 3258 + source = "registry+https://github.com/rust-lang/crates.io-index" 3259 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3260 + 3261 + [[package]] 3262 + name = "windows_i686_msvc" 3263 + version = "0.53.0" 3264 + source = "registry+https://github.com/rust-lang/crates.io-index" 3265 + checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 3266 + 3267 + [[package]] 3268 + name = "windows_x86_64_gnu" 3269 + version = "0.48.5" 3270 + source = "registry+https://github.com/rust-lang/crates.io-index" 3271 + checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3272 + 3273 + [[package]] 3274 + name = "windows_x86_64_gnu" 3275 + version = "0.52.6" 3276 + source = "registry+https://github.com/rust-lang/crates.io-index" 3277 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3278 + 3279 + [[package]] 3280 + name = "windows_x86_64_gnu" 3281 + version = "0.53.0" 3282 + source = "registry+https://github.com/rust-lang/crates.io-index" 3283 + checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 3284 + 3285 + [[package]] 3286 + name = "windows_x86_64_gnullvm" 3287 + version = "0.48.5" 3288 + source = "registry+https://github.com/rust-lang/crates.io-index" 3289 + checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3290 + 3291 + [[package]] 3292 + name = "windows_x86_64_gnullvm" 3293 + version = "0.52.6" 3294 + source = "registry+https://github.com/rust-lang/crates.io-index" 3295 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3296 + 3297 + [[package]] 3298 + name = "windows_x86_64_gnullvm" 3299 + version = "0.53.0" 3300 + source = "registry+https://github.com/rust-lang/crates.io-index" 3301 + checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 3302 + 3303 + [[package]] 3304 + name = "windows_x86_64_msvc" 3305 + version = "0.48.5" 3306 + source = "registry+https://github.com/rust-lang/crates.io-index" 3307 + checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 3308 + 3309 + [[package]] 3310 + name = "windows_x86_64_msvc" 3311 + version = "0.52.6" 3312 + source = "registry+https://github.com/rust-lang/crates.io-index" 3313 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3314 + 3315 + [[package]] 3316 + name = "windows_x86_64_msvc" 3317 + version = "0.53.0" 3318 + source = "registry+https://github.com/rust-lang/crates.io-index" 3319 + checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 3320 + 3321 + [[package]] 3322 + name = "winreg" 3323 + version = "0.50.0" 3324 + source = "registry+https://github.com/rust-lang/crates.io-index" 3325 + checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 3326 + dependencies = [ 3327 + "cfg-if", 3328 + "windows-sys 0.48.0", 3329 + ] 3330 + 3331 + [[package]] 3332 + name = "wit-bindgen-rt" 3333 + version = "0.39.0" 3334 + source = "registry+https://github.com/rust-lang/crates.io-index" 3335 + checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 3336 + dependencies = [ 3337 + "bitflags", 3338 + ] 3339 + 3340 + [[package]] 3341 + name = "writeable" 3342 + version = "0.6.1" 3343 + source = "registry+https://github.com/rust-lang/crates.io-index" 3344 + checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 3345 + 3346 + [[package]] 3347 + name = "xxhash-rust" 3348 + version = "0.8.15" 3349 + source = "registry+https://github.com/rust-lang/crates.io-index" 3350 + checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" 3351 + 3352 + [[package]] 3353 + name = "yoke" 3354 + version = "0.8.0" 3355 + source = "registry+https://github.com/rust-lang/crates.io-index" 3356 + checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 3357 + dependencies = [ 3358 + "serde", 3359 + "stable_deref_trait", 3360 + "yoke-derive", 3361 + "zerofrom", 3362 + ] 3363 + 3364 + [[package]] 3365 + name = "yoke-derive" 3366 + version = "0.8.0" 3367 + source = "registry+https://github.com/rust-lang/crates.io-index" 3368 + checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 3369 + dependencies = [ 3370 + "proc-macro2", 3371 + "quote", 3372 + "syn", 3373 + "synstructure", 3374 + ] 3375 + 3376 + [[package]] 3377 + name = "zerocopy" 3378 + version = "0.8.26" 3379 + source = "registry+https://github.com/rust-lang/crates.io-index" 3380 + checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 3381 + dependencies = [ 3382 + "zerocopy-derive", 3383 + ] 3384 + 3385 + [[package]] 3386 + name = "zerocopy-derive" 3387 + version = "0.8.26" 3388 + source = "registry+https://github.com/rust-lang/crates.io-index" 3389 + checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 3390 + dependencies = [ 3391 + "proc-macro2", 3392 + "quote", 3393 + "syn", 3394 + ] 3395 + 3396 + [[package]] 3397 + name = "zerofrom" 3398 + version = "0.1.6" 3399 + source = "registry+https://github.com/rust-lang/crates.io-index" 3400 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 3401 + dependencies = [ 3402 + "zerofrom-derive", 3403 + ] 3404 + 3405 + [[package]] 3406 + name = "zerofrom-derive" 3407 + version = "0.1.6" 3408 + source = "registry+https://github.com/rust-lang/crates.io-index" 3409 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 3410 + dependencies = [ 3411 + "proc-macro2", 3412 + "quote", 3413 + "syn", 3414 + "synstructure", 3415 + ] 3416 + 3417 + [[package]] 3418 + name = "zeroize" 3419 + version = "1.8.1" 3420 + source = "registry+https://github.com/rust-lang/crates.io-index" 3421 + checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 3422 + 3423 + [[package]] 3424 + name = "zerotrie" 3425 + version = "0.2.2" 3426 + source = "registry+https://github.com/rust-lang/crates.io-index" 3427 + checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 3428 + dependencies = [ 3429 + "displaydoc", 3430 + "yoke", 3431 + "zerofrom", 3432 + ] 3433 + 3434 + [[package]] 3435 + name = "zerovec" 3436 + version = "0.11.2" 3437 + source = "registry+https://github.com/rust-lang/crates.io-index" 3438 + checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" 3439 + dependencies = [ 3440 + "yoke", 3441 + "zerofrom", 3442 + "zerovec-derive", 3443 + ] 3444 + 3445 + [[package]] 3446 + name = "zerovec-derive" 3447 + version = "0.11.1" 3448 + source = "registry+https://github.com/rust-lang/crates.io-index" 3449 + checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 3450 + dependencies = [ 3451 + "proc-macro2", 3452 + "quote", 3453 + "syn", 3454 + ] 3455 + 3456 + [[package]] 3457 + name = "zstd" 3458 + version = "0.13.3" 3459 + source = "registry+https://github.com/rust-lang/crates.io-index" 3460 + checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" 3461 + dependencies = [ 3462 + "zstd-safe", 3463 + ] 3464 + 3465 + [[package]] 3466 + name = "zstd-safe" 3467 + version = "7.2.4" 3468 + source = "registry+https://github.com/rust-lang/crates.io-index" 3469 + checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" 3470 + dependencies = [ 3471 + "zstd-sys", 3472 + ] 3473 + 3474 + [[package]] 3475 + name = "zstd-sys" 3476 + version = "2.0.15+zstd.1.5.7" 3477 + source = "registry+https://github.com/rust-lang/crates.io-index" 3478 + checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" 3479 + dependencies = [ 3480 + "cc", 3481 + "pkg-config", 3482 + ]
+18
server/Cargo.toml
··· 1 + [package] 2 + name = "server" 3 + version = "0.1.0" 4 + edition = "2024" 5 + 6 + [dependencies] 7 + anyhow = "1.0" 8 + async-trait = "0.1" 9 + tracing-subscriber = "0.3" 10 + tracing = "0.1" 11 + tokio = { version = "1", features = ["full"] } 12 + axum = { version = "0.8", features = ["json"] } 13 + atproto-jetstream = "0.9" 14 + fjall = "2" 15 + rkyv = {version = "0.8", features = ["unaligned"]} 16 + smol_str = { version = "0.3", features = ["serde"] } 17 + papaya = "0.2" 18 + serde = "1"
+41
server/src/api.rs
··· 1 + use std::sync::Arc; 2 + 3 + use axum::{Json, Router, extract::State, routing::get}; 4 + use serde::Serialize; 5 + use smol_str::SmolStr; 6 + 7 + use crate::{db::Db, error::AppResult}; 8 + 9 + pub async fn serve(db: Arc<Db>) { 10 + let app = Router::new().route("/events", get(events)).with_state(db); 11 + 12 + let addr = "0.0.0.0:3123"; 13 + let listener = tokio::net::TcpListener::bind(addr).await.unwrap(); 14 + tracing::info!("starting serve on {addr}"); 15 + axum::serve(listener, app).await.unwrap(); 16 + } 17 + 18 + #[derive(Serialize)] 19 + struct NsidCount { 20 + nsid: SmolStr, 21 + count: u128, 22 + deleted_count: u128, 23 + last_seen: u64, 24 + } 25 + #[derive(Serialize)] 26 + struct Events { 27 + events: Vec<NsidCount>, 28 + } 29 + async fn events(db: State<Arc<Db>>) -> AppResult<Json<Events>> { 30 + let mut events = Vec::new(); 31 + for result in db.get_counts() { 32 + let (nsid, counts) = result?; 33 + events.push(NsidCount { 34 + nsid, 35 + count: counts.count, 36 + deleted_count: counts.deleted_count, 37 + last_seen: counts.last_seen, 38 + }) 39 + } 40 + Ok(Json(Events { events })) 41 + }
+104
server/src/db.rs
··· 1 + use fjall::{Config, Keyspace, Partition, PartitionCreateOptions}; 2 + use rkyv::{Archive, Deserialize, Serialize, rancor::Error}; 3 + use smol_str::SmolStr; 4 + 5 + use crate::error::{AppError, AppResult}; 6 + 7 + #[derive(Debug, Default, Archive, Deserialize, Serialize, PartialEq)] 8 + #[rkyv(compare(PartialEq), derive(Debug))] 9 + pub struct NsidCounts { 10 + pub count: u128, 11 + pub deleted_count: u128, 12 + pub last_seen: u64, 13 + } 14 + 15 + #[derive(Debug, Default, Archive, Deserialize, Serialize, PartialEq)] 16 + #[rkyv(compare(PartialEq), derive(Debug))] 17 + pub struct NsidHit { 18 + pub deleted: bool, 19 + } 20 + 21 + pub struct Db { 22 + inner: Keyspace, 23 + hits: papaya::HashMap<SmolStr, Partition>, 24 + counts: Partition, 25 + } 26 + 27 + impl Db { 28 + pub fn new() -> AppResult<Self> { 29 + tracing::info!("opening db..."); 30 + let inner = Keyspace::open(Config::default())?; 31 + Ok(Self { 32 + hits: Default::default(), 33 + counts: inner.open_partition("_counts", PartitionCreateOptions::default())?, 34 + inner, 35 + }) 36 + } 37 + 38 + #[inline(always)] 39 + fn run_in_nsid_tree( 40 + &self, 41 + nsid: &str, 42 + f: impl FnOnce(&Partition) -> AppResult<()>, 43 + ) -> AppResult<()> { 44 + f(self.hits.pin().get_or_insert_with(SmolStr::new(nsid), || { 45 + self.inner 46 + .open_partition(nsid, PartitionCreateOptions::default()) 47 + .unwrap() 48 + })) 49 + } 50 + 51 + pub fn record_event(&self, nsid: &str, timestamp: u64, deleted: bool) -> AppResult<()> { 52 + self.insert_event(nsid, timestamp, deleted)?; 53 + // increment count 54 + let mut counts = self.get_count(nsid)?; 55 + counts.last_seen = timestamp; 56 + if deleted { 57 + counts.deleted_count += 1; 58 + } else { 59 + counts.count += 1; 60 + } 61 + self.insert_count(nsid, counts)?; 62 + Ok(()) 63 + } 64 + 65 + #[inline(always)] 66 + fn insert_event(&self, nsid: &str, timestamp: u64, deleted: bool) -> AppResult<()> { 67 + self.run_in_nsid_tree(nsid, |tree| { 68 + tree.insert( 69 + timestamp.to_be_bytes(), 70 + unsafe { rkyv::to_bytes::<Error>(&NsidHit { deleted }).unwrap_unchecked() } 71 + .as_slice(), 72 + ) 73 + .map_err(AppError::from) 74 + }) 75 + } 76 + 77 + #[inline(always)] 78 + fn insert_count(&self, nsid: &str, counts: NsidCounts) -> AppResult<()> { 79 + self.counts 80 + .insert( 81 + nsid, 82 + unsafe { rkyv::to_bytes::<Error>(&counts).unwrap_unchecked() }.as_slice(), 83 + ) 84 + .map_err(AppError::from) 85 + } 86 + 87 + pub fn get_count(&self, nsid: &str) -> AppResult<NsidCounts> { 88 + let Some(raw) = self.counts.get(nsid)? else { 89 + return Ok(NsidCounts::default()); 90 + }; 91 + Ok(unsafe { rkyv::from_bytes_unchecked::<_, Error>(&raw).unwrap_unchecked() }) 92 + } 93 + 94 + pub fn get_counts(&self) -> impl Iterator<Item = AppResult<(SmolStr, NsidCounts)>> { 95 + self.counts.iter().map(|res| { 96 + res.map_err(AppError::from).map(|(key, val)| { 97 + ( 98 + SmolStr::new(unsafe { str::from_utf8_unchecked(&key) }), 99 + unsafe { rkyv::from_bytes_unchecked::<_, Error>(&val).unwrap_unchecked() }, 100 + ) 101 + }) 102 + }) 103 + } 104 + }
+41
server/src/error.rs
··· 1 + use std::{error::Error, fmt::Display}; 2 + 3 + use axum::{Json, http::StatusCode, response::IntoResponse}; 4 + use serde::Serialize; 5 + 6 + #[derive(Debug)] 7 + pub struct AppError { 8 + inner: Box<dyn Error + Send + 'static>, 9 + } 10 + 11 + impl Display for AppError { 12 + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 13 + write!(f, "{}", self.inner) 14 + } 15 + } 16 + 17 + impl<E: Error + Send + 'static> From<E> for AppError { 18 + fn from(value: E) -> Self { 19 + Self { 20 + inner: Box::new(value), 21 + } 22 + } 23 + } 24 + 25 + #[derive(Serialize)] 26 + struct ErrorBody { 27 + error: String, 28 + } 29 + impl IntoResponse for AppError { 30 + fn into_response(self) -> axum::response::Response { 31 + ( 32 + StatusCode::INTERNAL_SERVER_ERROR, 33 + Json(ErrorBody { 34 + error: self.inner.to_string(), 35 + }), 36 + ) 37 + .into_response() 38 + } 39 + } 40 + 41 + pub type AppResult<T> = Result<T, AppError>;
+73
server/src/main.rs
··· 1 + use std::sync::Arc; 2 + 3 + use atproto_jetstream::{CancellationToken, Consumer, EventHandler, JetstreamEvent}; 4 + 5 + use crate::{api::serve, db::Db}; 6 + 7 + mod api; 8 + mod db; 9 + mod error; 10 + 11 + struct JetstreamHandler { 12 + db: Arc<Db>, 13 + } 14 + 15 + #[async_trait::async_trait] 16 + impl EventHandler for JetstreamHandler { 17 + async fn handle_event(&self, event: JetstreamEvent) -> anyhow::Result<()> { 18 + let db = self.db.clone(); 19 + tokio::task::spawn_blocking(move || { 20 + let result = match event { 21 + JetstreamEvent::Commit { 22 + time_us, commit, .. 23 + } => db.record_event(&commit.collection, time_us, false), 24 + JetstreamEvent::Delete { 25 + time_us, commit, .. 26 + } => db.record_event(&commit.collection, time_us, true), 27 + _ => Ok(()), 28 + }; 29 + if let Err(err) = result { 30 + tracing::error!("couldn't record event: {err}"); 31 + } 32 + }); 33 + Ok(()) 34 + } 35 + 36 + fn handler_id(&self) -> String { 37 + "handler".to_string() 38 + } 39 + } 40 + 41 + #[tokio::main] 42 + async fn main() { 43 + tracing_subscriber::fmt::init(); 44 + 45 + let db = Arc::new(Db::new().expect("couldnt create db")); 46 + 47 + let consumer = Consumer::new(atproto_jetstream::ConsumerTaskConfig { 48 + compression: false, 49 + jetstream_hostname: "jetstream2.us-west.bsky.network".into(), 50 + collections: Vec::new(), 51 + dids: Vec::new(), 52 + max_message_size_bytes: None, 53 + cursor: None, 54 + require_hello: true, 55 + zstd_dictionary_location: String::new(), 56 + user_agent: "nsid-tracker/0.0.1".into(), 57 + }); 58 + 59 + tracing::info!("running jetstream consumer..."); 60 + let cancel_token = CancellationToken::new(); 61 + tokio::spawn({ 62 + let db = db.clone(); 63 + async move { 64 + consumer 65 + .register_handler(Arc::new(JetstreamHandler { db })) 66 + .await 67 + .unwrap(); 68 + consumer.run_background(cancel_token.clone()).await.unwrap(); 69 + } 70 + }); 71 + 72 + serve(db).await; 73 + }