Server tools to backfill, tail, mirror, and verify PLC logs

fjall: use msgpack for storing DbOps, and store the decoded did bytes

ptr.pet 17e48d10 5a65e563

verified
+981 -652
+888 -588
Cargo.lock
··· 3 3 version = 4 4 4 5 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 6 name = "adler2" 16 7 version = "2.0.1" 17 8 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 19 10 20 11 [[package]] 21 12 name = "aho-corasick" 22 - version = "1.1.3" 13 + version = "1.1.4" 23 14 source = "registry+https://github.com/rust-lang/crates.io-index" 24 - checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 15 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 25 16 dependencies = [ 26 17 "memchr", 27 18 ] ··· 33 24 "anyhow", 34 25 "async-compression", 35 26 "async-trait", 27 + "bincode", 36 28 "chrono", 37 29 "cid", 38 30 "clap", 31 + "criterion", 39 32 "data-encoding", 40 33 "fjall", 41 34 "futures", ··· 51 44 "reqwest", 52 45 "reqwest-middleware", 53 46 "reqwest-retry", 47 + "rmp-serde", 54 48 "rustls", 55 49 "serde", 50 + "serde_bytes", 56 51 "serde_json", 57 52 "tempfile", 58 - "thiserror 2.0.16", 53 + "thiserror 2.0.18", 59 54 "tokio", 60 55 "tokio-postgres", 61 56 "tokio-stream", ··· 81 76 ] 82 77 83 78 [[package]] 79 + name = "alloca" 80 + version = "0.4.0" 81 + source = "registry+https://github.com/rust-lang/crates.io-index" 82 + checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" 83 + dependencies = [ 84 + "cc", 85 + ] 86 + 87 + [[package]] 84 88 name = "allocator-api2" 85 89 version = "0.2.21" 86 90 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 96 100 ] 97 101 98 102 [[package]] 103 + name = "anes" 104 + version = "0.1.6" 105 + source = "registry+https://github.com/rust-lang/crates.io-index" 106 + checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" 107 + 108 + [[package]] 99 109 name = "anstream" 100 - version = "0.6.20" 110 + version = "0.6.21" 101 111 source = "registry+https://github.com/rust-lang/crates.io-index" 102 - checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" 112 + checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" 103 113 dependencies = [ 104 114 "anstyle", 105 115 "anstyle-parse", ··· 112 122 113 123 [[package]] 114 124 name = "anstyle" 115 - version = "1.0.11" 125 + version = "1.0.13" 116 126 source = "registry+https://github.com/rust-lang/crates.io-index" 117 - checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" 127 + checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" 118 128 119 129 [[package]] 120 130 name = "anstyle-parse" ··· 127 137 128 138 [[package]] 129 139 name = "anstyle-query" 130 - version = "1.1.4" 140 + version = "1.1.5" 131 141 source = "registry+https://github.com/rust-lang/crates.io-index" 132 - checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" 142 + checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 133 143 dependencies = [ 134 - "windows-sys 0.60.2", 144 + "windows-sys 0.61.2", 135 145 ] 136 146 137 147 [[package]] 138 148 name = "anstyle-wincon" 139 - version = "3.0.10" 149 + version = "3.0.11" 140 150 source = "registry+https://github.com/rust-lang/crates.io-index" 141 - checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" 151 + checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 142 152 dependencies = [ 143 153 "anstyle", 144 154 "once_cell_polyfill", 145 - "windows-sys 0.60.2", 155 + "windows-sys 0.61.2", 146 156 ] 147 157 148 158 [[package]] 149 159 name = "anyhow" 150 - version = "1.0.99" 160 + version = "1.0.102" 151 161 source = "registry+https://github.com/rust-lang/crates.io-index" 152 - checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" 162 + checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" 153 163 154 164 [[package]] 155 165 name = "asn1-rs" ··· 163 173 "nom", 164 174 "num-traits", 165 175 "rusticata-macros", 166 - "thiserror 2.0.16", 176 + "thiserror 2.0.18", 167 177 "time", 168 178 ] 169 179 ··· 192 202 193 203 [[package]] 194 204 name = "async-compression" 195 - version = "0.4.30" 205 + version = "0.4.40" 196 206 source = "registry+https://github.com/rust-lang/crates.io-index" 197 - checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" 207 + checksum = "7d67d43201f4d20c78bcda740c142ca52482d81da80681533d33bf3f0596c8e2" 198 208 dependencies = [ 199 209 "compression-codecs", 200 210 "compression-core", 201 - "futures-core", 202 211 "futures-io", 203 212 "pin-project-lite", 204 213 "tokio", ··· 229 238 230 239 [[package]] 231 240 name = "aws-lc-rs" 232 - version = "1.14.0" 241 + version = "1.16.0" 233 242 source = "registry+https://github.com/rust-lang/crates.io-index" 234 - checksum = "94b8ff6c09cd57b16da53641caa860168b88c172a5ee163b0288d3d6eea12786" 243 + checksum = "d9a7b350e3bb1767102698302bc37256cbd48422809984b98d292c40e2579aa9" 235 244 dependencies = [ 236 245 "aws-lc-sys", 237 246 "zeroize", ··· 239 248 240 249 [[package]] 241 250 name = "aws-lc-sys" 242 - version = "0.31.0" 251 + version = "0.37.1" 243 252 source = "registry+https://github.com/rust-lang/crates.io-index" 244 - checksum = "0e44d16778acaf6a9ec9899b92cebd65580b83f685446bf2e1f5d3d732f99dcd" 253 + checksum = "b092fe214090261288111db7a2b2c2118e5a7f30dc2569f1732c4069a6840549" 245 254 dependencies = [ 246 - "bindgen", 247 255 "cc", 248 256 "cmake", 249 257 "dunce", 250 258 "fs_extra", 251 - ] 252 - 253 - [[package]] 254 - name = "backtrace" 255 - version = "0.3.75" 256 - source = "registry+https://github.com/rust-lang/crates.io-index" 257 - checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 258 - dependencies = [ 259 - "addr2line", 260 - "cfg-if", 261 - "libc", 262 - "miniz_oxide", 263 - "object", 264 - "rustc-demangle", 265 - "windows-targets 0.52.6", 266 259 ] 267 260 268 261 [[package]] ··· 288 281 checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 289 282 290 283 [[package]] 291 - name = "bindgen" 292 - version = "0.72.1" 284 + name = "bincode" 285 + version = "1.3.3" 293 286 source = "registry+https://github.com/rust-lang/crates.io-index" 294 - checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" 287 + checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 295 288 dependencies = [ 296 - "bitflags 2.9.4", 297 - "cexpr", 298 - "clang-sys", 299 - "itertools", 300 - "log", 301 - "prettyplease", 302 - "proc-macro2", 303 - "quote", 304 - "regex", 305 - "rustc-hash", 306 - "shlex", 307 - "syn", 289 + "serde", 308 290 ] 309 291 310 292 [[package]] ··· 315 297 316 298 [[package]] 317 299 name = "bitflags" 318 - version = "2.9.4" 300 + version = "2.11.0" 319 301 source = "registry+https://github.com/rust-lang/crates.io-index" 320 - checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 302 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 321 303 322 304 [[package]] 323 305 name = "block-buffer" ··· 351 333 352 334 [[package]] 353 335 name = "bumpalo" 354 - version = "3.19.0" 336 + version = "3.20.2" 355 337 source = "registry+https://github.com/rust-lang/crates.io-index" 356 - checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 338 + checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 357 339 358 340 [[package]] 359 341 name = "byteorder" ··· 369 351 370 352 [[package]] 371 353 name = "bytes" 372 - version = "1.10.1" 354 + version = "1.11.1" 373 355 source = "registry+https://github.com/rust-lang/crates.io-index" 374 - checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 356 + checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 375 357 376 358 [[package]] 377 359 name = "byteview" ··· 380 362 checksum = "1c53ba0f290bfc610084c05582d9c5d421662128fc69f4bf236707af6fd321b9" 381 363 382 364 [[package]] 365 + name = "cast" 366 + version = "0.3.0" 367 + source = "registry+https://github.com/rust-lang/crates.io-index" 368 + checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" 369 + 370 + [[package]] 383 371 name = "cc" 384 - version = "1.2.37" 372 + version = "1.2.56" 385 373 source = "registry+https://github.com/rust-lang/crates.io-index" 386 - checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" 374 + checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" 387 375 dependencies = [ 388 376 "find-msvc-tools", 389 377 "jobserver", 390 378 "libc", 391 379 "shlex", 392 - ] 393 - 394 - [[package]] 395 - name = "cexpr" 396 - version = "0.6.0" 397 - source = "registry+https://github.com/rust-lang/crates.io-index" 398 - checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 399 - dependencies = [ 400 - "nom", 401 380 ] 402 381 403 382 [[package]] 404 383 name = "cfg-if" 405 - version = "1.0.3" 384 + version = "1.0.4" 406 385 source = "registry+https://github.com/rust-lang/crates.io-index" 407 - checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 386 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 408 387 409 388 [[package]] 410 389 name = "cfg_aliases" ··· 414 393 415 394 [[package]] 416 395 name = "chrono" 417 - version = "0.4.42" 396 + version = "0.4.43" 418 397 source = "registry+https://github.com/rust-lang/crates.io-index" 419 - checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 398 + checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" 420 399 dependencies = [ 421 400 "iana-time-zone", 422 401 "js-sys", 423 402 "num-traits", 424 403 "serde", 425 404 "wasm-bindgen", 426 - "windows-link 0.2.0", 405 + "windows-link", 406 + ] 407 + 408 + [[package]] 409 + name = "ciborium" 410 + version = "0.2.2" 411 + source = "registry+https://github.com/rust-lang/crates.io-index" 412 + checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 413 + dependencies = [ 414 + "ciborium-io", 415 + "ciborium-ll", 416 + "serde", 417 + ] 418 + 419 + [[package]] 420 + name = "ciborium-io" 421 + version = "0.2.2" 422 + source = "registry+https://github.com/rust-lang/crates.io-index" 423 + checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 424 + 425 + [[package]] 426 + name = "ciborium-ll" 427 + version = "0.2.2" 428 + source = "registry+https://github.com/rust-lang/crates.io-index" 429 + checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 430 + dependencies = [ 431 + "ciborium-io", 432 + "half", 427 433 ] 428 434 429 435 [[package]] ··· 439 445 ] 440 446 441 447 [[package]] 442 - name = "clang-sys" 443 - version = "1.8.1" 444 - source = "registry+https://github.com/rust-lang/crates.io-index" 445 - checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 446 - dependencies = [ 447 - "glob", 448 - "libc", 449 - "libloading", 450 - ] 451 - 452 - [[package]] 453 448 name = "clap" 454 - version = "4.5.47" 449 + version = "4.5.60" 455 450 source = "registry+https://github.com/rust-lang/crates.io-index" 456 - checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" 451 + checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" 457 452 dependencies = [ 458 453 "clap_builder", 459 454 "clap_derive", ··· 461 456 462 457 [[package]] 463 458 name = "clap_builder" 464 - version = "4.5.47" 459 + version = "4.5.60" 465 460 source = "registry+https://github.com/rust-lang/crates.io-index" 466 - checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" 461 + checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" 467 462 dependencies = [ 468 463 "anstream", 469 464 "anstyle", ··· 473 468 474 469 [[package]] 475 470 name = "clap_derive" 476 - version = "4.5.47" 471 + version = "4.5.55" 477 472 source = "registry+https://github.com/rust-lang/crates.io-index" 478 - checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" 473 + checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" 479 474 dependencies = [ 480 475 "heck", 481 476 "proc-macro2", ··· 485 480 486 481 [[package]] 487 482 name = "clap_lex" 488 - version = "0.7.5" 483 + version = "1.0.0" 489 484 source = "registry+https://github.com/rust-lang/crates.io-index" 490 - checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" 485 + checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" 491 486 492 487 [[package]] 493 488 name = "cmake" 494 - version = "0.1.54" 489 + version = "0.1.57" 495 490 source = "registry+https://github.com/rust-lang/crates.io-index" 496 - checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" 491 + checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" 497 492 dependencies = [ 498 493 "cc", 499 494 ] ··· 512 507 513 508 [[package]] 514 509 name = "compression-codecs" 515 - version = "0.4.30" 510 + version = "0.4.37" 516 511 source = "registry+https://github.com/rust-lang/crates.io-index" 517 - checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64" 512 + checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" 518 513 dependencies = [ 519 514 "brotli", 520 515 "compression-core", ··· 526 521 527 522 [[package]] 528 523 name = "compression-core" 529 - version = "0.4.29" 524 + version = "0.4.31" 530 525 source = "registry+https://github.com/rust-lang/crates.io-index" 531 - checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" 526 + checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" 532 527 533 528 [[package]] 534 529 name = "const-str" ··· 590 585 ] 591 586 592 587 [[package]] 588 + name = "criterion" 589 + version = "0.8.2" 590 + source = "registry+https://github.com/rust-lang/crates.io-index" 591 + checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" 592 + dependencies = [ 593 + "alloca", 594 + "anes", 595 + "cast", 596 + "ciborium", 597 + "clap", 598 + "criterion-plot", 599 + "itertools 0.13.0", 600 + "num-traits", 601 + "oorandom", 602 + "page_size", 603 + "plotters", 604 + "rayon", 605 + "regex", 606 + "serde", 607 + "serde_json", 608 + "tinytemplate", 609 + "walkdir", 610 + ] 611 + 612 + [[package]] 613 + name = "criterion-plot" 614 + version = "0.8.2" 615 + source = "registry+https://github.com/rust-lang/crates.io-index" 616 + checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" 617 + dependencies = [ 618 + "cast", 619 + "itertools 0.13.0", 620 + ] 621 + 622 + [[package]] 623 + name = "crossbeam-deque" 624 + version = "0.8.6" 625 + source = "registry+https://github.com/rust-lang/crates.io-index" 626 + checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 627 + dependencies = [ 628 + "crossbeam-epoch", 629 + "crossbeam-utils", 630 + ] 631 + 632 + [[package]] 593 633 name = "crossbeam-epoch" 594 634 version = "0.9.18" 595 635 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 613 653 version = "0.8.21" 614 654 source = "registry+https://github.com/rust-lang/crates.io-index" 615 655 checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 656 + 657 + [[package]] 658 + name = "crunchy" 659 + version = "0.2.4" 660 + source = "registry+https://github.com/rust-lang/crates.io-index" 661 + checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" 616 662 617 663 [[package]] 618 664 name = "crypto-common" 619 - version = "0.1.6" 665 + version = "0.1.7" 620 666 source = "registry+https://github.com/rust-lang/crates.io-index" 621 - checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 667 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 622 668 dependencies = [ 623 669 "generic-array", 624 670 "typenum", ··· 635 681 "hashbrown 0.14.5", 636 682 "lock_api", 637 683 "once_cell", 638 - "parking_lot_core 0.9.11", 684 + "parking_lot_core 0.9.12", 639 685 ] 640 686 641 687 [[package]] ··· 680 726 681 727 [[package]] 682 728 name = "deranged" 683 - version = "0.5.3" 729 + version = "0.5.6" 684 730 source = "registry+https://github.com/rust-lang/crates.io-index" 685 - checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" 731 + checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" 686 732 dependencies = [ 687 733 "powerfmt", 688 734 ] ··· 755 801 checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 756 802 dependencies = [ 757 803 "libc", 758 - "windows-sys 0.61.0", 804 + "windows-sys 0.61.2", 759 805 ] 760 806 761 807 [[package]] ··· 772 818 773 819 [[package]] 774 820 name = "find-msvc-tools" 775 - version = "0.1.1" 821 + version = "0.1.9" 776 822 source = "registry+https://github.com/rust-lang/crates.io-index" 777 - checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" 823 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 778 824 779 825 [[package]] 780 826 name = "fjall" ··· 795 841 796 842 [[package]] 797 843 name = "flate2" 798 - version = "1.1.2" 844 + version = "1.1.9" 799 845 source = "registry+https://github.com/rust-lang/crates.io-index" 800 - checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" 846 + checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 801 847 dependencies = [ 802 848 "crc32fast", 803 849 "miniz_oxide", ··· 825 871 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 826 872 827 873 [[package]] 874 + name = "foldhash" 875 + version = "0.2.0" 876 + source = "registry+https://github.com/rust-lang/crates.io-index" 877 + checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 878 + 879 + [[package]] 828 880 name = "foreign-types" 829 881 version = "0.3.2" 830 882 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 856 908 857 909 [[package]] 858 910 name = "futures" 859 - version = "0.3.31" 911 + version = "0.3.32" 860 912 source = "registry+https://github.com/rust-lang/crates.io-index" 861 - checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 913 + checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" 862 914 dependencies = [ 863 915 "futures-channel", 864 916 "futures-core", ··· 871 923 872 924 [[package]] 873 925 name = "futures-channel" 874 - version = "0.3.31" 926 + version = "0.3.32" 875 927 source = "registry+https://github.com/rust-lang/crates.io-index" 876 - checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 928 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 877 929 dependencies = [ 878 930 "futures-core", 879 931 "futures-sink", ··· 881 933 882 934 [[package]] 883 935 name = "futures-core" 884 - version = "0.3.31" 936 + version = "0.3.32" 885 937 source = "registry+https://github.com/rust-lang/crates.io-index" 886 - checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 938 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 887 939 888 940 [[package]] 889 941 name = "futures-executor" 890 - version = "0.3.31" 942 + version = "0.3.32" 891 943 source = "registry+https://github.com/rust-lang/crates.io-index" 892 - checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 944 + checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 893 945 dependencies = [ 894 946 "futures-core", 895 947 "futures-task", ··· 898 950 899 951 [[package]] 900 952 name = "futures-io" 901 - version = "0.3.31" 953 + version = "0.3.32" 902 954 source = "registry+https://github.com/rust-lang/crates.io-index" 903 - checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 955 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 904 956 905 957 [[package]] 906 958 name = "futures-macro" 907 - version = "0.3.31" 959 + version = "0.3.32" 908 960 source = "registry+https://github.com/rust-lang/crates.io-index" 909 - checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 961 + checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" 910 962 dependencies = [ 911 963 "proc-macro2", 912 964 "quote", ··· 915 967 916 968 [[package]] 917 969 name = "futures-sink" 918 - version = "0.3.31" 970 + version = "0.3.32" 919 971 source = "registry+https://github.com/rust-lang/crates.io-index" 920 - checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 972 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 921 973 922 974 [[package]] 923 975 name = "futures-task" 924 - version = "0.3.31" 976 + version = "0.3.32" 925 977 source = "registry+https://github.com/rust-lang/crates.io-index" 926 - checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 978 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 927 979 928 980 [[package]] 929 981 name = "futures-timer" ··· 933 985 934 986 [[package]] 935 987 name = "futures-util" 936 - version = "0.3.31" 988 + version = "0.3.32" 937 989 source = "registry+https://github.com/rust-lang/crates.io-index" 938 - checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 990 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 939 991 dependencies = [ 940 992 "futures-channel", 941 993 "futures-core", ··· 945 997 "futures-task", 946 998 "memchr", 947 999 "pin-project-lite", 948 - "pin-utils", 949 1000 "slab", 950 1001 ] 951 1002 ··· 961 1012 962 1013 [[package]] 963 1014 name = "getrandom" 964 - version = "0.2.16" 1015 + version = "0.2.17" 965 1016 source = "registry+https://github.com/rust-lang/crates.io-index" 966 - checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 1017 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 967 1018 dependencies = [ 968 1019 "cfg-if", 969 1020 "js-sys", ··· 974 1025 975 1026 [[package]] 976 1027 name = "getrandom" 977 - version = "0.3.3" 1028 + version = "0.3.4" 978 1029 source = "registry+https://github.com/rust-lang/crates.io-index" 979 - checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 1030 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 980 1031 dependencies = [ 981 1032 "cfg-if", 982 1033 "js-sys", 983 1034 "libc", 984 1035 "r-efi", 985 - "wasi 0.14.5+wasi-0.2.4", 1036 + "wasip2", 986 1037 "wasm-bindgen", 987 1038 ] 988 1039 989 1040 [[package]] 990 - name = "gimli" 991 - version = "0.31.1" 992 - source = "registry+https://github.com/rust-lang/crates.io-index" 993 - checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 994 - 995 - [[package]] 996 - name = "glob" 997 - version = "0.3.3" 1041 + name = "getrandom" 1042 + version = "0.4.1" 998 1043 source = "registry+https://github.com/rust-lang/crates.io-index" 999 - checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1044 + checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" 1045 + dependencies = [ 1046 + "cfg-if", 1047 + "libc", 1048 + "r-efi", 1049 + "wasip2", 1050 + "wasip3", 1051 + ] 1000 1052 1001 1053 [[package]] 1002 1054 name = "governor" 1003 - version = "0.10.1" 1055 + version = "0.10.4" 1004 1056 source = "registry+https://github.com/rust-lang/crates.io-index" 1005 - checksum = "444405bbb1a762387aa22dd569429533b54a1d8759d35d3b64cb39b0293eaa19" 1057 + checksum = "9efcab3c1958580ff1f25a2a41be1668f7603d849bb63af523b208a3cc1223b8" 1006 1058 dependencies = [ 1007 1059 "cfg-if", 1008 1060 "dashmap", 1009 1061 "futures-sink", 1010 1062 "futures-timer", 1011 1063 "futures-util", 1012 - "getrandom 0.3.3", 1013 - "hashbrown 0.15.5", 1064 + "getrandom 0.3.4", 1065 + "hashbrown 0.16.1", 1014 1066 "nonzero_ext", 1015 - "parking_lot 0.12.4", 1067 + "parking_lot 0.12.5", 1016 1068 "portable-atomic", 1017 1069 "quanta", 1018 1070 "rand 0.9.2", ··· 1023 1075 1024 1076 [[package]] 1025 1077 name = "h2" 1026 - version = "0.4.12" 1078 + version = "0.4.13" 1027 1079 source = "registry+https://github.com/rust-lang/crates.io-index" 1028 - checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" 1080 + checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" 1029 1081 dependencies = [ 1030 1082 "atomic-waker", 1031 1083 "bytes", ··· 1041 1093 ] 1042 1094 1043 1095 [[package]] 1096 + name = "half" 1097 + version = "2.7.1" 1098 + source = "registry+https://github.com/rust-lang/crates.io-index" 1099 + checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" 1100 + dependencies = [ 1101 + "cfg-if", 1102 + "crunchy", 1103 + "zerocopy", 1104 + ] 1105 + 1106 + [[package]] 1044 1107 name = "hashbrown" 1045 1108 version = "0.14.5" 1046 1109 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1052 1115 source = "registry+https://github.com/rust-lang/crates.io-index" 1053 1116 checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1054 1117 dependencies = [ 1055 - "allocator-api2", 1056 - "equivalent", 1057 - "foldhash", 1118 + "foldhash 0.1.5", 1058 1119 ] 1059 1120 1060 1121 [[package]] ··· 1062 1123 version = "0.16.1" 1063 1124 source = "registry+https://github.com/rust-lang/crates.io-index" 1064 1125 checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 1126 + dependencies = [ 1127 + "allocator-api2", 1128 + "equivalent", 1129 + "foldhash 0.2.0", 1130 + ] 1065 1131 1066 1132 [[package]] 1067 1133 name = "headers" ··· 1104 1170 1105 1171 [[package]] 1106 1172 name = "http" 1107 - version = "1.3.1" 1173 + version = "1.4.0" 1108 1174 source = "registry+https://github.com/rust-lang/crates.io-index" 1109 - checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 1175 + checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" 1110 1176 dependencies = [ 1111 1177 "bytes", 1112 - "fnv", 1113 1178 "itoa", 1114 1179 ] 1115 1180 ··· 1150 1215 1151 1216 [[package]] 1152 1217 name = "hyper" 1153 - version = "1.7.0" 1218 + version = "1.8.1" 1154 1219 source = "registry+https://github.com/rust-lang/crates.io-index" 1155 - checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" 1220 + checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 1156 1221 dependencies = [ 1157 1222 "atomic-waker", 1158 1223 "bytes", ··· 1206 1271 1207 1272 [[package]] 1208 1273 name = "hyper-util" 1209 - version = "0.1.16" 1274 + version = "0.1.20" 1210 1275 source = "registry+https://github.com/rust-lang/crates.io-index" 1211 - checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" 1276 + checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 1212 1277 dependencies = [ 1213 1278 "base64", 1214 1279 "bytes", 1215 1280 "futures-channel", 1216 - "futures-core", 1217 1281 "futures-util", 1218 1282 "http", 1219 1283 "http-body", ··· 1222 1286 "libc", 1223 1287 "percent-encoding", 1224 1288 "pin-project-lite", 1225 - "socket2 0.6.0", 1289 + "socket2", 1226 1290 "system-configuration", 1227 1291 "tokio", 1228 1292 "tower-service", ··· 1232 1296 1233 1297 [[package]] 1234 1298 name = "iana-time-zone" 1235 - version = "0.1.63" 1299 + version = "0.1.65" 1236 1300 source = "registry+https://github.com/rust-lang/crates.io-index" 1237 - checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" 1301 + checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" 1238 1302 dependencies = [ 1239 1303 "android_system_properties", 1240 1304 "core-foundation-sys", ··· 1256 1320 1257 1321 [[package]] 1258 1322 name = "icu_collections" 1259 - version = "2.0.0" 1323 + version = "2.1.1" 1260 1324 source = "registry+https://github.com/rust-lang/crates.io-index" 1261 - checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 1325 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 1262 1326 dependencies = [ 1263 1327 "displaydoc", 1264 1328 "potential_utf", ··· 1269 1333 1270 1334 [[package]] 1271 1335 name = "icu_locale_core" 1272 - version = "2.0.0" 1336 + version = "2.1.1" 1273 1337 source = "registry+https://github.com/rust-lang/crates.io-index" 1274 - checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 1338 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 1275 1339 dependencies = [ 1276 1340 "displaydoc", 1277 1341 "litemap", ··· 1282 1346 1283 1347 [[package]] 1284 1348 name = "icu_normalizer" 1285 - version = "2.0.0" 1349 + version = "2.1.1" 1286 1350 source = "registry+https://github.com/rust-lang/crates.io-index" 1287 - checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 1351 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 1288 1352 dependencies = [ 1289 - "displaydoc", 1290 1353 "icu_collections", 1291 1354 "icu_normalizer_data", 1292 1355 "icu_properties", ··· 1297 1360 1298 1361 [[package]] 1299 1362 name = "icu_normalizer_data" 1300 - version = "2.0.0" 1363 + version = "2.1.1" 1301 1364 source = "registry+https://github.com/rust-lang/crates.io-index" 1302 - checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 1365 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 1303 1366 1304 1367 [[package]] 1305 1368 name = "icu_properties" 1306 - version = "2.0.1" 1369 + version = "2.1.2" 1307 1370 source = "registry+https://github.com/rust-lang/crates.io-index" 1308 - checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 1371 + checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 1309 1372 dependencies = [ 1310 - "displaydoc", 1311 1373 "icu_collections", 1312 1374 "icu_locale_core", 1313 1375 "icu_properties_data", 1314 1376 "icu_provider", 1315 - "potential_utf", 1316 1377 "zerotrie", 1317 1378 "zerovec", 1318 1379 ] 1319 1380 1320 1381 [[package]] 1321 1382 name = "icu_properties_data" 1322 - version = "2.0.1" 1383 + version = "2.1.2" 1323 1384 source = "registry+https://github.com/rust-lang/crates.io-index" 1324 - checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 1385 + checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" 1325 1386 1326 1387 [[package]] 1327 1388 name = "icu_provider" 1328 - version = "2.0.0" 1389 + version = "2.1.1" 1329 1390 source = "registry+https://github.com/rust-lang/crates.io-index" 1330 - checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 1391 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 1331 1392 dependencies = [ 1332 1393 "displaydoc", 1333 1394 "icu_locale_core", 1334 - "stable_deref_trait", 1335 - "tinystr", 1336 1395 "writeable", 1337 1396 "yoke", 1338 1397 "zerofrom", 1339 1398 "zerotrie", 1340 1399 "zerovec", 1341 1400 ] 1401 + 1402 + [[package]] 1403 + name = "id-arena" 1404 + version = "2.3.0" 1405 + source = "registry+https://github.com/rust-lang/crates.io-index" 1406 + checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 1342 1407 1343 1408 [[package]] 1344 1409 name = "idna" ··· 1363 1428 1364 1429 [[package]] 1365 1430 name = "indexmap" 1366 - version = "2.11.4" 1431 + version = "2.13.0" 1367 1432 source = "registry+https://github.com/rust-lang/crates.io-index" 1368 - checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" 1433 + checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 1369 1434 dependencies = [ 1370 1435 "equivalent", 1371 1436 "hashbrown 0.16.1", 1437 + "serde", 1438 + "serde_core", 1372 1439 ] 1373 1440 1374 1441 [[package]] ··· 1393 1460 ] 1394 1461 1395 1462 [[package]] 1396 - name = "io-uring" 1397 - version = "0.7.10" 1398 - source = "registry+https://github.com/rust-lang/crates.io-index" 1399 - checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" 1400 - dependencies = [ 1401 - "bitflags 2.9.4", 1402 - "cfg-if", 1403 - "libc", 1404 - ] 1405 - 1406 - [[package]] 1407 1463 name = "ipnet" 1408 1464 version = "2.11.0" 1409 1465 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1411 1467 1412 1468 [[package]] 1413 1469 name = "iri-string" 1414 - version = "0.7.8" 1470 + version = "0.7.10" 1415 1471 source = "registry+https://github.com/rust-lang/crates.io-index" 1416 - checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 1472 + checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" 1417 1473 dependencies = [ 1418 1474 "memchr", 1419 1475 "serde", ··· 1421 1477 1422 1478 [[package]] 1423 1479 name = "is_terminal_polyfill" 1424 - version = "1.70.1" 1480 + version = "1.70.2" 1425 1481 source = "registry+https://github.com/rust-lang/crates.io-index" 1426 - checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 1482 + checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 1427 1483 1428 1484 [[package]] 1429 1485 name = "itertools" 1430 1486 version = "0.13.0" 1431 1487 source = "registry+https://github.com/rust-lang/crates.io-index" 1432 1488 checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 1489 + dependencies = [ 1490 + "either", 1491 + ] 1492 + 1493 + [[package]] 1494 + name = "itertools" 1495 + version = "0.14.0" 1496 + source = "registry+https://github.com/rust-lang/crates.io-index" 1497 + checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 1433 1498 dependencies = [ 1434 1499 "either", 1435 1500 ] 1436 1501 1437 1502 [[package]] 1438 1503 name = "itoa" 1439 - version = "1.0.15" 1504 + version = "1.0.17" 1440 1505 source = "registry+https://github.com/rust-lang/crates.io-index" 1441 - checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1506 + checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" 1442 1507 1443 1508 [[package]] 1444 1509 name = "jobserver" ··· 1446 1511 source = "registry+https://github.com/rust-lang/crates.io-index" 1447 1512 checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 1448 1513 dependencies = [ 1449 - "getrandom 0.3.3", 1514 + "getrandom 0.3.4", 1450 1515 "libc", 1451 1516 ] 1452 1517 1453 1518 [[package]] 1454 1519 name = "js-sys" 1455 - version = "0.3.78" 1520 + version = "0.3.86" 1456 1521 source = "registry+https://github.com/rust-lang/crates.io-index" 1457 - checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" 1522 + checksum = "d36139f1c97c42c0c86a411910b04e48d4939a0376e6e0f989420cbdee0120e5" 1458 1523 dependencies = [ 1459 1524 "once_cell", 1460 1525 "wasm-bindgen", ··· 1467 1532 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1468 1533 1469 1534 [[package]] 1470 - name = "libc" 1471 - version = "0.2.175" 1535 + name = "leb128fmt" 1536 + version = "0.1.0" 1472 1537 source = "registry+https://github.com/rust-lang/crates.io-index" 1473 - checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 1538 + checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 1474 1539 1475 1540 [[package]] 1476 - name = "libloading" 1477 - version = "0.8.9" 1541 + name = "libc" 1542 + version = "0.2.182" 1478 1543 source = "registry+https://github.com/rust-lang/crates.io-index" 1479 - checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 1480 - dependencies = [ 1481 - "cfg-if", 1482 - "windows-link 0.2.0", 1483 - ] 1544 + checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 1484 1545 1485 1546 [[package]] 1486 1547 name = "libredox" 1487 - version = "0.1.9" 1548 + version = "0.1.12" 1488 1549 source = "registry+https://github.com/rust-lang/crates.io-index" 1489 - checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" 1550 + checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" 1490 1551 dependencies = [ 1491 - "bitflags 2.9.4", 1552 + "bitflags 2.11.0", 1492 1553 "libc", 1493 - "redox_syscall 0.5.17", 1494 1554 ] 1495 1555 1496 1556 [[package]] ··· 1501 1561 1502 1562 [[package]] 1503 1563 name = "litemap" 1504 - version = "0.8.0" 1564 + version = "0.8.1" 1505 1565 source = "registry+https://github.com/rust-lang/crates.io-index" 1506 - checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 1566 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 1507 1567 1508 1568 [[package]] 1509 1569 name = "lock_api" 1510 - version = "0.4.13" 1570 + version = "0.4.14" 1511 1571 source = "registry+https://github.com/rust-lang/crates.io-index" 1512 - checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 1572 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 1513 1573 dependencies = [ 1514 - "autocfg", 1515 1574 "scopeguard", 1516 1575 ] 1517 1576 1518 1577 [[package]] 1519 1578 name = "log" 1520 - version = "0.4.28" 1579 + version = "0.4.29" 1521 1580 source = "registry+https://github.com/rust-lang/crates.io-index" 1522 - checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 1581 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 1523 1582 1524 1583 [[package]] 1525 1584 name = "lru-slab" ··· 1590 1649 1591 1650 [[package]] 1592 1651 name = "memchr" 1593 - version = "2.7.5" 1652 + version = "2.8.0" 1594 1653 source = "registry+https://github.com/rust-lang/crates.io-index" 1595 - checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 1654 + checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 1596 1655 1597 1656 [[package]] 1598 1657 name = "mime" ··· 1613 1672 checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1614 1673 dependencies = [ 1615 1674 "adler2", 1675 + "simd-adler32", 1616 1676 ] 1617 1677 1618 1678 [[package]] 1619 1679 name = "mio" 1620 - version = "1.0.4" 1680 + version = "1.1.1" 1621 1681 source = "registry+https://github.com/rust-lang/crates.io-index" 1622 - checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 1682 + checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 1623 1683 dependencies = [ 1624 1684 "libc", 1625 1685 "wasi 0.11.1+wasi-snapshot-preview1", 1626 - "windows-sys 0.59.0", 1686 + "windows-sys 0.61.2", 1627 1687 ] 1628 1688 1629 1689 [[package]] ··· 1650 1710 1651 1711 [[package]] 1652 1712 name = "native-tls" 1653 - version = "0.2.14" 1713 + version = "0.2.18" 1654 1714 source = "registry+https://github.com/rust-lang/crates.io-index" 1655 - checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 1715 + checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" 1656 1716 dependencies = [ 1657 1717 "libc", 1658 1718 "log", ··· 1660 1720 "openssl-probe", 1661 1721 "openssl-sys", 1662 1722 "schannel", 1663 - "security-framework 2.11.1", 1723 + "security-framework", 1664 1724 "security-framework-sys", 1665 1725 "tempfile", 1666 1726 ] ··· 1671 1731 source = "registry+https://github.com/rust-lang/crates.io-index" 1672 1732 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 1673 1733 dependencies = [ 1674 - "bitflags 2.9.4", 1734 + "bitflags 2.11.0", 1675 1735 "cfg-if", 1676 1736 "cfg_aliases", 1677 1737 "libc", ··· 1695 1755 1696 1756 [[package]] 1697 1757 name = "nu-ansi-term" 1698 - version = "0.50.1" 1758 + version = "0.50.3" 1699 1759 source = "registry+https://github.com/rust-lang/crates.io-index" 1700 - checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" 1760 + checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" 1701 1761 dependencies = [ 1702 - "windows-sys 0.52.0", 1762 + "windows-sys 0.61.2", 1703 1763 ] 1704 1764 1705 1765 [[package]] ··· 1714 1774 1715 1775 [[package]] 1716 1776 name = "num-conv" 1717 - version = "0.1.0" 1777 + version = "0.2.0" 1718 1778 source = "registry+https://github.com/rust-lang/crates.io-index" 1719 - checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1779 + checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" 1720 1780 1721 1781 [[package]] 1722 1782 name = "num-integer" ··· 1737 1797 ] 1738 1798 1739 1799 [[package]] 1740 - name = "object" 1741 - version = "0.36.7" 1800 + name = "objc2-core-foundation" 1801 + version = "0.3.2" 1802 + source = "registry+https://github.com/rust-lang/crates.io-index" 1803 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 1804 + dependencies = [ 1805 + "bitflags 2.11.0", 1806 + ] 1807 + 1808 + [[package]] 1809 + name = "objc2-system-configuration" 1810 + version = "0.3.2" 1742 1811 source = "registry+https://github.com/rust-lang/crates.io-index" 1743 - checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 1812 + checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" 1744 1813 dependencies = [ 1745 - "memchr", 1814 + "objc2-core-foundation", 1746 1815 ] 1747 1816 1748 1817 [[package]] ··· 1762 1831 1763 1832 [[package]] 1764 1833 name = "once_cell_polyfill" 1765 - version = "1.70.1" 1834 + version = "1.70.2" 1766 1835 source = "registry+https://github.com/rust-lang/crates.io-index" 1767 - checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" 1836 + checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 1837 + 1838 + [[package]] 1839 + name = "oorandom" 1840 + version = "11.1.5" 1841 + source = "registry+https://github.com/rust-lang/crates.io-index" 1842 + checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" 1768 1843 1769 1844 [[package]] 1770 1845 name = "openssl" 1771 - version = "0.10.73" 1846 + version = "0.10.75" 1772 1847 source = "registry+https://github.com/rust-lang/crates.io-index" 1773 - checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" 1848 + checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" 1774 1849 dependencies = [ 1775 - "bitflags 2.9.4", 1850 + "bitflags 2.11.0", 1776 1851 "cfg-if", 1777 1852 "foreign-types", 1778 1853 "libc", ··· 1794 1869 1795 1870 [[package]] 1796 1871 name = "openssl-probe" 1797 - version = "0.1.6" 1872 + version = "0.2.1" 1798 1873 source = "registry+https://github.com/rust-lang/crates.io-index" 1799 - checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 1874 + checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" 1800 1875 1801 1876 [[package]] 1802 1877 name = "openssl-sys" 1803 - version = "0.9.109" 1878 + version = "0.9.111" 1804 1879 source = "registry+https://github.com/rust-lang/crates.io-index" 1805 - checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" 1880 + checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" 1806 1881 dependencies = [ 1807 1882 "cc", 1808 1883 "libc", ··· 1820 1895 "futures-sink", 1821 1896 "js-sys", 1822 1897 "pin-project-lite", 1823 - "thiserror 2.0.16", 1898 + "thiserror 2.0.18", 1824 1899 "tracing", 1825 1900 ] 1826 1901 ··· 1850 1925 "opentelemetry_sdk", 1851 1926 "prost", 1852 1927 "reqwest", 1853 - "thiserror 2.0.16", 1928 + "thiserror 2.0.18", 1854 1929 "tracing", 1855 1930 ] 1856 1931 ··· 1879 1954 "percent-encoding", 1880 1955 "rand 0.9.2", 1881 1956 "serde_json", 1882 - "thiserror 2.0.16", 1957 + "thiserror 2.0.18", 1883 1958 "tokio", 1884 1959 "tokio-stream", 1885 1960 ] 1886 1961 1887 1962 [[package]] 1963 + name = "page_size" 1964 + version = "0.6.0" 1965 + source = "registry+https://github.com/rust-lang/crates.io-index" 1966 + checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" 1967 + dependencies = [ 1968 + "libc", 1969 + "winapi", 1970 + ] 1971 + 1972 + [[package]] 1888 1973 name = "parking_lot" 1889 1974 version = "0.11.2" 1890 1975 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1897 1982 1898 1983 [[package]] 1899 1984 name = "parking_lot" 1900 - version = "0.12.4" 1985 + version = "0.12.5" 1901 1986 source = "registry+https://github.com/rust-lang/crates.io-index" 1902 - checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 1987 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 1903 1988 dependencies = [ 1904 1989 "lock_api", 1905 - "parking_lot_core 0.9.11", 1990 + "parking_lot_core 0.9.12", 1906 1991 ] 1907 1992 1908 1993 [[package]] ··· 1921 2006 1922 2007 [[package]] 1923 2008 name = "parking_lot_core" 1924 - version = "0.9.11" 2009 + version = "0.9.12" 1925 2010 source = "registry+https://github.com/rust-lang/crates.io-index" 1926 - checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 2011 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 1927 2012 dependencies = [ 1928 2013 "cfg-if", 1929 2014 "libc", 1930 - "redox_syscall 0.5.17", 2015 + "redox_syscall 0.5.18", 1931 2016 "smallvec", 1932 - "windows-targets 0.52.6", 2017 + "windows-link", 1933 2018 ] 1934 2019 1935 2020 [[package]] 1936 2021 name = "pem" 1937 - version = "3.0.5" 2022 + version = "3.0.6" 1938 2023 source = "registry+https://github.com/rust-lang/crates.io-index" 1939 - checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" 2024 + checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" 1940 2025 dependencies = [ 1941 2026 "base64", 1942 - "serde", 2027 + "serde_core", 1943 2028 ] 1944 2029 1945 2030 [[package]] ··· 1950 2035 1951 2036 [[package]] 1952 2037 name = "phf" 1953 - version = "0.11.3" 2038 + version = "0.13.1" 1954 2039 source = "registry+https://github.com/rust-lang/crates.io-index" 1955 - checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2040 + checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" 1956 2041 dependencies = [ 1957 2042 "phf_shared", 2043 + "serde", 1958 2044 ] 1959 2045 1960 2046 [[package]] 1961 2047 name = "phf_shared" 1962 - version = "0.11.3" 2048 + version = "0.13.1" 1963 2049 source = "registry+https://github.com/rust-lang/crates.io-index" 1964 - checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 2050 + checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" 1965 2051 dependencies = [ 1966 2052 "siphasher", 1967 2053 ] ··· 2005 2091 checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 2006 2092 2007 2093 [[package]] 2094 + name = "plotters" 2095 + version = "0.3.7" 2096 + source = "registry+https://github.com/rust-lang/crates.io-index" 2097 + checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" 2098 + dependencies = [ 2099 + "num-traits", 2100 + "plotters-backend", 2101 + "plotters-svg", 2102 + "wasm-bindgen", 2103 + "web-sys", 2104 + ] 2105 + 2106 + [[package]] 2107 + name = "plotters-backend" 2108 + version = "0.3.7" 2109 + source = "registry+https://github.com/rust-lang/crates.io-index" 2110 + checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" 2111 + 2112 + [[package]] 2113 + name = "plotters-svg" 2114 + version = "0.3.7" 2115 + source = "registry+https://github.com/rust-lang/crates.io-index" 2116 + checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" 2117 + dependencies = [ 2118 + "plotters-backend", 2119 + ] 2120 + 2121 + [[package]] 2008 2122 name = "poem" 2009 2123 version = "3.1.12" 2010 2124 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2022 2136 "hyper-util", 2023 2137 "mime", 2024 2138 "nix", 2025 - "parking_lot 0.12.4", 2139 + "parking_lot 0.12.5", 2026 2140 "percent-encoding", 2027 2141 "pin-project-lite", 2028 2142 "poem-derive", ··· 2037 2151 "serde_urlencoded", 2038 2152 "smallvec", 2039 2153 "sync_wrapper", 2040 - "thiserror 2.0.16", 2154 + "thiserror 2.0.18", 2041 2155 "tokio", 2042 2156 "tokio-rustls", 2043 2157 "tokio-util", ··· 2060 2174 2061 2175 [[package]] 2062 2176 name = "portable-atomic" 2063 - version = "1.11.1" 2177 + version = "1.13.1" 2064 2178 source = "registry+https://github.com/rust-lang/crates.io-index" 2065 - checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 2179 + checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" 2066 2180 2067 2181 [[package]] 2068 2182 name = "postgres-native-tls" 2069 - version = "0.5.1" 2183 + version = "0.5.2" 2070 2184 source = "registry+https://github.com/rust-lang/crates.io-index" 2071 - checksum = "a1f39498473c92f7b6820ae970382c1d83178a3454c618161cb772e8598d9f6f" 2185 + checksum = "ac73153d92e4bde922bd6f1dfba7f1ab8132266c031153b55e20a1521cd36d49" 2072 2186 dependencies = [ 2073 2187 "native-tls", 2074 2188 "tokio", ··· 2078 2192 2079 2193 [[package]] 2080 2194 name = "postgres-protocol" 2081 - version = "0.6.8" 2195 + version = "0.6.10" 2082 2196 source = "registry+https://github.com/rust-lang/crates.io-index" 2083 - checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" 2197 + checksum = "3ee9dd5fe15055d2b6806f4736aa0c9637217074e224bbec46d4041b91bb9491" 2084 2198 dependencies = [ 2085 2199 "base64", 2086 2200 "byteorder", ··· 2096 2210 2097 2211 [[package]] 2098 2212 name = "postgres-types" 2099 - version = "0.2.9" 2213 + version = "0.2.12" 2100 2214 source = "registry+https://github.com/rust-lang/crates.io-index" 2101 - checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" 2215 + checksum = "54b858f82211e84682fecd373f68e1ceae642d8d751a1ebd13f33de6257b3e20" 2102 2216 dependencies = [ 2103 2217 "bytes", 2104 2218 "chrono", 2105 2219 "fallible-iterator", 2106 2220 "postgres-protocol", 2107 - "serde", 2221 + "serde_core", 2108 2222 "serde_json", 2109 2223 ] 2110 2224 2111 2225 [[package]] 2112 2226 name = "potential_utf" 2113 - version = "0.1.3" 2227 + version = "0.1.4" 2114 2228 source = "registry+https://github.com/rust-lang/crates.io-index" 2115 - checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 2229 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 2116 2230 dependencies = [ 2117 2231 "zerovec", 2118 2232 ] ··· 2153 2267 2154 2268 [[package]] 2155 2269 name = "proc-macro2" 2156 - version = "1.0.101" 2270 + version = "1.0.106" 2157 2271 source = "registry+https://github.com/rust-lang/crates.io-index" 2158 - checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 2272 + checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" 2159 2273 dependencies = [ 2160 2274 "unicode-ident", 2161 2275 ] ··· 2177 2291 checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" 2178 2292 dependencies = [ 2179 2293 "anyhow", 2180 - "itertools", 2294 + "itertools 0.14.0", 2181 2295 "proc-macro2", 2182 2296 "quote", 2183 2297 "syn", ··· 2221 2335 "quinn-udp", 2222 2336 "rustc-hash", 2223 2337 "rustls", 2224 - "socket2 0.6.0", 2225 - "thiserror 2.0.16", 2338 + "socket2", 2339 + "thiserror 2.0.18", 2226 2340 "tokio", 2227 2341 "tracing", 2228 2342 "web-time", ··· 2235 2349 checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" 2236 2350 dependencies = [ 2237 2351 "bytes", 2238 - "getrandom 0.3.3", 2352 + "getrandom 0.3.4", 2239 2353 "lru-slab", 2240 2354 "rand 0.9.2", 2241 2355 "ring", ··· 2243 2357 "rustls", 2244 2358 "rustls-pki-types", 2245 2359 "slab", 2246 - "thiserror 2.0.16", 2360 + "thiserror 2.0.18", 2247 2361 "tinyvec", 2248 2362 "tracing", 2249 2363 "web-time", ··· 2258 2372 "cfg_aliases", 2259 2373 "libc", 2260 2374 "once_cell", 2261 - "socket2 0.6.0", 2375 + "socket2", 2262 2376 "tracing", 2263 2377 "windows-sys 0.60.2", 2264 2378 ] 2265 2379 2266 2380 [[package]] 2267 2381 name = "quote" 2268 - version = "1.0.40" 2382 + version = "1.0.44" 2269 2383 source = "registry+https://github.com/rust-lang/crates.io-index" 2270 - checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 2384 + checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" 2271 2385 dependencies = [ 2272 2386 "proc-macro2", 2273 2387 ] ··· 2296 2410 checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 2297 2411 dependencies = [ 2298 2412 "rand_chacha 0.9.0", 2299 - "rand_core 0.9.3", 2413 + "rand_core 0.9.5", 2300 2414 ] 2301 2415 2302 2416 [[package]] ··· 2316 2430 checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 2317 2431 dependencies = [ 2318 2432 "ppv-lite86", 2319 - "rand_core 0.9.3", 2433 + "rand_core 0.9.5", 2320 2434 ] 2321 2435 2322 2436 [[package]] ··· 2325 2439 source = "registry+https://github.com/rust-lang/crates.io-index" 2326 2440 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2327 2441 dependencies = [ 2328 - "getrandom 0.2.16", 2442 + "getrandom 0.2.17", 2329 2443 ] 2330 2444 2331 2445 [[package]] 2332 2446 name = "rand_core" 2333 - version = "0.9.3" 2447 + version = "0.9.5" 2334 2448 source = "registry+https://github.com/rust-lang/crates.io-index" 2335 - checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 2449 + checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 2336 2450 dependencies = [ 2337 - "getrandom 0.3.3", 2451 + "getrandom 0.3.4", 2338 2452 ] 2339 2453 2340 2454 [[package]] ··· 2343 2457 source = "registry+https://github.com/rust-lang/crates.io-index" 2344 2458 checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" 2345 2459 dependencies = [ 2346 - "bitflags 2.9.4", 2460 + "bitflags 2.11.0", 2461 + ] 2462 + 2463 + [[package]] 2464 + name = "rayon" 2465 + version = "1.11.0" 2466 + source = "registry+https://github.com/rust-lang/crates.io-index" 2467 + checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 2468 + dependencies = [ 2469 + "either", 2470 + "rayon-core", 2471 + ] 2472 + 2473 + [[package]] 2474 + name = "rayon-core" 2475 + version = "1.13.0" 2476 + source = "registry+https://github.com/rust-lang/crates.io-index" 2477 + checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 2478 + dependencies = [ 2479 + "crossbeam-deque", 2480 + "crossbeam-utils", 2347 2481 ] 2348 2482 2349 2483 [[package]] ··· 2369 2503 2370 2504 [[package]] 2371 2505 name = "redox_syscall" 2372 - version = "0.5.17" 2506 + version = "0.5.18" 2373 2507 source = "registry+https://github.com/rust-lang/crates.io-index" 2374 - checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 2508 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 2375 2509 dependencies = [ 2376 - "bitflags 2.9.4", 2510 + "bitflags 2.11.0", 2377 2511 ] 2378 2512 2379 2513 [[package]] 2380 2514 name = "regex" 2381 - version = "1.11.2" 2515 + version = "1.12.3" 2382 2516 source = "registry+https://github.com/rust-lang/crates.io-index" 2383 - checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" 2517 + checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" 2384 2518 dependencies = [ 2385 2519 "aho-corasick", 2386 2520 "memchr", ··· 2390 2524 2391 2525 [[package]] 2392 2526 name = "regex-automata" 2393 - version = "0.4.10" 2527 + version = "0.4.14" 2394 2528 source = "registry+https://github.com/rust-lang/crates.io-index" 2395 - checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" 2529 + checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" 2396 2530 dependencies = [ 2397 2531 "aho-corasick", 2398 2532 "memchr", ··· 2401 2535 2402 2536 [[package]] 2403 2537 name = "regex-syntax" 2404 - version = "0.8.6" 2538 + version = "0.8.9" 2405 2539 source = "registry+https://github.com/rust-lang/crates.io-index" 2406 - checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" 2540 + checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" 2407 2541 2408 2542 [[package]] 2409 2543 name = "reqwest" 2410 - version = "0.12.23" 2544 + version = "0.12.28" 2411 2545 source = "registry+https://github.com/rust-lang/crates.io-index" 2412 - checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 2546 + checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" 2413 2547 dependencies = [ 2414 - "async-compression", 2415 2548 "base64", 2416 2549 "bytes", 2417 2550 "encoding_rs", ··· 2478 2611 "anyhow", 2479 2612 "async-trait", 2480 2613 "futures", 2481 - "getrandom 0.2.16", 2614 + "getrandom 0.2.17", 2482 2615 "http", 2483 2616 "hyper", 2484 2617 "parking_lot 0.11.2", ··· 2517 2650 dependencies = [ 2518 2651 "cc", 2519 2652 "cfg-if", 2520 - "getrandom 0.2.16", 2653 + "getrandom 0.2.17", 2521 2654 "libc", 2522 2655 "untrusted", 2523 2656 "windows-sys 0.52.0", 2524 2657 ] 2525 2658 2526 2659 [[package]] 2527 - name = "rustc-demangle" 2528 - version = "0.1.26" 2660 + name = "rmp" 2661 + version = "0.8.15" 2662 + source = "registry+https://github.com/rust-lang/crates.io-index" 2663 + checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" 2664 + dependencies = [ 2665 + "num-traits", 2666 + ] 2667 + 2668 + [[package]] 2669 + name = "rmp-serde" 2670 + version = "1.3.1" 2529 2671 source = "registry+https://github.com/rust-lang/crates.io-index" 2530 - checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 2672 + checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155" 2673 + dependencies = [ 2674 + "rmp", 2675 + "serde", 2676 + ] 2531 2677 2532 2678 [[package]] 2533 2679 name = "rustc-hash" ··· 2546 2692 2547 2693 [[package]] 2548 2694 name = "rustix" 2549 - version = "1.1.2" 2695 + version = "1.1.3" 2550 2696 source = "registry+https://github.com/rust-lang/crates.io-index" 2551 - checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 2697 + checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" 2552 2698 dependencies = [ 2553 - "bitflags 2.9.4", 2699 + "bitflags 2.11.0", 2554 2700 "errno", 2555 2701 "libc", 2556 2702 "linux-raw-sys", 2557 - "windows-sys 0.61.0", 2703 + "windows-sys 0.61.2", 2558 2704 ] 2559 2705 2560 2706 [[package]] 2561 2707 name = "rustls" 2562 - version = "0.23.32" 2708 + version = "0.23.36" 2563 2709 source = "registry+https://github.com/rust-lang/crates.io-index" 2564 - checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" 2710 + checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" 2565 2711 dependencies = [ 2566 2712 "aws-lc-rs", 2567 2713 "log", ··· 2575 2721 2576 2722 [[package]] 2577 2723 name = "rustls-native-certs" 2578 - version = "0.8.1" 2724 + version = "0.8.3" 2579 2725 source = "registry+https://github.com/rust-lang/crates.io-index" 2580 - checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" 2726 + checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" 2581 2727 dependencies = [ 2582 2728 "openssl-probe", 2583 2729 "rustls-pki-types", 2584 2730 "schannel", 2585 - "security-framework 3.5.0", 2731 + "security-framework", 2586 2732 ] 2587 2733 2588 2734 [[package]] ··· 2596 2742 2597 2743 [[package]] 2598 2744 name = "rustls-pki-types" 2599 - version = "1.12.0" 2745 + version = "1.14.0" 2600 2746 source = "registry+https://github.com/rust-lang/crates.io-index" 2601 - checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 2747 + checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" 2602 2748 dependencies = [ 2603 2749 "web-time", 2604 2750 "zeroize", ··· 2606 2752 2607 2753 [[package]] 2608 2754 name = "rustls-webpki" 2609 - version = "0.103.5" 2755 + version = "0.103.9" 2610 2756 source = "registry+https://github.com/rust-lang/crates.io-index" 2611 - checksum = "b5a37813727b78798e53c2bec3f5e8fe12a6d6f8389bf9ca7802add4c9905ad8" 2757 + checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" 2612 2758 dependencies = [ 2613 2759 "aws-lc-rs", 2614 2760 "ring", ··· 2624 2770 2625 2771 [[package]] 2626 2772 name = "ryu" 2627 - version = "1.0.20" 2773 + version = "1.0.23" 2774 + source = "registry+https://github.com/rust-lang/crates.io-index" 2775 + checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 2776 + 2777 + [[package]] 2778 + name = "same-file" 2779 + version = "1.0.6" 2628 2780 source = "registry+https://github.com/rust-lang/crates.io-index" 2629 - checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 2781 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2782 + dependencies = [ 2783 + "winapi-util", 2784 + ] 2630 2785 2631 2786 [[package]] 2632 2787 name = "schannel" ··· 2634 2789 source = "registry+https://github.com/rust-lang/crates.io-index" 2635 2790 checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" 2636 2791 dependencies = [ 2637 - "windows-sys 0.61.0", 2792 + "windows-sys 0.61.2", 2638 2793 ] 2639 2794 2640 2795 [[package]] ··· 2645 2800 2646 2801 [[package]] 2647 2802 name = "security-framework" 2648 - version = "2.11.1" 2649 - source = "registry+https://github.com/rust-lang/crates.io-index" 2650 - checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 2651 - dependencies = [ 2652 - "bitflags 2.9.4", 2653 - "core-foundation 0.9.4", 2654 - "core-foundation-sys", 2655 - "libc", 2656 - "security-framework-sys", 2657 - ] 2658 - 2659 - [[package]] 2660 - name = "security-framework" 2661 - version = "3.5.0" 2803 + version = "3.7.0" 2662 2804 source = "registry+https://github.com/rust-lang/crates.io-index" 2663 - checksum = "cc198e42d9b7510827939c9a15f5062a0c913f3371d765977e586d2fe6c16f4a" 2805 + checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" 2664 2806 dependencies = [ 2665 - "bitflags 2.9.4", 2807 + "bitflags 2.11.0", 2666 2808 "core-foundation 0.10.1", 2667 2809 "core-foundation-sys", 2668 2810 "libc", ··· 2671 2813 2672 2814 [[package]] 2673 2815 name = "security-framework-sys" 2674 - version = "2.15.0" 2816 + version = "2.17.0" 2675 2817 source = "registry+https://github.com/rust-lang/crates.io-index" 2676 - checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" 2818 + checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" 2677 2819 dependencies = [ 2678 2820 "core-foundation-sys", 2679 2821 "libc", ··· 2686 2828 checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" 2687 2829 2688 2830 [[package]] 2831 + name = "semver" 2832 + version = "1.0.27" 2833 + source = "registry+https://github.com/rust-lang/crates.io-index" 2834 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 2835 + 2836 + [[package]] 2689 2837 name = "serde" 2690 - version = "1.0.226" 2838 + version = "1.0.228" 2691 2839 source = "registry+https://github.com/rust-lang/crates.io-index" 2692 - checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" 2840 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 2693 2841 dependencies = [ 2694 2842 "serde_core", 2695 2843 "serde_derive", 2696 2844 ] 2697 2845 2698 2846 [[package]] 2847 + name = "serde_bytes" 2848 + version = "0.11.19" 2849 + source = "registry+https://github.com/rust-lang/crates.io-index" 2850 + checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" 2851 + dependencies = [ 2852 + "serde", 2853 + "serde_core", 2854 + ] 2855 + 2856 + [[package]] 2699 2857 name = "serde_core" 2700 - version = "1.0.226" 2858 + version = "1.0.228" 2701 2859 source = "registry+https://github.com/rust-lang/crates.io-index" 2702 - checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" 2860 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 2703 2861 dependencies = [ 2704 2862 "serde_derive", 2705 2863 ] 2706 2864 2707 2865 [[package]] 2708 2866 name = "serde_derive" 2709 - version = "1.0.226" 2867 + version = "1.0.228" 2710 2868 source = "registry+https://github.com/rust-lang/crates.io-index" 2711 - checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" 2869 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 2712 2870 dependencies = [ 2713 2871 "proc-macro2", 2714 2872 "quote", ··· 2717 2875 2718 2876 [[package]] 2719 2877 name = "serde_json" 2720 - version = "1.0.143" 2878 + version = "1.0.149" 2721 2879 source = "registry+https://github.com/rust-lang/crates.io-index" 2722 - checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" 2880 + checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 2723 2881 dependencies = [ 2724 2882 "itoa", 2725 2883 "memchr", 2726 - "ryu", 2727 2884 "serde", 2885 + "serde_core", 2886 + "zmij", 2728 2887 ] 2729 2888 2730 2889 [[package]] ··· 2789 2948 2790 2949 [[package]] 2791 2950 name = "signal-hook-registry" 2792 - version = "1.4.6" 2951 + version = "1.4.8" 2793 2952 source = "registry+https://github.com/rust-lang/crates.io-index" 2794 - checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 2953 + checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" 2795 2954 dependencies = [ 2955 + "errno", 2796 2956 "libc", 2797 2957 ] 2798 2958 2799 2959 [[package]] 2960 + name = "simd-adler32" 2961 + version = "0.3.8" 2962 + source = "registry+https://github.com/rust-lang/crates.io-index" 2963 + checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 2964 + 2965 + [[package]] 2800 2966 name = "siphasher" 2801 - version = "1.0.1" 2967 + version = "1.0.2" 2802 2968 source = "registry+https://github.com/rust-lang/crates.io-index" 2803 - checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 2969 + checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" 2804 2970 2805 2971 [[package]] 2806 2972 name = "slab" 2807 - version = "0.4.11" 2973 + version = "0.4.12" 2808 2974 source = "registry+https://github.com/rust-lang/crates.io-index" 2809 - checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 2975 + checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 2810 2976 2811 2977 [[package]] 2812 2978 name = "smallvec" ··· 2816 2982 2817 2983 [[package]] 2818 2984 name = "socket2" 2819 - version = "0.5.10" 2985 + version = "0.6.2" 2820 2986 source = "registry+https://github.com/rust-lang/crates.io-index" 2821 - checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 2987 + checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" 2822 2988 dependencies = [ 2823 2989 "libc", 2824 - "windows-sys 0.52.0", 2825 - ] 2826 - 2827 - [[package]] 2828 - name = "socket2" 2829 - version = "0.6.0" 2830 - source = "registry+https://github.com/rust-lang/crates.io-index" 2831 - checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" 2832 - dependencies = [ 2833 - "libc", 2834 - "windows-sys 0.59.0", 2990 + "windows-sys 0.60.2", 2835 2991 ] 2836 2992 2837 2993 [[package]] ··· 2854 3010 2855 3011 [[package]] 2856 3012 name = "stable_deref_trait" 2857 - version = "1.2.0" 3013 + version = "1.2.1" 2858 3014 source = "registry+https://github.com/rust-lang/crates.io-index" 2859 - checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 3015 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 2860 3016 2861 3017 [[package]] 2862 3018 name = "stringprep" ··· 2883 3039 2884 3040 [[package]] 2885 3041 name = "syn" 2886 - version = "2.0.106" 3042 + version = "2.0.117" 2887 3043 source = "registry+https://github.com/rust-lang/crates.io-index" 2888 - checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 3044 + checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" 2889 3045 dependencies = [ 2890 3046 "proc-macro2", 2891 3047 "quote", ··· 2914 3070 2915 3071 [[package]] 2916 3072 name = "system-configuration" 2917 - version = "0.6.1" 3073 + version = "0.7.0" 2918 3074 source = "registry+https://github.com/rust-lang/crates.io-index" 2919 - checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 3075 + checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" 2920 3076 dependencies = [ 2921 - "bitflags 2.9.4", 3077 + "bitflags 2.11.0", 2922 3078 "core-foundation 0.9.4", 2923 3079 "system-configuration-sys", 2924 3080 ] ··· 2935 3091 2936 3092 [[package]] 2937 3093 name = "tempfile" 2938 - version = "3.22.0" 3094 + version = "3.25.0" 2939 3095 source = "registry+https://github.com/rust-lang/crates.io-index" 2940 - checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" 3096 + checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" 2941 3097 dependencies = [ 2942 3098 "fastrand", 2943 - "getrandom 0.3.3", 3099 + "getrandom 0.4.1", 2944 3100 "once_cell", 2945 3101 "rustix", 2946 - "windows-sys 0.61.0", 3102 + "windows-sys 0.61.2", 2947 3103 ] 2948 3104 2949 3105 [[package]] ··· 2957 3113 2958 3114 [[package]] 2959 3115 name = "thiserror" 2960 - version = "2.0.16" 3116 + version = "2.0.18" 2961 3117 source = "registry+https://github.com/rust-lang/crates.io-index" 2962 - checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" 3118 + checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 2963 3119 dependencies = [ 2964 - "thiserror-impl 2.0.16", 3120 + "thiserror-impl 2.0.18", 2965 3121 ] 2966 3122 2967 3123 [[package]] ··· 2977 3133 2978 3134 [[package]] 2979 3135 name = "thiserror-impl" 2980 - version = "2.0.16" 3136 + version = "2.0.18" 2981 3137 source = "registry+https://github.com/rust-lang/crates.io-index" 2982 - checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" 3138 + checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" 2983 3139 dependencies = [ 2984 3140 "proc-macro2", 2985 3141 "quote", ··· 2997 3153 2998 3154 [[package]] 2999 3155 name = "time" 3000 - version = "0.3.44" 3156 + version = "0.3.47" 3001 3157 source = "registry+https://github.com/rust-lang/crates.io-index" 3002 - checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" 3158 + checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" 3003 3159 dependencies = [ 3004 3160 "deranged", 3005 3161 "itoa", 3006 3162 "num-conv", 3007 3163 "powerfmt", 3008 - "serde", 3164 + "serde_core", 3009 3165 "time-core", 3010 3166 "time-macros", 3011 3167 ] 3012 3168 3013 3169 [[package]] 3014 3170 name = "time-core" 3015 - version = "0.1.6" 3171 + version = "0.1.8" 3016 3172 source = "registry+https://github.com/rust-lang/crates.io-index" 3017 - checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 3173 + checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" 3018 3174 3019 3175 [[package]] 3020 3176 name = "time-macros" 3021 - version = "0.2.24" 3177 + version = "0.2.27" 3022 3178 source = "registry+https://github.com/rust-lang/crates.io-index" 3023 - checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" 3179 + checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" 3024 3180 dependencies = [ 3025 3181 "num-conv", 3026 3182 "time-core", ··· 3028 3184 3029 3185 [[package]] 3030 3186 name = "tinystr" 3031 - version = "0.8.1" 3187 + version = "0.8.2" 3032 3188 source = "registry+https://github.com/rust-lang/crates.io-index" 3033 - checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 3189 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 3034 3190 dependencies = [ 3035 3191 "displaydoc", 3036 3192 "zerovec", 3037 3193 ] 3038 3194 3039 3195 [[package]] 3196 + name = "tinytemplate" 3197 + version = "1.2.1" 3198 + source = "registry+https://github.com/rust-lang/crates.io-index" 3199 + checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" 3200 + dependencies = [ 3201 + "serde", 3202 + "serde_json", 3203 + ] 3204 + 3205 + [[package]] 3040 3206 name = "tinyvec" 3041 3207 version = "1.10.0" 3042 3208 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3053 3219 3054 3220 [[package]] 3055 3221 name = "tokio" 3056 - version = "1.47.1" 3222 + version = "1.49.0" 3057 3223 source = "registry+https://github.com/rust-lang/crates.io-index" 3058 - checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 3224 + checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" 3059 3225 dependencies = [ 3060 - "backtrace", 3061 3226 "bytes", 3062 - "io-uring", 3063 3227 "libc", 3064 3228 "mio", 3065 - "parking_lot 0.12.4", 3229 + "parking_lot 0.12.5", 3066 3230 "pin-project-lite", 3067 3231 "signal-hook-registry", 3068 - "slab", 3069 - "socket2 0.6.0", 3232 + "socket2", 3070 3233 "tokio-macros", 3071 - "windows-sys 0.59.0", 3234 + "windows-sys 0.61.2", 3072 3235 ] 3073 3236 3074 3237 [[package]] 3075 3238 name = "tokio-macros" 3076 - version = "2.5.0" 3239 + version = "2.6.0" 3077 3240 source = "registry+https://github.com/rust-lang/crates.io-index" 3078 - checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 3241 + checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" 3079 3242 dependencies = [ 3080 3243 "proc-macro2", 3081 3244 "quote", ··· 3094 3257 3095 3258 [[package]] 3096 3259 name = "tokio-postgres" 3097 - version = "0.7.13" 3260 + version = "0.7.16" 3098 3261 source = "registry+https://github.com/rust-lang/crates.io-index" 3099 - checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0" 3262 + checksum = "dcea47c8f71744367793f16c2db1f11cb859d28f436bdb4ca9193eb1f787ee42" 3100 3263 dependencies = [ 3101 3264 "async-trait", 3102 3265 "byteorder", ··· 3105 3268 "futures-channel", 3106 3269 "futures-util", 3107 3270 "log", 3108 - "parking_lot 0.12.4", 3271 + "parking_lot 0.12.5", 3109 3272 "percent-encoding", 3110 3273 "phf", 3111 3274 "pin-project-lite", 3112 3275 "postgres-protocol", 3113 3276 "postgres-types", 3114 3277 "rand 0.9.2", 3115 - "socket2 0.5.10", 3278 + "socket2", 3116 3279 "tokio", 3117 3280 "tokio-util", 3118 3281 "whoami", ··· 3120 3283 3121 3284 [[package]] 3122 3285 name = "tokio-rustls" 3123 - version = "0.26.2" 3286 + version = "0.26.4" 3124 3287 source = "registry+https://github.com/rust-lang/crates.io-index" 3125 - checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" 3288 + checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" 3126 3289 dependencies = [ 3127 3290 "rustls", 3128 3291 "tokio", ··· 3130 3293 3131 3294 [[package]] 3132 3295 name = "tokio-stream" 3133 - version = "0.1.17" 3296 + version = "0.1.18" 3134 3297 source = "registry+https://github.com/rust-lang/crates.io-index" 3135 - checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" 3298 + checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" 3136 3299 dependencies = [ 3137 3300 "futures-core", 3138 3301 "pin-project-lite", ··· 3141 3304 3142 3305 [[package]] 3143 3306 name = "tokio-util" 3144 - version = "0.7.16" 3307 + version = "0.7.18" 3145 3308 source = "registry+https://github.com/rust-lang/crates.io-index" 3146 - checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 3309 + checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" 3147 3310 dependencies = [ 3148 3311 "bytes", 3149 3312 "futures-core", ··· 3155 3318 3156 3319 [[package]] 3157 3320 name = "toml_datetime" 3158 - version = "0.7.2" 3321 + version = "0.7.5+spec-1.1.0" 3159 3322 source = "registry+https://github.com/rust-lang/crates.io-index" 3160 - checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" 3323 + checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" 3161 3324 dependencies = [ 3162 3325 "serde_core", 3163 3326 ] 3164 3327 3165 3328 [[package]] 3166 3329 name = "toml_edit" 3167 - version = "0.23.6" 3330 + version = "0.23.10+spec-1.0.0" 3168 3331 source = "registry+https://github.com/rust-lang/crates.io-index" 3169 - checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" 3332 + checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" 3170 3333 dependencies = [ 3171 3334 "indexmap", 3172 3335 "toml_datetime", ··· 3176 3339 3177 3340 [[package]] 3178 3341 name = "toml_parser" 3179 - version = "1.0.3" 3342 + version = "1.0.9+spec-1.1.0" 3180 3343 source = "registry+https://github.com/rust-lang/crates.io-index" 3181 - checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" 3344 + checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" 3182 3345 dependencies = [ 3183 3346 "winnow", 3184 3347 ] ··· 3206 3369 3207 3370 [[package]] 3208 3371 name = "tower" 3209 - version = "0.5.2" 3372 + version = "0.5.3" 3210 3373 source = "registry+https://github.com/rust-lang/crates.io-index" 3211 - checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 3374 + checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" 3212 3375 dependencies = [ 3213 3376 "futures-core", 3214 3377 "futures-util", ··· 3221 3384 3222 3385 [[package]] 3223 3386 name = "tower-http" 3224 - version = "0.6.6" 3387 + version = "0.6.8" 3225 3388 source = "registry+https://github.com/rust-lang/crates.io-index" 3226 - checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 3389 + checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" 3227 3390 dependencies = [ 3228 - "bitflags 2.9.4", 3391 + "async-compression", 3392 + "bitflags 2.11.0", 3229 3393 "bytes", 3394 + "futures-core", 3230 3395 "futures-util", 3231 3396 "http", 3232 3397 "http-body", 3398 + "http-body-util", 3233 3399 "iri-string", 3234 3400 "pin-project-lite", 3401 + "tokio", 3402 + "tokio-util", 3235 3403 "tower", 3236 3404 "tower-layer", 3237 3405 "tower-service", ··· 3251 3419 3252 3420 [[package]] 3253 3421 name = "tracing" 3254 - version = "0.1.41" 3422 + version = "0.1.44" 3255 3423 source = "registry+https://github.com/rust-lang/crates.io-index" 3256 - checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 3424 + checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 3257 3425 dependencies = [ 3258 3426 "pin-project-lite", 3259 3427 "tracing-attributes", ··· 3262 3430 3263 3431 [[package]] 3264 3432 name = "tracing-attributes" 3265 - version = "0.1.30" 3433 + version = "0.1.31" 3266 3434 source = "registry+https://github.com/rust-lang/crates.io-index" 3267 - checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 3435 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 3268 3436 dependencies = [ 3269 3437 "proc-macro2", 3270 3438 "quote", ··· 3273 3441 3274 3442 [[package]] 3275 3443 name = "tracing-core" 3276 - version = "0.1.34" 3444 + version = "0.1.36" 3277 3445 source = "registry+https://github.com/rust-lang/crates.io-index" 3278 - checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 3446 + checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 3279 3447 dependencies = [ 3280 3448 "once_cell", 3281 3449 "valuable", ··· 3312 3480 3313 3481 [[package]] 3314 3482 name = "tracing-subscriber" 3315 - version = "0.3.20" 3483 + version = "0.3.22" 3316 3484 source = "registry+https://github.com/rust-lang/crates.io-index" 3317 - checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" 3485 + checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" 3318 3486 dependencies = [ 3319 3487 "matchers", 3320 3488 "nu-ansi-term", ··· 3342 3510 3343 3511 [[package]] 3344 3512 name = "typenum" 3345 - version = "1.18.0" 3513 + version = "1.19.0" 3346 3514 source = "registry+https://github.com/rust-lang/crates.io-index" 3347 - checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 3515 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 3348 3516 3349 3517 [[package]] 3350 3518 name = "uncased" ··· 3363 3531 3364 3532 [[package]] 3365 3533 name = "unicode-ident" 3366 - version = "1.0.19" 3534 + version = "1.0.24" 3367 3535 source = "registry+https://github.com/rust-lang/crates.io-index" 3368 - checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" 3536 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 3369 3537 3370 3538 [[package]] 3371 3539 name = "unicode-normalization" 3372 - version = "0.1.24" 3540 + version = "0.1.25" 3373 3541 source = "registry+https://github.com/rust-lang/crates.io-index" 3374 - checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 3542 + checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" 3375 3543 dependencies = [ 3376 3544 "tinyvec", 3377 3545 ] 3378 3546 3379 3547 [[package]] 3380 3548 name = "unicode-properties" 3381 - version = "0.1.3" 3549 + version = "0.1.4" 3382 3550 source = "registry+https://github.com/rust-lang/crates.io-index" 3383 - checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 3551 + checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" 3552 + 3553 + [[package]] 3554 + name = "unicode-xid" 3555 + version = "0.2.6" 3556 + source = "registry+https://github.com/rust-lang/crates.io-index" 3557 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 3384 3558 3385 3559 [[package]] 3386 3560 name = "unsigned-varint" ··· 3396 3570 3397 3571 [[package]] 3398 3572 name = "url" 3399 - version = "2.5.7" 3573 + version = "2.5.8" 3400 3574 source = "registry+https://github.com/rust-lang/crates.io-index" 3401 - checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 3575 + checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" 3402 3576 dependencies = [ 3403 3577 "form_urlencoded", 3404 3578 "idna", ··· 3443 3617 checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3444 3618 3445 3619 [[package]] 3620 + name = "walkdir" 3621 + version = "2.5.0" 3622 + source = "registry+https://github.com/rust-lang/crates.io-index" 3623 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 3624 + dependencies = [ 3625 + "same-file", 3626 + "winapi-util", 3627 + ] 3628 + 3629 + [[package]] 3446 3630 name = "want" 3447 3631 version = "0.3.1" 3448 3632 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3459 3643 3460 3644 [[package]] 3461 3645 name = "wasi" 3462 - version = "0.14.5+wasi-0.2.4" 3646 + version = "0.14.7+wasi-0.2.4" 3463 3647 source = "registry+https://github.com/rust-lang/crates.io-index" 3464 - checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" 3648 + checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" 3465 3649 dependencies = [ 3466 3650 "wasip2", 3467 3651 ] 3468 3652 3469 3653 [[package]] 3470 3654 name = "wasip2" 3471 - version = "1.0.0+wasi-0.2.4" 3655 + version = "1.0.2+wasi-0.2.9" 3472 3656 source = "registry+https://github.com/rust-lang/crates.io-index" 3473 - checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" 3657 + checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 3658 + dependencies = [ 3659 + "wit-bindgen", 3660 + ] 3661 + 3662 + [[package]] 3663 + name = "wasip3" 3664 + version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 3665 + source = "registry+https://github.com/rust-lang/crates.io-index" 3666 + checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 3474 3667 dependencies = [ 3475 3668 "wit-bindgen", 3476 3669 ] 3477 3670 3478 3671 [[package]] 3479 3672 name = "wasite" 3480 - version = "0.1.0" 3673 + version = "1.0.2" 3481 3674 source = "registry+https://github.com/rust-lang/crates.io-index" 3482 - checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" 3675 + checksum = "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" 3676 + dependencies = [ 3677 + "wasi 0.14.7+wasi-0.2.4", 3678 + ] 3483 3679 3484 3680 [[package]] 3485 3681 name = "wasm-bindgen" 3486 - version = "0.2.101" 3682 + version = "0.2.109" 3487 3683 source = "registry+https://github.com/rust-lang/crates.io-index" 3488 - checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" 3684 + checksum = "9ff9c7baef35ac3c0e17d8bfc9ad75eb62f85a2f02bccc906699dadb0aa9c622" 3489 3685 dependencies = [ 3490 3686 "cfg-if", 3491 3687 "once_cell", ··· 3495 3691 ] 3496 3692 3497 3693 [[package]] 3498 - name = "wasm-bindgen-backend" 3499 - version = "0.2.101" 3500 - source = "registry+https://github.com/rust-lang/crates.io-index" 3501 - checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" 3502 - dependencies = [ 3503 - "bumpalo", 3504 - "log", 3505 - "proc-macro2", 3506 - "quote", 3507 - "syn", 3508 - "wasm-bindgen-shared", 3509 - ] 3510 - 3511 - [[package]] 3512 3694 name = "wasm-bindgen-futures" 3513 - version = "0.4.51" 3695 + version = "0.4.59" 3514 3696 source = "registry+https://github.com/rust-lang/crates.io-index" 3515 - checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" 3697 + checksum = "d24699cd39db9966cf6e2ef10d2f72779c961ad905911f395ea201c3ec9f545d" 3516 3698 dependencies = [ 3517 3699 "cfg-if", 3700 + "futures-util", 3518 3701 "js-sys", 3519 3702 "once_cell", 3520 3703 "wasm-bindgen", ··· 3523 3706 3524 3707 [[package]] 3525 3708 name = "wasm-bindgen-macro" 3526 - version = "0.2.101" 3709 + version = "0.2.109" 3527 3710 source = "registry+https://github.com/rust-lang/crates.io-index" 3528 - checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" 3711 + checksum = "39455e84ad887a0bbc93c116d72403f1bb0a39e37dd6f235a43e2128a0c7f1fd" 3529 3712 dependencies = [ 3530 3713 "quote", 3531 3714 "wasm-bindgen-macro-support", ··· 3533 3716 3534 3717 [[package]] 3535 3718 name = "wasm-bindgen-macro-support" 3536 - version = "0.2.101" 3719 + version = "0.2.109" 3537 3720 source = "registry+https://github.com/rust-lang/crates.io-index" 3538 - checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" 3721 + checksum = "dff4761f60b0b51fd13fec8764167b7bbcc34498ce3e52805fe1db6f2d56b6d6" 3539 3722 dependencies = [ 3723 + "bumpalo", 3540 3724 "proc-macro2", 3541 3725 "quote", 3542 3726 "syn", 3543 - "wasm-bindgen-backend", 3544 3727 "wasm-bindgen-shared", 3545 3728 ] 3546 3729 3547 3730 [[package]] 3548 3731 name = "wasm-bindgen-shared" 3549 - version = "0.2.101" 3732 + version = "0.2.109" 3550 3733 source = "registry+https://github.com/rust-lang/crates.io-index" 3551 - checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" 3734 + checksum = "bc6a171c53d98021a93a474c4a4579d76ba97f9517d871bc12e27640f218b6dd" 3552 3735 dependencies = [ 3553 3736 "unicode-ident", 3554 3737 ] 3555 3738 3556 3739 [[package]] 3740 + name = "wasm-encoder" 3741 + version = "0.244.0" 3742 + source = "registry+https://github.com/rust-lang/crates.io-index" 3743 + checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 3744 + dependencies = [ 3745 + "leb128fmt", 3746 + "wasmparser", 3747 + ] 3748 + 3749 + [[package]] 3750 + name = "wasm-metadata" 3751 + version = "0.244.0" 3752 + source = "registry+https://github.com/rust-lang/crates.io-index" 3753 + checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 3754 + dependencies = [ 3755 + "anyhow", 3756 + "indexmap", 3757 + "wasm-encoder", 3758 + "wasmparser", 3759 + ] 3760 + 3761 + [[package]] 3557 3762 name = "wasm-streams" 3558 3763 version = "0.4.2" 3559 3764 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3582 3787 ] 3583 3788 3584 3789 [[package]] 3790 + name = "wasmparser" 3791 + version = "0.244.0" 3792 + source = "registry+https://github.com/rust-lang/crates.io-index" 3793 + checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 3794 + dependencies = [ 3795 + "bitflags 2.11.0", 3796 + "hashbrown 0.15.5", 3797 + "indexmap", 3798 + "semver", 3799 + ] 3800 + 3801 + [[package]] 3585 3802 name = "web-sys" 3586 - version = "0.3.78" 3803 + version = "0.3.86" 3587 3804 source = "registry+https://github.com/rust-lang/crates.io-index" 3588 - checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" 3805 + checksum = "668fa5d00434e890a452ab060d24e3904d1be93f7bb01b70e5603baa2b8ab23b" 3589 3806 dependencies = [ 3590 3807 "js-sys", 3591 3808 "wasm-bindgen", ··· 3603 3820 3604 3821 [[package]] 3605 3822 name = "whoami" 3606 - version = "1.6.1" 3823 + version = "2.1.1" 3607 3824 source = "registry+https://github.com/rust-lang/crates.io-index" 3608 - checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" 3825 + checksum = "d6a5b12f9df4f978d2cfdb1bd3bac52433f44393342d7ee9c25f5a1c14c0f45d" 3609 3826 dependencies = [ 3827 + "libc", 3610 3828 "libredox", 3829 + "objc2-system-configuration", 3611 3830 "wasite", 3612 3831 "web-sys", 3613 3832 ] 3614 3833 3615 3834 [[package]] 3616 3835 name = "wildmatch" 3617 - version = "2.5.0" 3836 + version = "2.6.1" 3618 3837 source = "registry+https://github.com/rust-lang/crates.io-index" 3619 - checksum = "39b7d07a236abaef6607536ccfaf19b396dbe3f5110ddb73d39f4562902ed382" 3838 + checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68" 3620 3839 3621 3840 [[package]] 3622 3841 name = "winapi" ··· 3635 3854 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3636 3855 3637 3856 [[package]] 3857 + name = "winapi-util" 3858 + version = "0.1.11" 3859 + source = "registry+https://github.com/rust-lang/crates.io-index" 3860 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 3861 + dependencies = [ 3862 + "windows-sys 0.61.2", 3863 + ] 3864 + 3865 + [[package]] 3638 3866 name = "winapi-x86_64-pc-windows-gnu" 3639 3867 version = "0.4.0" 3640 3868 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3642 3870 3643 3871 [[package]] 3644 3872 name = "windows-core" 3645 - version = "0.61.2" 3873 + version = "0.62.2" 3646 3874 source = "registry+https://github.com/rust-lang/crates.io-index" 3647 - checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 3875 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 3648 3876 dependencies = [ 3649 3877 "windows-implement", 3650 3878 "windows-interface", 3651 - "windows-link 0.1.3", 3879 + "windows-link", 3652 3880 "windows-result", 3653 3881 "windows-strings", 3654 3882 ] 3655 3883 3656 3884 [[package]] 3657 3885 name = "windows-implement" 3658 - version = "0.60.0" 3886 + version = "0.60.2" 3659 3887 source = "registry+https://github.com/rust-lang/crates.io-index" 3660 - checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" 3888 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 3661 3889 dependencies = [ 3662 3890 "proc-macro2", 3663 3891 "quote", ··· 3666 3894 3667 3895 [[package]] 3668 3896 name = "windows-interface" 3669 - version = "0.59.1" 3897 + version = "0.59.3" 3670 3898 source = "registry+https://github.com/rust-lang/crates.io-index" 3671 - checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" 3899 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 3672 3900 dependencies = [ 3673 3901 "proc-macro2", 3674 3902 "quote", ··· 3677 3905 3678 3906 [[package]] 3679 3907 name = "windows-link" 3680 - version = "0.1.3" 3681 - source = "registry+https://github.com/rust-lang/crates.io-index" 3682 - checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 3683 - 3684 - [[package]] 3685 - name = "windows-link" 3686 - version = "0.2.0" 3908 + version = "0.2.1" 3687 3909 source = "registry+https://github.com/rust-lang/crates.io-index" 3688 - checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" 3910 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 3689 3911 3690 3912 [[package]] 3691 3913 name = "windows-registry" 3692 - version = "0.5.3" 3914 + version = "0.6.1" 3693 3915 source = "registry+https://github.com/rust-lang/crates.io-index" 3694 - checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" 3916 + checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" 3695 3917 dependencies = [ 3696 - "windows-link 0.1.3", 3918 + "windows-link", 3697 3919 "windows-result", 3698 3920 "windows-strings", 3699 3921 ] 3700 3922 3701 3923 [[package]] 3702 3924 name = "windows-result" 3703 - version = "0.3.4" 3925 + version = "0.4.1" 3704 3926 source = "registry+https://github.com/rust-lang/crates.io-index" 3705 - checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 3927 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 3706 3928 dependencies = [ 3707 - "windows-link 0.1.3", 3929 + "windows-link", 3708 3930 ] 3709 3931 3710 3932 [[package]] 3711 3933 name = "windows-strings" 3712 - version = "0.4.2" 3934 + version = "0.5.1" 3713 3935 source = "registry+https://github.com/rust-lang/crates.io-index" 3714 - checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 3936 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 3715 3937 dependencies = [ 3716 - "windows-link 0.1.3", 3938 + "windows-link", 3717 3939 ] 3718 3940 3719 3941 [[package]] ··· 3727 3949 3728 3950 [[package]] 3729 3951 name = "windows-sys" 3730 - version = "0.59.0" 3731 - source = "registry+https://github.com/rust-lang/crates.io-index" 3732 - checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 3733 - dependencies = [ 3734 - "windows-targets 0.52.6", 3735 - ] 3736 - 3737 - [[package]] 3738 - name = "windows-sys" 3739 3952 version = "0.60.2" 3740 3953 source = "registry+https://github.com/rust-lang/crates.io-index" 3741 3954 checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 3742 3955 dependencies = [ 3743 - "windows-targets 0.53.3", 3956 + "windows-targets 0.53.5", 3744 3957 ] 3745 3958 3746 3959 [[package]] 3747 3960 name = "windows-sys" 3748 - version = "0.61.0" 3961 + version = "0.61.2" 3749 3962 source = "registry+https://github.com/rust-lang/crates.io-index" 3750 - checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" 3963 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 3751 3964 dependencies = [ 3752 - "windows-link 0.2.0", 3965 + "windows-link", 3753 3966 ] 3754 3967 3755 3968 [[package]] ··· 3770 3983 3771 3984 [[package]] 3772 3985 name = "windows-targets" 3773 - version = "0.53.3" 3986 + version = "0.53.5" 3774 3987 source = "registry+https://github.com/rust-lang/crates.io-index" 3775 - checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" 3988 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 3776 3989 dependencies = [ 3777 - "windows-link 0.1.3", 3778 - "windows_aarch64_gnullvm 0.53.0", 3779 - "windows_aarch64_msvc 0.53.0", 3780 - "windows_i686_gnu 0.53.0", 3781 - "windows_i686_gnullvm 0.53.0", 3782 - "windows_i686_msvc 0.53.0", 3783 - "windows_x86_64_gnu 0.53.0", 3784 - "windows_x86_64_gnullvm 0.53.0", 3785 - "windows_x86_64_msvc 0.53.0", 3990 + "windows-link", 3991 + "windows_aarch64_gnullvm 0.53.1", 3992 + "windows_aarch64_msvc 0.53.1", 3993 + "windows_i686_gnu 0.53.1", 3994 + "windows_i686_gnullvm 0.53.1", 3995 + "windows_i686_msvc 0.53.1", 3996 + "windows_x86_64_gnu 0.53.1", 3997 + "windows_x86_64_gnullvm 0.53.1", 3998 + "windows_x86_64_msvc 0.53.1", 3786 3999 ] 3787 4000 3788 4001 [[package]] ··· 3793 4006 3794 4007 [[package]] 3795 4008 name = "windows_aarch64_gnullvm" 3796 - version = "0.53.0" 4009 + version = "0.53.1" 3797 4010 source = "registry+https://github.com/rust-lang/crates.io-index" 3798 - checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 4011 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 3799 4012 3800 4013 [[package]] 3801 4014 name = "windows_aarch64_msvc" ··· 3805 4018 3806 4019 [[package]] 3807 4020 name = "windows_aarch64_msvc" 3808 - version = "0.53.0" 4021 + version = "0.53.1" 3809 4022 source = "registry+https://github.com/rust-lang/crates.io-index" 3810 - checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 4023 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 3811 4024 3812 4025 [[package]] 3813 4026 name = "windows_i686_gnu" ··· 3817 4030 3818 4031 [[package]] 3819 4032 name = "windows_i686_gnu" 3820 - version = "0.53.0" 4033 + version = "0.53.1" 3821 4034 source = "registry+https://github.com/rust-lang/crates.io-index" 3822 - checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 4035 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 3823 4036 3824 4037 [[package]] 3825 4038 name = "windows_i686_gnullvm" ··· 3829 4042 3830 4043 [[package]] 3831 4044 name = "windows_i686_gnullvm" 3832 - version = "0.53.0" 4045 + version = "0.53.1" 3833 4046 source = "registry+https://github.com/rust-lang/crates.io-index" 3834 - checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 4047 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 3835 4048 3836 4049 [[package]] 3837 4050 name = "windows_i686_msvc" ··· 3841 4054 3842 4055 [[package]] 3843 4056 name = "windows_i686_msvc" 3844 - version = "0.53.0" 4057 + version = "0.53.1" 3845 4058 source = "registry+https://github.com/rust-lang/crates.io-index" 3846 - checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 4059 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 3847 4060 3848 4061 [[package]] 3849 4062 name = "windows_x86_64_gnu" ··· 3853 4066 3854 4067 [[package]] 3855 4068 name = "windows_x86_64_gnu" 3856 - version = "0.53.0" 4069 + version = "0.53.1" 3857 4070 source = "registry+https://github.com/rust-lang/crates.io-index" 3858 - checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 4071 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 3859 4072 3860 4073 [[package]] 3861 4074 name = "windows_x86_64_gnullvm" ··· 3865 4078 3866 4079 [[package]] 3867 4080 name = "windows_x86_64_gnullvm" 3868 - version = "0.53.0" 4081 + version = "0.53.1" 3869 4082 source = "registry+https://github.com/rust-lang/crates.io-index" 3870 - checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 4083 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 3871 4084 3872 4085 [[package]] 3873 4086 name = "windows_x86_64_msvc" ··· 3877 4090 3878 4091 [[package]] 3879 4092 name = "windows_x86_64_msvc" 3880 - version = "0.53.0" 4093 + version = "0.53.1" 3881 4094 source = "registry+https://github.com/rust-lang/crates.io-index" 3882 - checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 4095 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 3883 4096 3884 4097 [[package]] 3885 4098 name = "winnow" 3886 - version = "0.7.13" 4099 + version = "0.7.14" 3887 4100 source = "registry+https://github.com/rust-lang/crates.io-index" 3888 - checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 4101 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 3889 4102 dependencies = [ 3890 4103 "memchr", 3891 4104 ] 3892 4105 3893 4106 [[package]] 3894 4107 name = "wit-bindgen" 3895 - version = "0.45.1" 4108 + version = "0.51.0" 3896 4109 source = "registry+https://github.com/rust-lang/crates.io-index" 3897 - checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" 4110 + checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 4111 + dependencies = [ 4112 + "wit-bindgen-rust-macro", 4113 + ] 4114 + 4115 + [[package]] 4116 + name = "wit-bindgen-core" 4117 + version = "0.51.0" 4118 + source = "registry+https://github.com/rust-lang/crates.io-index" 4119 + checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 4120 + dependencies = [ 4121 + "anyhow", 4122 + "heck", 4123 + "wit-parser", 4124 + ] 4125 + 4126 + [[package]] 4127 + name = "wit-bindgen-rust" 4128 + version = "0.51.0" 4129 + source = "registry+https://github.com/rust-lang/crates.io-index" 4130 + checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 4131 + dependencies = [ 4132 + "anyhow", 4133 + "heck", 4134 + "indexmap", 4135 + "prettyplease", 4136 + "syn", 4137 + "wasm-metadata", 4138 + "wit-bindgen-core", 4139 + "wit-component", 4140 + ] 4141 + 4142 + [[package]] 4143 + name = "wit-bindgen-rust-macro" 4144 + version = "0.51.0" 4145 + source = "registry+https://github.com/rust-lang/crates.io-index" 4146 + checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 4147 + dependencies = [ 4148 + "anyhow", 4149 + "prettyplease", 4150 + "proc-macro2", 4151 + "quote", 4152 + "syn", 4153 + "wit-bindgen-core", 4154 + "wit-bindgen-rust", 4155 + ] 4156 + 4157 + [[package]] 4158 + name = "wit-component" 4159 + version = "0.244.0" 4160 + source = "registry+https://github.com/rust-lang/crates.io-index" 4161 + checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 4162 + dependencies = [ 4163 + "anyhow", 4164 + "bitflags 2.11.0", 4165 + "indexmap", 4166 + "log", 4167 + "serde", 4168 + "serde_derive", 4169 + "serde_json", 4170 + "wasm-encoder", 4171 + "wasm-metadata", 4172 + "wasmparser", 4173 + "wit-parser", 4174 + ] 4175 + 4176 + [[package]] 4177 + name = "wit-parser" 4178 + version = "0.244.0" 4179 + source = "registry+https://github.com/rust-lang/crates.io-index" 4180 + checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 4181 + dependencies = [ 4182 + "anyhow", 4183 + "id-arena", 4184 + "indexmap", 4185 + "log", 4186 + "semver", 4187 + "serde", 4188 + "serde_derive", 4189 + "serde_json", 4190 + "unicode-xid", 4191 + "wasmparser", 4192 + ] 3898 4193 3899 4194 [[package]] 3900 4195 name = "writeable" 3901 - version = "0.6.1" 4196 + version = "0.6.2" 3902 4197 source = "registry+https://github.com/rust-lang/crates.io-index" 3903 - checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 4198 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 3904 4199 3905 4200 [[package]] 3906 4201 name = "x509-parser" ··· 3915 4210 "nom", 3916 4211 "oid-registry", 3917 4212 "rusticata-macros", 3918 - "thiserror 2.0.16", 4213 + "thiserror 2.0.18", 3919 4214 "time", 3920 4215 ] 3921 4216 ··· 3936 4231 3937 4232 [[package]] 3938 4233 name = "yoke" 3939 - version = "0.8.0" 4234 + version = "0.8.1" 3940 4235 source = "registry+https://github.com/rust-lang/crates.io-index" 3941 - checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 4236 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 3942 4237 dependencies = [ 3943 - "serde", 3944 4238 "stable_deref_trait", 3945 4239 "yoke-derive", 3946 4240 "zerofrom", ··· 3948 4242 3949 4243 [[package]] 3950 4244 name = "yoke-derive" 3951 - version = "0.8.0" 4245 + version = "0.8.1" 3952 4246 source = "registry+https://github.com/rust-lang/crates.io-index" 3953 - checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 4247 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 3954 4248 dependencies = [ 3955 4249 "proc-macro2", 3956 4250 "quote", ··· 3960 4254 3961 4255 [[package]] 3962 4256 name = "zerocopy" 3963 - version = "0.8.27" 4257 + version = "0.8.39" 3964 4258 source = "registry+https://github.com/rust-lang/crates.io-index" 3965 - checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 4259 + checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" 3966 4260 dependencies = [ 3967 4261 "zerocopy-derive", 3968 4262 ] 3969 4263 3970 4264 [[package]] 3971 4265 name = "zerocopy-derive" 3972 - version = "0.8.27" 4266 + version = "0.8.39" 3973 4267 source = "registry+https://github.com/rust-lang/crates.io-index" 3974 - checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 4268 + checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" 3975 4269 dependencies = [ 3976 4270 "proc-macro2", 3977 4271 "quote", ··· 4001 4295 4002 4296 [[package]] 4003 4297 name = "zeroize" 4004 - version = "1.8.1" 4298 + version = "1.8.2" 4005 4299 source = "registry+https://github.com/rust-lang/crates.io-index" 4006 - checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 4300 + checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" 4007 4301 4008 4302 [[package]] 4009 4303 name = "zerotrie" 4010 - version = "0.2.2" 4304 + version = "0.2.3" 4011 4305 source = "registry+https://github.com/rust-lang/crates.io-index" 4012 - checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 4306 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 4013 4307 dependencies = [ 4014 4308 "displaydoc", 4015 4309 "yoke", ··· 4018 4312 4019 4313 [[package]] 4020 4314 name = "zerovec" 4021 - version = "0.11.4" 4315 + version = "0.11.5" 4022 4316 source = "registry+https://github.com/rust-lang/crates.io-index" 4023 - checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 4317 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 4024 4318 dependencies = [ 4025 4319 "yoke", 4026 4320 "zerofrom", ··· 4029 4323 4030 4324 [[package]] 4031 4325 name = "zerovec-derive" 4032 - version = "0.11.1" 4326 + version = "0.11.2" 4033 4327 source = "registry+https://github.com/rust-lang/crates.io-index" 4034 - checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 4328 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 4035 4329 dependencies = [ 4036 4330 "proc-macro2", 4037 4331 "quote", 4038 4332 "syn", 4039 4333 ] 4334 + 4335 + [[package]] 4336 + name = "zmij" 4337 + version = "1.0.21" 4338 + source = "registry+https://github.com/rust-lang/crates.io-index" 4339 + checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" 4040 4340 4041 4341 [[package]] 4042 4342 name = "zstd"
+6
Cargo.toml
··· 8 8 9 9 10 10 [dev-dependencies] 11 + criterion = "0.8.2" 12 + rmp-serde = "1.3.1" 11 13 tempfile = "3.10.1" 12 14 13 15 [dependencies] ··· 43 45 tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } 44 46 data-encoding = "2.10.0" 45 47 cid = "0.11.1" 48 + rmp-serde = "1.3.1" 49 + bincode = "1.3.3" 50 + serde_bytes = "0.11.19" 51 +
+18 -16
src/mirror/fjall.rs
··· 145 145 146 146 let did = did.to_string(); 147 147 let db = state.fjall.clone(); 148 - let ops = tokio::task::spawn_blocking(move || db.ops_for_did(&did)) 149 - .await 150 - .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))? 151 - .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))?; 148 + let ops = tokio::task::spawn_blocking(move || { 149 + let iter = db.ops_for_did(&did)?; 150 + iter.collect::<anyhow::Result<Vec<_>>>() 151 + }) 152 + .await 153 + .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))? 154 + .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))?; 152 155 153 156 if ops.is_empty() { 154 157 return Err(Error::from_string( ··· 164 167 165 168 match sub_path { 166 169 "" => { 167 - let op_values: Vec<serde_json::Value> = ops 170 + let parsed: Vec<serde_json::Value> = ops 168 171 .iter() 169 172 .filter(|op| !op.nullified) 170 173 .filter_map(|op| serde_json::from_str(op.operation.get()).ok()) 171 174 .collect(); 172 - 173 - let last_op = op_values.last(); 174 - let data = last_op.and_then(|op| doc::op_to_doc_data(did_str, op)); 175 + let data = doc::apply_op_log(did_str, &parsed); 175 176 let Some(data) = data else { 176 177 return Err(Error::from_string( 177 178 format!("DID not available: {did_str}"), ··· 226 227 .body(serde_json::to_string(&last).unwrap())) 227 228 } 228 229 "/data" => { 229 - let op_values: Vec<serde_json::Value> = ops 230 + let parsed: Vec<serde_json::Value> = ops 230 231 .iter() 231 232 .filter(|op| !op.nullified) 232 233 .filter_map(|op| serde_json::from_str(op.operation.get()).ok()) 233 234 .collect(); 234 - 235 - let last_op = op_values.last(); 236 - let data = last_op.and_then(|op| doc::op_to_doc_data(did_str, op)); 235 + let data = doc::apply_op_log(did_str, &parsed); 237 236 let Some(data) = data else { 238 237 return Err(Error::from_string( 239 238 format!("DID not available: {did_str}"), ··· 274 273 let limit = 1000; 275 274 let db = fjall.clone(); 276 275 277 - let ops = tokio::task::spawn_blocking(move || db.export_ops(after, limit)) 278 - .await 279 - .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))? 280 - .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))?; 276 + let ops = tokio::task::spawn_blocking(move || { 277 + let iter = db.export_ops(after, limit)?; 278 + iter.collect::<anyhow::Result<Vec<_>>>() 279 + }) 280 + .await 281 + .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))? 282 + .map_err(|e| Error::from_string(e.to_string(), StatusCode::INTERNAL_SERVER_ERROR))?; 281 283 282 284 let stream = futures::stream::iter(ops).map(|op| { 283 285 let mut json = serde_json::to_string(&op).unwrap();
+69 -48
src/plc_fjall.rs
··· 39 39 .map(|cid| cid.to_string()) 40 40 } 41 41 42 + fn decode_did(bytes: &[u8]) -> String { 43 + let decoded = BASE32_NOPAD.encode(bytes).to_lowercase(); 44 + format!("did:plc:{decoded}") 45 + } 46 + 42 47 fn op_key(created_at: &Dt, cid: &str) -> anyhow::Result<Vec<u8>> { 43 48 let micros = created_at.timestamp_micros() as u64; 44 49 let mut key = Vec::with_capacity(8 + 1 + cid.len()); ··· 55 60 Ok(p) 56 61 } 57 62 58 - fn by_did_key(did: &str, cid: &str) -> anyhow::Result<Vec<u8>> { 63 + fn by_did_key(did: &str, created_at: &Dt, cid: &str) -> anyhow::Result<Vec<u8>> { 59 64 let mut key = by_did_prefix(did)?; 65 + let micros = created_at.timestamp_micros() as u64; 66 + key.extend_from_slice(&micros.to_be_bytes()); 67 + key.push(SEP); 60 68 encode_cid(&mut key, cid)?; 61 69 Ok(key) 62 70 } ··· 75 83 #[derive(Debug, Deserialize, Serialize)] 76 84 #[serde(rename_all = "camelCase")] 77 85 struct DbOp { 78 - pub did: String, 86 + #[serde(with = "serde_bytes")] 87 + pub did: Vec<u8>, 79 88 pub nullified: bool, 80 89 pub operation: Box<serde_json::value::RawValue>, 81 90 } ··· 134 143 } 135 144 136 145 pub fn insert_op(&self, batch: &mut OwnedWriteBatch, op: &Op) -> anyhow::Result<usize> { 137 - let pk = by_did_key(&op.did, &op.cid)?; 146 + let pk = by_did_key(&op.did, &op.created_at, &op.cid)?; 138 147 if self.inner.by_did.get(&pk)?.is_some() { 139 148 return Ok(0); 140 149 } 141 150 let ts_key = op_key(&op.created_at, &op.cid)?; 142 - let value = serde_json::to_vec(op)?; 151 + 152 + let mut encoded_did = Vec::with_capacity(15); 153 + encode_did(&mut encoded_did, &op.did)?; 154 + 155 + let db_op = DbOp { 156 + did: encoded_did, 157 + nullified: op.nullified, 158 + operation: op.operation.clone(), 159 + }; 160 + let value = rmp_serde::to_vec_named(&db_op)?; 143 161 batch.insert(&self.inner.ops, &ts_key, &value); 144 - batch.insert( 145 - &self.inner.by_did, 146 - &pk, 147 - &op.created_at.timestamp_micros().to_be_bytes(), 148 - ); 162 + batch.insert(&self.inner.by_did, &pk, &[]); 149 163 Ok(1) 150 164 } 151 165 152 - pub fn ops_for_did(&self, did: &str) -> anyhow::Result<Vec<Op>> { 166 + pub fn ops_for_did( 167 + &self, 168 + did: &str, 169 + ) -> anyhow::Result<impl Iterator<Item = anyhow::Result<Op>> + '_> { 153 170 let prefix = by_did_prefix(did)?; 154 171 155 - let mut entries: Vec<(Dt, Vec<u8>)> = Vec::new(); 156 - for guard in self.inner.by_did.prefix(&prefix) { 157 - let (by_did_key, ts_bytes) = guard 172 + Ok(self.inner.by_did.prefix(&prefix).map(move |guard| { 173 + let (by_did_key, _) = guard 158 174 .into_inner() 159 175 .map_err(|e| anyhow::anyhow!("fjall read error: {e}"))?; 160 - // construct op key from timestamp and cid 161 - let cid_bytes = by_did_key 176 + 177 + let key_rest = by_did_key 162 178 .get(prefix.len()..) 163 179 .ok_or_else(|| anyhow::anyhow!("invalid by_did key {by_did_key:?}"))?; 164 - let op_key = [ts_bytes.as_ref(), &[SEP], cid_bytes].concat(); 165 - entries.push((decode_timestamp(&ts_bytes)?, op_key)); 166 - } 180 + 181 + let ts_bytes = key_rest 182 + .get(..8) 183 + .ok_or_else(|| anyhow::anyhow!("invalid length"))?; 184 + let cid_bytes = key_rest 185 + .get(9..) 186 + .ok_or_else(|| anyhow::anyhow!("invalid length"))?; 187 + 188 + let op_key = [ts_bytes, &[SEP][..], cid_bytes].concat(); 189 + let ts = decode_timestamp(ts_bytes)?; 190 + 191 + let value = self 192 + .inner 193 + .ops 194 + .get(&op_key)? 195 + .ok_or_else(|| anyhow::anyhow!("op not found: {op_key:?}"))?; 167 196 168 - entries.sort_by_key(|(ts, _)| *ts); 197 + let op: DbOp = rmp_serde::from_slice(&value)?; 198 + let cid = decode_cid(cid_bytes)?; 199 + let did = decode_did(&op.did); 169 200 170 - let mut ops = Vec::with_capacity(entries.len()); 171 - for (ts, op_key) in entries { 172 - let Some(value) = self.inner.ops.get(&op_key)? else { 173 - anyhow::bail!("op not found in db: {op_key:?}"); 174 - }; 175 - let op: DbOp = serde_json::from_slice(&value)?; 176 - let cid = decode_cid( 177 - op_key 178 - .get(9..) 179 - .ok_or_else(|| anyhow::anyhow!("invalid op key {op_key:?}"))?, 180 - )?; 181 - let op = Op { 182 - did: op.did, 201 + Ok(Op { 202 + did, 183 203 cid, 184 204 created_at: ts, 185 205 nullified: op.nullified, 186 206 operation: op.operation, 187 - }; 188 - ops.push(op); 189 - } 190 - Ok(ops) 207 + }) 208 + })) 191 209 } 192 210 193 - pub fn export_ops(&self, after: Option<Dt>, limit: usize) -> anyhow::Result<Vec<Op>> { 211 + pub fn export_ops( 212 + &self, 213 + after: Option<Dt>, 214 + limit: usize, 215 + ) -> anyhow::Result<impl Iterator<Item = anyhow::Result<Op>> + '_> { 194 216 let iter = if let Some(after) = after { 195 217 let start = (after.timestamp_micros() as u64).to_be_bytes(); 196 218 self.inner.ops.range(start..) ··· 198 220 self.inner.ops.iter() 199 221 }; 200 222 201 - let mut ops = Vec::with_capacity(limit); 202 - for item in iter.take(limit) { 223 + Ok(iter.take(limit).map(|item| { 203 224 let (key, value) = item 204 225 .into_inner() 205 226 .map_err(|e| anyhow::anyhow!("fjall read error: {e}"))?; 206 - let op: DbOp = serde_json::from_slice(&value)?; 227 + let db_op: DbOp = rmp_serde::from_slice(&value)?; 207 228 let created_at = decode_timestamp( 208 229 key.get(..8) 209 230 .ok_or_else(|| anyhow::anyhow!("invalid op key {key:?}"))?, ··· 212 233 key.get(9..) 213 234 .ok_or_else(|| anyhow::anyhow!("invalid op key {key:?}"))?, 214 235 )?; 215 - let op = Op { 216 - did: op.did, 236 + let did = decode_did(&db_op.did); 237 + 238 + Ok(Op { 239 + did, 217 240 cid, 218 241 created_at, 219 - nullified: op.nullified, 220 - operation: op.operation, 221 - }; 222 - ops.push(op); 223 - } 224 - Ok(ops) 242 + nullified: db_op.nullified, 243 + operation: db_op.operation, 244 + }) 245 + })) 225 246 } 226 247 } 227 248