A better Rust ATProto crate

deserialization fix for cids in Data and RawData

Orual c3a48931 f054f0bb

Changed files
+500 -343
crates
jacquard
jacquard-common
jacquard-identity
jacquard-oauth
examples
+350 -300
Cargo.lock
··· 50 51 [[package]] 52 name = "aho-corasick" 53 - version = "1.1.3" 54 source = "registry+https://github.com/rust-lang/crates.io-index" 55 - checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 56 dependencies = [ 57 "memchr", 58 ] ··· 62 version = "0.1.3" 63 source = "registry+https://github.com/rust-lang/crates.io-index" 64 checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" 65 66 [[package]] 67 name = "aligned-vec" ··· 137 138 [[package]] 139 name = "anstyle-query" 140 - version = "1.1.4" 141 source = "registry+https://github.com/rust-lang/crates.io-index" 142 - checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" 143 dependencies = [ 144 - "windows-sys 0.60.2", 145 ] 146 147 [[package]] 148 name = "anstyle-wincon" 149 - version = "3.0.10" 150 source = "registry+https://github.com/rust-lang/crates.io-index" 151 - checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" 152 dependencies = [ 153 "anstyle", 154 "once_cell_polyfill", 155 - "windows-sys 0.60.2", 156 ] 157 158 [[package]] ··· 175 dependencies = [ 176 "proc-macro2", 177 "quote", 178 - "syn 2.0.108", 179 ] 180 181 [[package]] ··· 185 checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 186 187 [[package]] 188 name = "ascii" 189 version = "1.1.0" 190 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 192 193 [[package]] 194 name = "async-compression" 195 - version = "0.4.32" 196 source = "registry+https://github.com/rust-lang/crates.io-index" 197 - checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" 198 dependencies = [ 199 "compression-codecs", 200 "compression-core", ··· 211 dependencies = [ 212 "proc-macro2", 213 "quote", 214 - "syn 2.0.108", 215 ] 216 217 [[package]] ··· 234 version = "1.5.0" 235 source = "registry+https://github.com/rust-lang/crates.io-index" 236 checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 237 238 [[package]] 239 name = "av1-grain" ··· 260 261 [[package]] 262 name = "axum" 263 - version = "0.8.6" 264 source = "registry+https://github.com/rust-lang/crates.io-index" 265 - checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" 266 dependencies = [ 267 "axum-core", 268 "bytes", ··· 318 dependencies = [ 319 "proc-macro2", 320 "quote", 321 - "syn 2.0.108", 322 ] 323 324 [[package]] 325 name = "axum-test" 326 - version = "18.1.0" 327 source = "registry+https://github.com/rust-lang/crates.io-index" 328 - checksum = "680e88effaafbb28675074f29cda0e984c984bed5eb513085c17caf7de564225" 329 dependencies = [ 330 "anyhow", 331 "axum", ··· 410 411 [[package]] 412 name = "base64ct" 413 - version = "1.8.0" 414 source = "registry+https://github.com/rust-lang/crates.io-index" 415 - checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" 416 417 [[package]] 418 name = "bit_field" ··· 428 429 [[package]] 430 name = "bitstream-io" 431 - version = "2.6.0" 432 source = "registry+https://github.com/rust-lang/crates.io-index" 433 - checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" 434 435 [[package]] 436 name = "block-buffer" ··· 463 "proc-macro2", 464 "quote", 465 "rustversion", 466 - "syn 2.0.108", 467 ] 468 469 [[package]] 470 name = "borsh" 471 - version = "1.5.7" 472 source = "registry+https://github.com/rust-lang/crates.io-index" 473 - checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" 474 dependencies = [ 475 "cfg_aliases", 476 ] ··· 532 533 [[package]] 534 name = "built" 535 - version = "0.7.7" 536 source = "registry+https://github.com/rust-lang/crates.io-index" 537 - checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" 538 539 [[package]] 540 name = "bumpalo" ··· 562 563 [[package]] 564 name = "bytes" 565 - version = "1.10.1" 566 source = "registry+https://github.com/rust-lang/crates.io-index" 567 - checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 568 dependencies = [ 569 "serde", 570 ] 571 572 [[package]] 573 name = "bytesize" 574 - version = "2.1.0" 575 source = "registry+https://github.com/rust-lang/crates.io-index" 576 - checksum = "f5c434ae3cf0089ca203e9019ebe529c47ff45cefe8af7c85ecb734ef541822f" 577 578 [[package]] 579 name = "cbor4ii" ··· 586 587 [[package]] 588 name = "cc" 589 - version = "1.2.43" 590 source = "registry+https://github.com/rust-lang/crates.io-index" 591 - checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" 592 dependencies = [ 593 "find-msvc-tools", 594 "jobserver", ··· 610 version = "1.1.0" 611 source = "registry+https://github.com/rust-lang/crates.io-index" 612 checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 613 - 614 - [[package]] 615 - name = "cfg-expr" 616 - version = "0.15.8" 617 - source = "registry+https://github.com/rust-lang/crates.io-index" 618 - checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" 619 - dependencies = [ 620 - "smallvec", 621 - "target-lexicon", 622 - ] 623 624 [[package]] 625 name = "cfg-if" ··· 696 697 [[package]] 698 name = "clap" 699 - version = "4.5.50" 700 source = "registry+https://github.com/rust-lang/crates.io-index" 701 - checksum = "0c2cfd7bf8a6017ddaa4e32ffe7403d547790db06bd171c1c53926faab501623" 702 dependencies = [ 703 "clap_builder", 704 "clap_derive", ··· 706 707 [[package]] 708 name = "clap_builder" 709 - version = "4.5.50" 710 source = "registry+https://github.com/rust-lang/crates.io-index" 711 - checksum = "0a4c05b9e80c5ccd3a7ef080ad7b6ba7d6fc00a985b8b157197075677c82c7a0" 712 dependencies = [ 713 "anstream", 714 "anstyle", ··· 718 719 [[package]] 720 name = "clap_complete" 721 - version = "4.5.59" 722 source = "registry+https://github.com/rust-lang/crates.io-index" 723 - checksum = "2348487adcd4631696ced64ccdb40d38ac4d31cae7f2eec8817fcea1b9d1c43c" 724 dependencies = [ 725 "clap", 726 ] ··· 734 "heck 0.5.0", 735 "proc-macro2", 736 "quote", 737 - "syn 2.0.108", 738 ] 739 740 [[package]] ··· 786 787 [[package]] 788 name = "compression-codecs" 789 - version = "0.4.31" 790 source = "registry+https://github.com/rust-lang/crates.io-index" 791 - checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" 792 dependencies = [ 793 "compression-core", 794 "flate2", ··· 797 798 [[package]] 799 name = "compression-core" 800 - version = "0.4.29" 801 source = "registry+https://github.com/rust-lang/crates.io-index" 802 - checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" 803 804 [[package]] 805 name = "console" ··· 1012 dependencies = [ 1013 "proc-macro2", 1014 "quote", 1015 - "syn 2.0.108", 1016 ] 1017 1018 [[package]] ··· 1036 "proc-macro2", 1037 "quote", 1038 "strsim", 1039 - "syn 2.0.108", 1040 ] 1041 1042 [[package]] ··· 1047 dependencies = [ 1048 "darling_core", 1049 "quote", 1050 - "syn 2.0.108", 1051 ] 1052 1053 [[package]] ··· 1087 checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" 1088 dependencies = [ 1089 "data-encoding", 1090 - "syn 2.0.108", 1091 ] 1092 1093 [[package]] ··· 1138 dependencies = [ 1139 "proc-macro2", 1140 "quote", 1141 - "syn 2.0.108", 1142 "unicode-xid", 1143 ] 1144 ··· 1174 dependencies = [ 1175 "proc-macro2", 1176 "quote", 1177 - "syn 2.0.108", 1178 ] 1179 1180 [[package]] ··· 1293 "heck 0.5.0", 1294 "proc-macro2", 1295 "quote", 1296 - "syn 2.0.108", 1297 ] 1298 1299 [[package]] ··· 1313 dependencies = [ 1314 "proc-macro2", 1315 "quote", 1316 - "syn 2.0.108", 1317 ] 1318 1319 [[package]] ··· 1324 1325 [[package]] 1326 name = "erased-serde" 1327 - version = "0.4.8" 1328 source = "registry+https://github.com/rust-lang/crates.io-index" 1329 - checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" 1330 dependencies = [ 1331 "serde", 1332 "serde_core", ··· 1345 1346 [[package]] 1347 name = "expect-json" 1348 - version = "1.5.0" 1349 source = "registry+https://github.com/rust-lang/crates.io-index" 1350 - checksum = "7519e78573c950576b89eb4f4fe82aedf3a80639245afa07e3ee3d199dcdb29e" 1351 dependencies = [ 1352 "chrono", 1353 "email_address", 1354 "expect-json-macros", 1355 "num", 1356 "serde", 1357 "serde_json", 1358 "thiserror 2.0.17", ··· 1362 1363 [[package]] 1364 name = "expect-json-macros" 1365 - version = "1.5.0" 1366 source = "registry+https://github.com/rust-lang/crates.io-index" 1367 - checksum = "7bf7f5979e98460a0eb412665514594f68f366a32b85fa8d7ffb65bb1edee6a0" 1368 dependencies = [ 1369 "proc-macro2", 1370 "quote", 1371 - "syn 2.0.108", 1372 ] 1373 1374 [[package]] 1375 name = "exr" 1376 - version = "1.73.0" 1377 source = "registry+https://github.com/rust-lang/crates.io-index" 1378 - checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" 1379 dependencies = [ 1380 "bit_field", 1381 "half", ··· 1409 dependencies = [ 1410 "proc-macro2", 1411 "quote", 1412 - "syn 2.0.108", 1413 ] 1414 1415 [[package]] ··· 1451 1452 [[package]] 1453 name = "find-msvc-tools" 1454 - version = "0.1.4" 1455 source = "registry+https://github.com/rust-lang/crates.io-index" 1456 - checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 1457 1458 [[package]] 1459 name = "flate2" ··· 1572 dependencies = [ 1573 "proc-macro2", 1574 "quote", 1575 - "syn 2.0.108", 1576 ] 1577 1578 [[package]] ··· 1659 1660 [[package]] 1661 name = "gif" 1662 - version = "0.13.3" 1663 source = "registry+https://github.com/rust-lang/crates.io-index" 1664 - checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" 1665 dependencies = [ 1666 "color_quant", 1667 "weezl", ··· 1739 "futures-core", 1740 "futures-sink", 1741 "http", 1742 - "indexmap 2.12.0", 1743 "slab", 1744 "tokio", 1745 "tokio-util", ··· 1780 1781 [[package]] 1782 name = "hashbrown" 1783 - version = "0.16.0" 1784 source = "registry+https://github.com/rust-lang/crates.io-index" 1785 - checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 1786 1787 [[package]] 1788 name = "heapless" ··· 1893 "markup5ever", 1894 "proc-macro2", 1895 "quote", 1896 - "syn 2.0.108", 1897 ] 1898 1899 [[package]] 1900 name = "http" 1901 - version = "1.3.1" 1902 source = "registry+https://github.com/rust-lang/crates.io-index" 1903 - checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 1904 dependencies = [ 1905 "bytes", 1906 - "fnv", 1907 "itoa", 1908 ] 1909 ··· 1944 1945 [[package]] 1946 name = "hyper" 1947 - version = "1.7.0" 1948 source = "registry+https://github.com/rust-lang/crates.io-index" 1949 - checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" 1950 dependencies = [ 1951 "atomic-waker", 1952 "bytes", ··· 1984 1985 [[package]] 1986 name = "hyper-util" 1987 - version = "0.1.17" 1988 source = "registry+https://github.com/rust-lang/crates.io-index" 1989 - checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" 1990 dependencies = [ 1991 "base64 0.22.1", 1992 "bytes", ··· 2034 2035 [[package]] 2036 name = "icu_collections" 2037 - version = "2.0.0" 2038 source = "registry+https://github.com/rust-lang/crates.io-index" 2039 - checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 2040 dependencies = [ 2041 "displaydoc", 2042 "potential_utf", ··· 2047 2048 [[package]] 2049 name = "icu_locale_core" 2050 - version = "2.0.0" 2051 source = "registry+https://github.com/rust-lang/crates.io-index" 2052 - checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 2053 dependencies = [ 2054 "displaydoc", 2055 "litemap", ··· 2060 2061 [[package]] 2062 name = "icu_normalizer" 2063 - version = "2.0.0" 2064 source = "registry+https://github.com/rust-lang/crates.io-index" 2065 - checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 2066 dependencies = [ 2067 - "displaydoc", 2068 "icu_collections", 2069 "icu_normalizer_data", 2070 "icu_properties", ··· 2075 2076 [[package]] 2077 name = "icu_normalizer_data" 2078 - version = "2.0.0" 2079 source = "registry+https://github.com/rust-lang/crates.io-index" 2080 - checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 2081 2082 [[package]] 2083 name = "icu_properties" 2084 - version = "2.0.1" 2085 source = "registry+https://github.com/rust-lang/crates.io-index" 2086 - checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 2087 dependencies = [ 2088 - "displaydoc", 2089 "icu_collections", 2090 "icu_locale_core", 2091 "icu_properties_data", 2092 "icu_provider", 2093 - "potential_utf", 2094 "zerotrie", 2095 "zerovec", 2096 ] 2097 2098 [[package]] 2099 name = "icu_properties_data" 2100 - version = "2.0.1" 2101 source = "registry+https://github.com/rust-lang/crates.io-index" 2102 - checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 2103 2104 [[package]] 2105 name = "icu_provider" 2106 - version = "2.0.0" 2107 source = "registry+https://github.com/rust-lang/crates.io-index" 2108 - checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 2109 dependencies = [ 2110 "displaydoc", 2111 "icu_locale_core", 2112 - "stable_deref_trait", 2113 - "tinystr", 2114 "writeable", 2115 "yoke", 2116 "zerofrom", ··· 2147 2148 [[package]] 2149 name = "image" 2150 - version = "0.25.8" 2151 source = "registry+https://github.com/rust-lang/crates.io-index" 2152 - checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" 2153 dependencies = [ 2154 "bytemuck", 2155 "byteorder-lite", ··· 2165 "rayon", 2166 "rgb", 2167 "tiff 0.10.3", 2168 - "zune-core", 2169 - "zune-jpeg", 2170 ] 2171 2172 [[package]] ··· 2198 2199 [[package]] 2200 name = "indexmap" 2201 - version = "2.12.0" 2202 source = "registry+https://github.com/rust-lang/crates.io-index" 2203 - checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 2204 dependencies = [ 2205 "equivalent", 2206 - "hashbrown 0.16.0", 2207 "serde", 2208 "serde_core", 2209 ] ··· 2225 dependencies = [ 2226 "proc-macro2", 2227 "quote", 2228 - "syn 2.0.108", 2229 ] 2230 2231 [[package]] ··· 2268 2269 [[package]] 2270 name = "iri-string" 2271 - version = "0.7.8" 2272 source = "registry+https://github.com/rust-lang/crates.io-index" 2273 - checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 2274 dependencies = [ 2275 "memchr", 2276 "serde", ··· 2306 2307 [[package]] 2308 name = "itertools" 2309 - version = "0.12.1" 2310 source = "registry+https://github.com/rust-lang/crates.io-index" 2311 - checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 2312 dependencies = [ 2313 "either", 2314 ] ··· 2340 "regex", 2341 "regex-lite", 2342 "reqwest", 2343 "serde", 2344 "serde_html_form", 2345 "serde_json", ··· 2432 "regex", 2433 "regex-lite", 2434 "reqwest", 2435 "serde", 2436 "serde_bytes", 2437 "serde_html_form", ··· 2461 "quote", 2462 "serde", 2463 "serde_json", 2464 - "syn 2.0.108", 2465 "unicode-segmentation", 2466 ] 2467 ··· 2481 "n0-future", 2482 "percent-encoding", 2483 "reqwest", 2484 "serde", 2485 "serde_html_form", 2486 "serde_json", ··· 2511 "reqwest", 2512 "serde", 2513 "serde_json", 2514 - "syn 2.0.108", 2515 "tempfile", 2516 "thiserror 2.0.17", 2517 "tokio", ··· 2541 "serde_repr", 2542 "serde_with", 2543 "sha2", 2544 - "syn 2.0.108", 2545 "tempfile", 2546 "thiserror 2.0.17", 2547 "unicode-segmentation", ··· 2565 "n0-future", 2566 "p256", 2567 "rand 0.8.5", 2568 "rouille", 2569 "serde", 2570 "serde_html_form", ··· 2686 2687 [[package]] 2688 name = "js-sys" 2689 - version = "0.3.82" 2690 source = "registry+https://github.com/rust-lang/crates.io-index" 2691 - checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" 2692 dependencies = [ 2693 "once_cell", 2694 "wasm-bindgen", ··· 2747 2748 [[package]] 2749 name = "libc" 2750 - version = "0.2.177" 2751 source = "registry+https://github.com/rust-lang/crates.io-index" 2752 - checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 2753 2754 [[package]] 2755 name = "libfuzzer-sys" ··· 2798 2799 [[package]] 2800 name = "litemap" 2801 - version = "0.8.0" 2802 source = "registry+https://github.com/rust-lang/crates.io-index" 2803 - checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 2804 2805 [[package]] 2806 name = "lock_api" ··· 2813 2814 [[package]] 2815 name = "log" 2816 - version = "0.4.28" 2817 source = "registry+https://github.com/rust-lang/crates.io-index" 2818 - checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 2819 2820 [[package]] 2821 name = "loom" ··· 2955 dependencies = [ 2956 "proc-macro2", 2957 "quote", 2958 - "syn 2.0.108", 2959 ] 2960 2961 [[package]] ··· 2994 2995 [[package]] 2996 name = "minicov" 2997 - version = "0.3.7" 2998 source = "registry+https://github.com/rust-lang/crates.io-index" 2999 - checksum = "f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b" 3000 dependencies = [ 3001 "cc", 3002 "walkdir", ··· 3030 3031 [[package]] 3032 name = "mio" 3033 - version = "1.1.0" 3034 source = "registry+https://github.com/rust-lang/crates.io-index" 3035 - checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 3036 dependencies = [ 3037 "libc", 3038 "wasi", ··· 3041 3042 [[package]] 3043 name = "moxcms" 3044 - version = "0.7.7" 3045 source = "registry+https://github.com/rust-lang/crates.io-index" 3046 - checksum = "c588e11a3082784af229e23e8e4ecf5bcc6fbe4f69101e0421ce8d79da7f0b40" 3047 dependencies = [ 3048 "num-traits", 3049 "pxfm", ··· 3183 3184 [[package]] 3185 name = "num-bigint-dig" 3186 - version = "0.8.4" 3187 source = "registry+https://github.com/rust-lang/crates.io-index" 3188 - checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" 3189 dependencies = [ 3190 - "byteorder", 3191 "lazy_static", 3192 "libm", 3193 "num-integer", ··· 3221 dependencies = [ 3222 "proc-macro2", 3223 "quote", 3224 - "syn 2.0.108", 3225 ] 3226 3227 [[package]] ··· 3331 checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 3332 3333 [[package]] 3334 name = "openssl-probe" 3335 version = "0.1.6" 3336 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3357 "proc-macro2", 3358 "proc-macro2-diagnostics", 3359 "quote", 3360 - "syn 2.0.108", 3361 ] 3362 3363 [[package]] ··· 3424 checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 3425 3426 [[package]] 3427 name = "pem-rfc7468" 3428 version = "0.7.0" 3429 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3493 dependencies = [ 3494 "proc-macro2", 3495 "quote", 3496 - "syn 2.0.108", 3497 ] 3498 3499 [[package]] ··· 3563 3564 [[package]] 3565 name = "potential_utf" 3566 - version = "0.1.3" 3567 source = "registry+https://github.com/rust-lang/crates.io-index" 3568 - checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 3569 dependencies = [ 3570 "zerovec", 3571 ] ··· 3608 checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 3609 dependencies = [ 3610 "proc-macro2", 3611 - "syn 2.0.108", 3612 ] 3613 3614 [[package]] ··· 3661 dependencies = [ 3662 "proc-macro2", 3663 "quote", 3664 - "syn 2.0.108", 3665 "version_check", 3666 "yansi", 3667 ] ··· 3682 checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3683 dependencies = [ 3684 "quote", 3685 - "syn 2.0.108", 3686 ] 3687 3688 [[package]] 3689 name = "pxfm" 3690 - version = "0.1.25" 3691 source = "registry+https://github.com/rust-lang/crates.io-index" 3692 - checksum = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84" 3693 dependencies = [ 3694 "num-traits", 3695 ] ··· 3772 3773 [[package]] 3774 name = "quote" 3775 - version = "1.0.41" 3776 source = "registry+https://github.com/rust-lang/crates.io-index" 3777 - checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 3778 dependencies = [ 3779 "proc-macro2", 3780 ] ··· 3852 3853 [[package]] 3854 name = "rav1e" 3855 - version = "0.7.1" 3856 source = "registry+https://github.com/rust-lang/crates.io-index" 3857 - checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" 3858 dependencies = [ 3859 "arbitrary", 3860 "arg_enum_proc_macro", 3861 "arrayvec", 3862 "av1-grain", 3863 "bitstream-io", 3864 "built", ··· 3873 "noop_proc_macro", 3874 "num-derive", 3875 "num-traits", 3876 - "once_cell", 3877 "paste", 3878 "profiling", 3879 - "rand 0.8.5", 3880 - "rand_chacha 0.3.1", 3881 "simd_helpers", 3882 - "system-deps", 3883 - "thiserror 1.0.69", 3884 "v_frame", 3885 "wasm-bindgen", 3886 ] 3887 3888 [[package]] 3889 name = "ravif" 3890 - version = "0.11.20" 3891 source = "registry+https://github.com/rust-lang/crates.io-index" 3892 - checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" 3893 dependencies = [ 3894 "avif-serialize", 3895 "imgref", ··· 3946 dependencies = [ 3947 "proc-macro2", 3948 "quote", 3949 - "syn 2.0.108", 3950 ] 3951 3952 [[package]] ··· 4040 4041 [[package]] 4042 name = "resolv-conf" 4043 - version = "0.7.5" 4044 source = "registry+https://github.com/rust-lang/crates.io-index" 4045 - checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" 4046 4047 [[package]] 4048 name = "rfc6979" ··· 4109 4110 [[package]] 4111 name = "rsa" 4112 - version = "0.9.8" 4113 source = "registry+https://github.com/rust-lang/crates.io-index" 4114 - checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" 4115 dependencies = [ 4116 "const-oid", 4117 "digest", ··· 4191 4192 [[package]] 4193 name = "rustls" 4194 - version = "0.23.34" 4195 source = "registry+https://github.com/rust-lang/crates.io-index" 4196 - checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" 4197 dependencies = [ 4198 "once_cell", 4199 "ring", ··· 4217 4218 [[package]] 4219 name = "rustls-pki-types" 4220 - version = "1.12.0" 4221 source = "registry+https://github.com/rust-lang/crates.io-index" 4222 - checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 4223 dependencies = [ 4224 "web-time", 4225 "zeroize", ··· 4227 4228 [[package]] 4229 name = "rustls-webpki" 4230 - version = "0.103.7" 4231 source = "registry+https://github.com/rust-lang/crates.io-index" 4232 - checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" 4233 dependencies = [ 4234 "ring", 4235 "rustls-pki-types", ··· 4286 4287 [[package]] 4288 name = "schemars" 4289 - version = "1.0.4" 4290 source = "registry+https://github.com/rust-lang/crates.io-index" 4291 - checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" 4292 dependencies = [ 4293 "dyn-clone", 4294 "ref-cast", ··· 4394 dependencies = [ 4395 "proc-macro2", 4396 "quote", 4397 - "syn 2.0.108", 4398 ] 4399 4400 [[package]] ··· 4404 checksum = "b2f2d7ff8a2140333718bb329f5c40fc5f0865b84c426183ce14c97d2ab8154f" 4405 dependencies = [ 4406 "form_urlencoded", 4407 - "indexmap 2.12.0", 4408 "itoa", 4409 "ryu", 4410 "serde_core", ··· 4439 source = "registry+https://github.com/rust-lang/crates.io-index" 4440 checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 4441 dependencies = [ 4442 - "indexmap 2.12.0", 4443 "itoa", 4444 "memchr", 4445 "ryu", ··· 4466 dependencies = [ 4467 "proc-macro2", 4468 "quote", 4469 - "syn 2.0.108", 4470 ] 4471 4472 [[package]] ··· 4501 4502 [[package]] 4503 name = "serde_with" 4504 - version = "3.15.1" 4505 source = "registry+https://github.com/rust-lang/crates.io-index" 4506 - checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" 4507 dependencies = [ 4508 "base64 0.22.1", 4509 "chrono", 4510 "hex", 4511 "indexmap 1.9.3", 4512 - "indexmap 2.12.0", 4513 "schemars 0.9.0", 4514 - "schemars 1.0.4", 4515 "serde_core", 4516 "serde_json", 4517 "serde_with_macros", ··· 4520 4521 [[package]] 4522 name = "serde_with_macros" 4523 - version = "3.15.1" 4524 source = "registry+https://github.com/rust-lang/crates.io-index" 4525 - checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" 4526 dependencies = [ 4527 "darling", 4528 "proc-macro2", 4529 "quote", 4530 - "syn 2.0.108", 4531 ] 4532 4533 [[package]] ··· 4575 4576 [[package]] 4577 name = "signal-hook-registry" 4578 - version = "1.4.6" 4579 source = "registry+https://github.com/rust-lang/crates.io-index" 4580 - checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 4581 dependencies = [ 4582 "libc", 4583 ] ··· 4594 4595 [[package]] 4596 name = "simd-adler32" 4597 - version = "0.3.7" 4598 source = "registry+https://github.com/rust-lang/crates.io-index" 4599 - checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 4600 4601 [[package]] 4602 name = "simd_helpers" ··· 4702 "quote", 4703 "serde", 4704 "sha2", 4705 - "syn 2.0.108", 4706 "thiserror 1.0.69", 4707 ] 4708 ··· 4783 4784 [[package]] 4785 name = "syn" 4786 - version = "2.0.108" 4787 source = "registry+https://github.com/rust-lang/crates.io-index" 4788 - checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" 4789 dependencies = [ 4790 "proc-macro2", 4791 "quote", ··· 4809 dependencies = [ 4810 "proc-macro2", 4811 "quote", 4812 - "syn 2.0.108", 4813 ] 4814 4815 [[package]] ··· 4834 ] 4835 4836 [[package]] 4837 - name = "system-deps" 4838 - version = "6.2.2" 4839 - source = "registry+https://github.com/rust-lang/crates.io-index" 4840 - checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" 4841 - dependencies = [ 4842 - "cfg-expr", 4843 - "heck 0.5.0", 4844 - "pkg-config", 4845 - "toml 0.8.23", 4846 - "version-compare", 4847 - ] 4848 - 4849 - [[package]] 4850 name = "tagptr" 4851 version = "0.2.0" 4852 source = "registry+https://github.com/rust-lang/crates.io-index" 4853 checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 4854 4855 [[package]] 4856 - name = "target-lexicon" 4857 - version = "0.12.16" 4858 - source = "registry+https://github.com/rust-lang/crates.io-index" 4859 - checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 4860 - 4861 - [[package]] 4862 name = "target-triple" 4863 version = "1.0.0" 4864 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4943 dependencies = [ 4944 "proc-macro2", 4945 "quote", 4946 - "syn 2.0.108", 4947 ] 4948 4949 [[package]] ··· 4954 dependencies = [ 4955 "proc-macro2", 4956 "quote", 4957 - "syn 2.0.108", 4958 ] 4959 4960 [[package]] ··· 4997 "half", 4998 "quick-error 2.0.1", 4999 "weezl", 5000 - "zune-jpeg", 5001 ] 5002 5003 [[package]] ··· 5047 5048 [[package]] 5049 name = "tinystr" 5050 - version = "0.8.1" 5051 source = "registry+https://github.com/rust-lang/crates.io-index" 5052 - checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 5053 dependencies = [ 5054 "displaydoc", 5055 "zerovec", ··· 5095 dependencies = [ 5096 "proc-macro2", 5097 "quote", 5098 - "syn 2.0.108", 5099 ] 5100 5101 [[package]] ··· 5145 5146 [[package]] 5147 name = "tokio-util" 5148 - version = "0.7.16" 5149 source = "registry+https://github.com/rust-lang/crates.io-index" 5150 - checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 5151 dependencies = [ 5152 "bytes", 5153 "futures-core", ··· 5175 source = "registry+https://github.com/rust-lang/crates.io-index" 5176 checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 5177 dependencies = [ 5178 - "indexmap 2.12.0", 5179 "serde_core", 5180 "serde_spanned 1.0.3", 5181 "toml_datetime 0.7.3", 5182 "toml_parser", 5183 "toml_writer", 5184 - "winnow 0.7.13", 5185 ] 5186 5187 [[package]] ··· 5208 source = "registry+https://github.com/rust-lang/crates.io-index" 5209 checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 5210 dependencies = [ 5211 - "indexmap 2.12.0", 5212 "serde", 5213 "serde_spanned 0.6.9", 5214 "toml_datetime 0.6.11", 5215 "toml_write", 5216 - "winnow 0.7.13", 5217 ] 5218 5219 [[package]] ··· 5222 source = "registry+https://github.com/rust-lang/crates.io-index" 5223 checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 5224 dependencies = [ 5225 - "winnow 0.7.13", 5226 ] 5227 5228 [[package]] ··· 5255 5256 [[package]] 5257 name = "tower-http" 5258 - version = "0.6.6" 5259 source = "registry+https://github.com/rust-lang/crates.io-index" 5260 - checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 5261 dependencies = [ 5262 "bitflags", 5263 "bytes", ··· 5286 5287 [[package]] 5288 name = "tracing" 5289 - version = "0.1.41" 5290 source = "registry+https://github.com/rust-lang/crates.io-index" 5291 - checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 5292 dependencies = [ 5293 "log", 5294 "pin-project-lite", ··· 5298 5299 [[package]] 5300 name = "tracing-attributes" 5301 - version = "0.1.30" 5302 source = "registry+https://github.com/rust-lang/crates.io-index" 5303 - checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 5304 dependencies = [ 5305 "proc-macro2", 5306 "quote", 5307 - "syn 2.0.108", 5308 ] 5309 5310 [[package]] 5311 name = "tracing-core" 5312 - version = "0.1.34" 5313 source = "registry+https://github.com/rust-lang/crates.io-index" 5314 - checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 5315 dependencies = [ 5316 "once_cell", 5317 "valuable", ··· 5330 5331 [[package]] 5332 name = "tracing-subscriber" 5333 - version = "0.3.20" 5334 source = "registry+https://github.com/rust-lang/crates.io-index" 5335 - checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" 5336 dependencies = [ 5337 "matchers", 5338 "nu-ansi-term", ··· 5355 dependencies = [ 5356 "proc-macro2", 5357 "quote", 5358 - "syn 2.0.108", 5359 ] 5360 5361 [[package]] ··· 5447 dependencies = [ 5448 "proc-macro2", 5449 "quote", 5450 - "syn 2.0.108", 5451 ] 5452 5453 [[package]] ··· 5458 5459 [[package]] 5460 name = "unicode-ident" 5461 - version = "1.0.20" 5462 source = "registry+https://github.com/rust-lang/crates.io-index" 5463 - checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" 5464 5465 [[package]] 5466 name = "unicode-linebreak" ··· 5548 5549 [[package]] 5550 name = "uuid" 5551 - version = "1.18.1" 5552 source = "registry+https://github.com/rust-lang/crates.io-index" 5553 - checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" 5554 dependencies = [ 5555 "js-sys", 5556 "wasm-bindgen", ··· 5572 version = "0.1.1" 5573 source = "registry+https://github.com/rust-lang/crates.io-index" 5574 checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 5575 - 5576 - [[package]] 5577 - name = "version-compare" 5578 - version = "0.2.0" 5579 - source = "registry+https://github.com/rust-lang/crates.io-index" 5580 - checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" 5581 5582 [[package]] 5583 name = "version_check" ··· 5637 5638 [[package]] 5639 name = "wasm-bindgen" 5640 - version = "0.2.105" 5641 source = "registry+https://github.com/rust-lang/crates.io-index" 5642 - checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" 5643 dependencies = [ 5644 "cfg-if", 5645 "once_cell", ··· 5650 5651 [[package]] 5652 name = "wasm-bindgen-futures" 5653 - version = "0.4.55" 5654 source = "registry+https://github.com/rust-lang/crates.io-index" 5655 - checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" 5656 dependencies = [ 5657 "cfg-if", 5658 "js-sys", ··· 5663 5664 [[package]] 5665 name = "wasm-bindgen-macro" 5666 - version = "0.2.105" 5667 source = "registry+https://github.com/rust-lang/crates.io-index" 5668 - checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" 5669 dependencies = [ 5670 "quote", 5671 "wasm-bindgen-macro-support", ··· 5673 5674 [[package]] 5675 name = "wasm-bindgen-macro-support" 5676 - version = "0.2.105" 5677 source = "registry+https://github.com/rust-lang/crates.io-index" 5678 - checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" 5679 dependencies = [ 5680 "bumpalo", 5681 "proc-macro2", 5682 "quote", 5683 - "syn 2.0.108", 5684 "wasm-bindgen-shared", 5685 ] 5686 5687 [[package]] 5688 name = "wasm-bindgen-shared" 5689 - version = "0.2.105" 5690 source = "registry+https://github.com/rust-lang/crates.io-index" 5691 - checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" 5692 dependencies = [ 5693 "unicode-ident", 5694 ] 5695 5696 [[package]] 5697 name = "wasm-bindgen-test" 5698 - version = "0.3.55" 5699 source = "registry+https://github.com/rust-lang/crates.io-index" 5700 - checksum = "bfc379bfb624eb59050b509c13e77b4eb53150c350db69628141abce842f2373" 5701 dependencies = [ 5702 "js-sys", 5703 "minicov", 5704 "wasm-bindgen", 5705 "wasm-bindgen-futures", 5706 "wasm-bindgen-test-macro", ··· 5708 5709 [[package]] 5710 name = "wasm-bindgen-test-macro" 5711 - version = "0.3.55" 5712 source = "registry+https://github.com/rust-lang/crates.io-index" 5713 - checksum = "085b2df989e1e6f9620c1311df6c996e83fe16f57792b272ce1e024ac16a90f1" 5714 dependencies = [ 5715 "proc-macro2", 5716 "quote", 5717 - "syn 2.0.108", 5718 ] 5719 5720 [[package]] ··· 5732 5733 [[package]] 5734 name = "web-sys" 5735 - version = "0.3.82" 5736 source = "registry+https://github.com/rust-lang/crates.io-index" 5737 - checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" 5738 dependencies = [ 5739 "js-sys", 5740 "wasm-bindgen", ··· 5780 5781 [[package]] 5782 name = "webpki-roots" 5783 - version = "1.0.3" 5784 source = "registry+https://github.com/rust-lang/crates.io-index" 5785 - checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" 5786 dependencies = [ 5787 "rustls-pki-types", 5788 ] 5789 5790 [[package]] 5791 name = "weezl" 5792 - version = "0.1.10" 5793 source = "registry+https://github.com/rust-lang/crates.io-index" 5794 - checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" 5795 5796 [[package]] 5797 name = "widestring" ··· 5897 dependencies = [ 5898 "proc-macro2", 5899 "quote", 5900 - "syn 2.0.108", 5901 ] 5902 5903 [[package]] ··· 5908 dependencies = [ 5909 "proc-macro2", 5910 "quote", 5911 - "syn 2.0.108", 5912 ] 5913 5914 [[package]] ··· 5935 5936 [[package]] 5937 name = "windows-registry" 5938 - version = "0.5.3" 5939 source = "registry+https://github.com/rust-lang/crates.io-index" 5940 - checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" 5941 dependencies = [ 5942 - "windows-link 0.1.3", 5943 - "windows-result 0.3.4", 5944 - "windows-strings 0.4.2", 5945 ] 5946 5947 [[package]] ··· 6297 6298 [[package]] 6299 name = "winnow" 6300 - version = "0.7.13" 6301 source = "registry+https://github.com/rust-lang/crates.io-index" 6302 - checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 6303 dependencies = [ 6304 "memchr", 6305 ] ··· 6322 6323 [[package]] 6324 name = "writeable" 6325 - version = "0.6.1" 6326 source = "registry+https://github.com/rust-lang/crates.io-index" 6327 - checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 6328 6329 [[package]] 6330 name = "xml5ever" ··· 6338 ] 6339 6340 [[package]] 6341 name = "yansi" 6342 version = "1.0.1" 6343 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6345 6346 [[package]] 6347 name = "yoke" 6348 - version = "0.8.0" 6349 source = "registry+https://github.com/rust-lang/crates.io-index" 6350 - checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 6351 dependencies = [ 6352 - "serde", 6353 "stable_deref_trait", 6354 "yoke-derive", 6355 "zerofrom", ··· 6357 6358 [[package]] 6359 name = "yoke-derive" 6360 - version = "0.8.0" 6361 source = "registry+https://github.com/rust-lang/crates.io-index" 6362 - checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 6363 dependencies = [ 6364 "proc-macro2", 6365 "quote", 6366 - "syn 2.0.108", 6367 "synstructure", 6368 ] 6369 6370 [[package]] 6371 name = "zerocopy" 6372 - version = "0.8.27" 6373 source = "registry+https://github.com/rust-lang/crates.io-index" 6374 - checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 6375 dependencies = [ 6376 "zerocopy-derive", 6377 ] 6378 6379 [[package]] 6380 name = "zerocopy-derive" 6381 - version = "0.8.27" 6382 source = "registry+https://github.com/rust-lang/crates.io-index" 6383 - checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 6384 dependencies = [ 6385 "proc-macro2", 6386 "quote", 6387 - "syn 2.0.108", 6388 ] 6389 6390 [[package]] ··· 6404 dependencies = [ 6405 "proc-macro2", 6406 "quote", 6407 - "syn 2.0.108", 6408 "synstructure", 6409 ] 6410 ··· 6419 6420 [[package]] 6421 name = "zerotrie" 6422 - version = "0.2.2" 6423 source = "registry+https://github.com/rust-lang/crates.io-index" 6424 - checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 6425 dependencies = [ 6426 "displaydoc", 6427 "yoke", ··· 6430 6431 [[package]] 6432 name = "zerovec" 6433 - version = "0.11.4" 6434 source = "registry+https://github.com/rust-lang/crates.io-index" 6435 - checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 6436 dependencies = [ 6437 "yoke", 6438 "zerofrom", ··· 6441 6442 [[package]] 6443 name = "zerovec-derive" 6444 - version = "0.11.1" 6445 source = "registry+https://github.com/rust-lang/crates.io-index" 6446 - checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 6447 dependencies = [ 6448 "proc-macro2", 6449 "quote", 6450 - "syn 2.0.108", 6451 ] 6452 6453 [[package]] ··· 6485 checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" 6486 6487 [[package]] 6488 name = "zune-inflate" 6489 version = "0.2.54" 6490 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6499 source = "registry+https://github.com/rust-lang/crates.io-index" 6500 checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" 6501 dependencies = [ 6502 - "zune-core", 6503 ]
··· 50 51 [[package]] 52 name = "aho-corasick" 53 + version = "1.1.4" 54 source = "registry+https://github.com/rust-lang/crates.io-index" 55 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 56 dependencies = [ 57 "memchr", 58 ] ··· 62 version = "0.1.3" 63 source = "registry+https://github.com/rust-lang/crates.io-index" 64 checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" 65 + 66 + [[package]] 67 + name = "aligned" 68 + version = "0.4.2" 69 + source = "registry+https://github.com/rust-lang/crates.io-index" 70 + checksum = "377e4c0ba83e4431b10df45c1d4666f178ea9c552cac93e60c3a88bf32785923" 71 + dependencies = [ 72 + "as-slice", 73 + ] 74 75 [[package]] 76 name = "aligned-vec" ··· 146 147 [[package]] 148 name = "anstyle-query" 149 + version = "1.1.5" 150 source = "registry+https://github.com/rust-lang/crates.io-index" 151 + checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 152 dependencies = [ 153 + "windows-sys 0.61.2", 154 ] 155 156 [[package]] 157 name = "anstyle-wincon" 158 + version = "3.0.11" 159 source = "registry+https://github.com/rust-lang/crates.io-index" 160 + checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 161 dependencies = [ 162 "anstyle", 163 "once_cell_polyfill", 164 + "windows-sys 0.61.2", 165 ] 166 167 [[package]] ··· 184 dependencies = [ 185 "proc-macro2", 186 "quote", 187 + "syn 2.0.111", 188 ] 189 190 [[package]] ··· 194 checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 195 196 [[package]] 197 + name = "as-slice" 198 + version = "0.2.1" 199 + source = "registry+https://github.com/rust-lang/crates.io-index" 200 + checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" 201 + dependencies = [ 202 + "stable_deref_trait", 203 + ] 204 + 205 + [[package]] 206 name = "ascii" 207 version = "1.1.0" 208 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 210 211 [[package]] 212 name = "async-compression" 213 + version = "0.4.35" 214 source = "registry+https://github.com/rust-lang/crates.io-index" 215 + checksum = "07a926debf178f2d355197f9caddb08e54a9329d44748034bba349c5848cb519" 216 dependencies = [ 217 "compression-codecs", 218 "compression-core", ··· 229 dependencies = [ 230 "proc-macro2", 231 "quote", 232 + "syn 2.0.111", 233 ] 234 235 [[package]] ··· 252 version = "1.5.0" 253 source = "registry+https://github.com/rust-lang/crates.io-index" 254 checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 255 + 256 + [[package]] 257 + name = "av-scenechange" 258 + version = "0.14.1" 259 + source = "registry+https://github.com/rust-lang/crates.io-index" 260 + checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394" 261 + dependencies = [ 262 + "aligned", 263 + "anyhow", 264 + "arg_enum_proc_macro", 265 + "arrayvec", 266 + "log", 267 + "num-rational", 268 + "num-traits", 269 + "pastey", 270 + "rayon", 271 + "thiserror 2.0.17", 272 + "v_frame", 273 + "y4m", 274 + ] 275 276 [[package]] 277 name = "av1-grain" ··· 298 299 [[package]] 300 name = "axum" 301 + version = "0.8.7" 302 source = "registry+https://github.com/rust-lang/crates.io-index" 303 + checksum = "5b098575ebe77cb6d14fc7f32749631a6e44edbef6b796f89b020e99ba20d425" 304 dependencies = [ 305 "axum-core", 306 "bytes", ··· 356 dependencies = [ 357 "proc-macro2", 358 "quote", 359 + "syn 2.0.111", 360 ] 361 362 [[package]] 363 name = "axum-test" 364 + version = "18.4.1" 365 source = "registry+https://github.com/rust-lang/crates.io-index" 366 + checksum = "3290e73c56c5cc4701cdd7d46b9ced1b4bd61c7e9f9c769a9e9e87ff617d75d2" 367 dependencies = [ 368 "anyhow", 369 "axum", ··· 448 449 [[package]] 450 name = "base64ct" 451 + version = "1.8.1" 452 source = "registry+https://github.com/rust-lang/crates.io-index" 453 + checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" 454 455 [[package]] 456 name = "bit_field" ··· 466 467 [[package]] 468 name = "bitstream-io" 469 + version = "4.9.0" 470 source = "registry+https://github.com/rust-lang/crates.io-index" 471 + checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" 472 + dependencies = [ 473 + "core2", 474 + ] 475 476 [[package]] 477 name = "block-buffer" ··· 504 "proc-macro2", 505 "quote", 506 "rustversion", 507 + "syn 2.0.111", 508 ] 509 510 [[package]] 511 name = "borsh" 512 + version = "1.6.0" 513 source = "registry+https://github.com/rust-lang/crates.io-index" 514 + checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" 515 dependencies = [ 516 "cfg_aliases", 517 ] ··· 573 574 [[package]] 575 name = "built" 576 + version = "0.8.0" 577 source = "registry+https://github.com/rust-lang/crates.io-index" 578 + checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" 579 580 [[package]] 581 name = "bumpalo" ··· 603 604 [[package]] 605 name = "bytes" 606 + version = "1.11.0" 607 source = "registry+https://github.com/rust-lang/crates.io-index" 608 + checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 609 dependencies = [ 610 "serde", 611 ] 612 613 [[package]] 614 name = "bytesize" 615 + version = "2.3.1" 616 + source = "registry+https://github.com/rust-lang/crates.io-index" 617 + checksum = "6bd91ee7b2422bcb158d90ef4d14f75ef67f340943fc4149891dcce8f8b972a3" 618 + 619 + [[package]] 620 + name = "cast" 621 + version = "0.3.0" 622 source = "registry+https://github.com/rust-lang/crates.io-index" 623 + checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" 624 625 [[package]] 626 name = "cbor4ii" ··· 633 634 [[package]] 635 name = "cc" 636 + version = "1.2.49" 637 source = "registry+https://github.com/rust-lang/crates.io-index" 638 + checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" 639 dependencies = [ 640 "find-msvc-tools", 641 "jobserver", ··· 657 version = "1.1.0" 658 source = "registry+https://github.com/rust-lang/crates.io-index" 659 checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 660 661 [[package]] 662 name = "cfg-if" ··· 733 734 [[package]] 735 name = "clap" 736 + version = "4.5.53" 737 source = "registry+https://github.com/rust-lang/crates.io-index" 738 + checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" 739 dependencies = [ 740 "clap_builder", 741 "clap_derive", ··· 743 744 [[package]] 745 name = "clap_builder" 746 + version = "4.5.53" 747 source = "registry+https://github.com/rust-lang/crates.io-index" 748 + checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" 749 dependencies = [ 750 "anstream", 751 "anstyle", ··· 755 756 [[package]] 757 name = "clap_complete" 758 + version = "4.5.61" 759 source = "registry+https://github.com/rust-lang/crates.io-index" 760 + checksum = "39615915e2ece2550c0149addac32fb5bd312c657f43845bb9088cb9c8a7c992" 761 dependencies = [ 762 "clap", 763 ] ··· 771 "heck 0.5.0", 772 "proc-macro2", 773 "quote", 774 + "syn 2.0.111", 775 ] 776 777 [[package]] ··· 823 824 [[package]] 825 name = "compression-codecs" 826 + version = "0.4.34" 827 source = "registry+https://github.com/rust-lang/crates.io-index" 828 + checksum = "34a3cbbb8b6eca96f3a5c4bf6938d5b27ced3675d69f95bb51948722870bc323" 829 dependencies = [ 830 "compression-core", 831 "flate2", ··· 834 835 [[package]] 836 name = "compression-core" 837 + version = "0.4.31" 838 source = "registry+https://github.com/rust-lang/crates.io-index" 839 + checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" 840 841 [[package]] 842 name = "console" ··· 1049 dependencies = [ 1050 "proc-macro2", 1051 "quote", 1052 + "syn 2.0.111", 1053 ] 1054 1055 [[package]] ··· 1073 "proc-macro2", 1074 "quote", 1075 "strsim", 1076 + "syn 2.0.111", 1077 ] 1078 1079 [[package]] ··· 1084 dependencies = [ 1085 "darling_core", 1086 "quote", 1087 + "syn 2.0.111", 1088 ] 1089 1090 [[package]] ··· 1124 checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" 1125 dependencies = [ 1126 "data-encoding", 1127 + "syn 2.0.111", 1128 ] 1129 1130 [[package]] ··· 1175 dependencies = [ 1176 "proc-macro2", 1177 "quote", 1178 + "syn 2.0.111", 1179 "unicode-xid", 1180 ] 1181 ··· 1211 dependencies = [ 1212 "proc-macro2", 1213 "quote", 1214 + "syn 2.0.111", 1215 ] 1216 1217 [[package]] ··· 1330 "heck 0.5.0", 1331 "proc-macro2", 1332 "quote", 1333 + "syn 2.0.111", 1334 ] 1335 1336 [[package]] ··· 1350 dependencies = [ 1351 "proc-macro2", 1352 "quote", 1353 + "syn 2.0.111", 1354 ] 1355 1356 [[package]] ··· 1361 1362 [[package]] 1363 name = "erased-serde" 1364 + version = "0.4.9" 1365 source = "registry+https://github.com/rust-lang/crates.io-index" 1366 + checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 1367 dependencies = [ 1368 "serde", 1369 "serde_core", ··· 1382 1383 [[package]] 1384 name = "expect-json" 1385 + version = "1.7.1" 1386 source = "registry+https://github.com/rust-lang/crates.io-index" 1387 + checksum = "422e7906e79941e5ac58c64dfd2da03e6ae3de62227f87606fbbe125d91080f9" 1388 dependencies = [ 1389 "chrono", 1390 "email_address", 1391 "expect-json-macros", 1392 "num", 1393 + "regex", 1394 "serde", 1395 "serde_json", 1396 "thiserror 2.0.17", ··· 1400 1401 [[package]] 1402 name = "expect-json-macros" 1403 + version = "1.7.1" 1404 source = "registry+https://github.com/rust-lang/crates.io-index" 1405 + checksum = "e6b515b7f10f1e61bfd938522e9884509b82060af2016153f5b3d6f44d6da89c" 1406 dependencies = [ 1407 "proc-macro2", 1408 "quote", 1409 + "syn 2.0.111", 1410 ] 1411 1412 [[package]] 1413 name = "exr" 1414 + version = "1.74.0" 1415 source = "registry+https://github.com/rust-lang/crates.io-index" 1416 + checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" 1417 dependencies = [ 1418 "bit_field", 1419 "half", ··· 1447 dependencies = [ 1448 "proc-macro2", 1449 "quote", 1450 + "syn 2.0.111", 1451 ] 1452 1453 [[package]] ··· 1489 1490 [[package]] 1491 name = "find-msvc-tools" 1492 + version = "0.1.5" 1493 source = "registry+https://github.com/rust-lang/crates.io-index" 1494 + checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" 1495 1496 [[package]] 1497 name = "flate2" ··· 1610 dependencies = [ 1611 "proc-macro2", 1612 "quote", 1613 + "syn 2.0.111", 1614 ] 1615 1616 [[package]] ··· 1697 1698 [[package]] 1699 name = "gif" 1700 + version = "0.14.1" 1701 source = "registry+https://github.com/rust-lang/crates.io-index" 1702 + checksum = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e" 1703 dependencies = [ 1704 "color_quant", 1705 "weezl", ··· 1777 "futures-core", 1778 "futures-sink", 1779 "http", 1780 + "indexmap 2.12.1", 1781 "slab", 1782 "tokio", 1783 "tokio-util", ··· 1818 1819 [[package]] 1820 name = "hashbrown" 1821 + version = "0.16.1" 1822 source = "registry+https://github.com/rust-lang/crates.io-index" 1823 + checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 1824 1825 [[package]] 1826 name = "heapless" ··· 1931 "markup5ever", 1932 "proc-macro2", 1933 "quote", 1934 + "syn 2.0.111", 1935 ] 1936 1937 [[package]] 1938 name = "http" 1939 + version = "1.4.0" 1940 source = "registry+https://github.com/rust-lang/crates.io-index" 1941 + checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" 1942 dependencies = [ 1943 "bytes", 1944 "itoa", 1945 ] 1946 ··· 1981 1982 [[package]] 1983 name = "hyper" 1984 + version = "1.8.1" 1985 source = "registry+https://github.com/rust-lang/crates.io-index" 1986 + checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 1987 dependencies = [ 1988 "atomic-waker", 1989 "bytes", ··· 2021 2022 [[package]] 2023 name = "hyper-util" 2024 + version = "0.1.19" 2025 source = "registry+https://github.com/rust-lang/crates.io-index" 2026 + checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" 2027 dependencies = [ 2028 "base64 0.22.1", 2029 "bytes", ··· 2071 2072 [[package]] 2073 name = "icu_collections" 2074 + version = "2.1.1" 2075 source = "registry+https://github.com/rust-lang/crates.io-index" 2076 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 2077 dependencies = [ 2078 "displaydoc", 2079 "potential_utf", ··· 2084 2085 [[package]] 2086 name = "icu_locale_core" 2087 + version = "2.1.1" 2088 source = "registry+https://github.com/rust-lang/crates.io-index" 2089 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 2090 dependencies = [ 2091 "displaydoc", 2092 "litemap", ··· 2097 2098 [[package]] 2099 name = "icu_normalizer" 2100 + version = "2.1.1" 2101 source = "registry+https://github.com/rust-lang/crates.io-index" 2102 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 2103 dependencies = [ 2104 "icu_collections", 2105 "icu_normalizer_data", 2106 "icu_properties", ··· 2111 2112 [[package]] 2113 name = "icu_normalizer_data" 2114 + version = "2.1.1" 2115 source = "registry+https://github.com/rust-lang/crates.io-index" 2116 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 2117 2118 [[package]] 2119 name = "icu_properties" 2120 + version = "2.1.1" 2121 source = "registry+https://github.com/rust-lang/crates.io-index" 2122 + checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" 2123 dependencies = [ 2124 "icu_collections", 2125 "icu_locale_core", 2126 "icu_properties_data", 2127 "icu_provider", 2128 "zerotrie", 2129 "zerovec", 2130 ] 2131 2132 [[package]] 2133 name = "icu_properties_data" 2134 + version = "2.1.1" 2135 source = "registry+https://github.com/rust-lang/crates.io-index" 2136 + checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" 2137 2138 [[package]] 2139 name = "icu_provider" 2140 + version = "2.1.1" 2141 source = "registry+https://github.com/rust-lang/crates.io-index" 2142 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 2143 dependencies = [ 2144 "displaydoc", 2145 "icu_locale_core", 2146 "writeable", 2147 "yoke", 2148 "zerofrom", ··· 2179 2180 [[package]] 2181 name = "image" 2182 + version = "0.25.9" 2183 source = "registry+https://github.com/rust-lang/crates.io-index" 2184 + checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" 2185 dependencies = [ 2186 "bytemuck", 2187 "byteorder-lite", ··· 2197 "rayon", 2198 "rgb", 2199 "tiff 0.10.3", 2200 + "zune-core 0.5.0", 2201 + "zune-jpeg 0.5.6", 2202 ] 2203 2204 [[package]] ··· 2230 2231 [[package]] 2232 name = "indexmap" 2233 + version = "2.12.1" 2234 source = "registry+https://github.com/rust-lang/crates.io-index" 2235 + checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" 2236 dependencies = [ 2237 "equivalent", 2238 + "hashbrown 0.16.1", 2239 "serde", 2240 "serde_core", 2241 ] ··· 2257 dependencies = [ 2258 "proc-macro2", 2259 "quote", 2260 + "syn 2.0.111", 2261 ] 2262 2263 [[package]] ··· 2300 2301 [[package]] 2302 name = "iri-string" 2303 + version = "0.7.9" 2304 source = "registry+https://github.com/rust-lang/crates.io-index" 2305 + checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" 2306 dependencies = [ 2307 "memchr", 2308 "serde", ··· 2338 2339 [[package]] 2340 name = "itertools" 2341 + version = "0.14.0" 2342 source = "registry+https://github.com/rust-lang/crates.io-index" 2343 + checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 2344 dependencies = [ 2345 "either", 2346 ] ··· 2372 "regex", 2373 "regex-lite", 2374 "reqwest", 2375 + "ring", 2376 "serde", 2377 "serde_html_form", 2378 "serde_json", ··· 2465 "regex", 2466 "regex-lite", 2467 "reqwest", 2468 + "ring", 2469 "serde", 2470 "serde_bytes", 2471 "serde_html_form", ··· 2495 "quote", 2496 "serde", 2497 "serde_json", 2498 + "syn 2.0.111", 2499 "unicode-segmentation", 2500 ] 2501 ··· 2515 "n0-future", 2516 "percent-encoding", 2517 "reqwest", 2518 + "ring", 2519 "serde", 2520 "serde_html_form", 2521 "serde_json", ··· 2546 "reqwest", 2547 "serde", 2548 "serde_json", 2549 + "syn 2.0.111", 2550 "tempfile", 2551 "thiserror 2.0.17", 2552 "tokio", ··· 2576 "serde_repr", 2577 "serde_with", 2578 "sha2", 2579 + "syn 2.0.111", 2580 "tempfile", 2581 "thiserror 2.0.17", 2582 "unicode-segmentation", ··· 2600 "n0-future", 2601 "p256", 2602 "rand 0.8.5", 2603 + "ring", 2604 "rouille", 2605 "serde", 2606 "serde_html_form", ··· 2722 2723 [[package]] 2724 name = "js-sys" 2725 + version = "0.3.83" 2726 source = "registry+https://github.com/rust-lang/crates.io-index" 2727 + checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" 2728 dependencies = [ 2729 "once_cell", 2730 "wasm-bindgen", ··· 2783 2784 [[package]] 2785 name = "libc" 2786 + version = "0.2.178" 2787 source = "registry+https://github.com/rust-lang/crates.io-index" 2788 + checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" 2789 2790 [[package]] 2791 name = "libfuzzer-sys" ··· 2834 2835 [[package]] 2836 name = "litemap" 2837 + version = "0.8.1" 2838 source = "registry+https://github.com/rust-lang/crates.io-index" 2839 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 2840 2841 [[package]] 2842 name = "lock_api" ··· 2849 2850 [[package]] 2851 name = "log" 2852 + version = "0.4.29" 2853 source = "registry+https://github.com/rust-lang/crates.io-index" 2854 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 2855 2856 [[package]] 2857 name = "loom" ··· 2991 dependencies = [ 2992 "proc-macro2", 2993 "quote", 2994 + "syn 2.0.111", 2995 ] 2996 2997 [[package]] ··· 3030 3031 [[package]] 3032 name = "minicov" 3033 + version = "0.3.8" 3034 source = "registry+https://github.com/rust-lang/crates.io-index" 3035 + checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d" 3036 dependencies = [ 3037 "cc", 3038 "walkdir", ··· 3066 3067 [[package]] 3068 name = "mio" 3069 + version = "1.1.1" 3070 source = "registry+https://github.com/rust-lang/crates.io-index" 3071 + checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 3072 dependencies = [ 3073 "libc", 3074 "wasi", ··· 3077 3078 [[package]] 3079 name = "moxcms" 3080 + version = "0.7.10" 3081 source = "registry+https://github.com/rust-lang/crates.io-index" 3082 + checksum = "80986bbbcf925ebd3be54c26613d861255284584501595cf418320c078945608" 3083 dependencies = [ 3084 "num-traits", 3085 "pxfm", ··· 3219 3220 [[package]] 3221 name = "num-bigint-dig" 3222 + version = "0.8.6" 3223 source = "registry+https://github.com/rust-lang/crates.io-index" 3224 + checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" 3225 dependencies = [ 3226 "lazy_static", 3227 "libm", 3228 "num-integer", ··· 3256 dependencies = [ 3257 "proc-macro2", 3258 "quote", 3259 + "syn 2.0.111", 3260 ] 3261 3262 [[package]] ··· 3366 checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 3367 3368 [[package]] 3369 + name = "oorandom" 3370 + version = "11.1.5" 3371 + source = "registry+https://github.com/rust-lang/crates.io-index" 3372 + checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" 3373 + 3374 + [[package]] 3375 name = "openssl-probe" 3376 version = "0.1.6" 3377 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3398 "proc-macro2", 3399 "proc-macro2-diagnostics", 3400 "quote", 3401 + "syn 2.0.111", 3402 ] 3403 3404 [[package]] ··· 3465 checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 3466 3467 [[package]] 3468 + name = "pastey" 3469 + version = "0.1.1" 3470 + source = "registry+https://github.com/rust-lang/crates.io-index" 3471 + checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" 3472 + 3473 + [[package]] 3474 name = "pem-rfc7468" 3475 version = "0.7.0" 3476 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3540 dependencies = [ 3541 "proc-macro2", 3542 "quote", 3543 + "syn 2.0.111", 3544 ] 3545 3546 [[package]] ··· 3610 3611 [[package]] 3612 name = "potential_utf" 3613 + version = "0.1.4" 3614 source = "registry+https://github.com/rust-lang/crates.io-index" 3615 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 3616 dependencies = [ 3617 "zerovec", 3618 ] ··· 3655 checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 3656 dependencies = [ 3657 "proc-macro2", 3658 + "syn 2.0.111", 3659 ] 3660 3661 [[package]] ··· 3708 dependencies = [ 3709 "proc-macro2", 3710 "quote", 3711 + "syn 2.0.111", 3712 "version_check", 3713 "yansi", 3714 ] ··· 3729 checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3730 dependencies = [ 3731 "quote", 3732 + "syn 2.0.111", 3733 ] 3734 3735 [[package]] 3736 name = "pxfm" 3737 + version = "0.1.27" 3738 source = "registry+https://github.com/rust-lang/crates.io-index" 3739 + checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" 3740 dependencies = [ 3741 "num-traits", 3742 ] ··· 3819 3820 [[package]] 3821 name = "quote" 3822 + version = "1.0.42" 3823 source = "registry+https://github.com/rust-lang/crates.io-index" 3824 + checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 3825 dependencies = [ 3826 "proc-macro2", 3827 ] ··· 3899 3900 [[package]] 3901 name = "rav1e" 3902 + version = "0.8.1" 3903 source = "registry+https://github.com/rust-lang/crates.io-index" 3904 + checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" 3905 dependencies = [ 3906 + "aligned-vec", 3907 "arbitrary", 3908 "arg_enum_proc_macro", 3909 "arrayvec", 3910 + "av-scenechange", 3911 "av1-grain", 3912 "bitstream-io", 3913 "built", ··· 3922 "noop_proc_macro", 3923 "num-derive", 3924 "num-traits", 3925 "paste", 3926 "profiling", 3927 + "rand 0.9.2", 3928 + "rand_chacha 0.9.0", 3929 "simd_helpers", 3930 + "thiserror 2.0.17", 3931 "v_frame", 3932 "wasm-bindgen", 3933 ] 3934 3935 [[package]] 3936 name = "ravif" 3937 + version = "0.12.0" 3938 source = "registry+https://github.com/rust-lang/crates.io-index" 3939 + checksum = "ef69c1990ceef18a116855938e74793a5f7496ee907562bd0857b6ac734ab285" 3940 dependencies = [ 3941 "avif-serialize", 3942 "imgref", ··· 3993 dependencies = [ 3994 "proc-macro2", 3995 "quote", 3996 + "syn 2.0.111", 3997 ] 3998 3999 [[package]] ··· 4087 4088 [[package]] 4089 name = "resolv-conf" 4090 + version = "0.7.6" 4091 source = "registry+https://github.com/rust-lang/crates.io-index" 4092 + checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" 4093 4094 [[package]] 4095 name = "rfc6979" ··· 4156 4157 [[package]] 4158 name = "rsa" 4159 + version = "0.9.9" 4160 source = "registry+https://github.com/rust-lang/crates.io-index" 4161 + checksum = "40a0376c50d0358279d9d643e4bf7b7be212f1f4ff1da9070a7b54d22ef75c88" 4162 dependencies = [ 4163 "const-oid", 4164 "digest", ··· 4238 4239 [[package]] 4240 name = "rustls" 4241 + version = "0.23.35" 4242 source = "registry+https://github.com/rust-lang/crates.io-index" 4243 + checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" 4244 dependencies = [ 4245 "once_cell", 4246 "ring", ··· 4264 4265 [[package]] 4266 name = "rustls-pki-types" 4267 + version = "1.13.1" 4268 source = "registry+https://github.com/rust-lang/crates.io-index" 4269 + checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c" 4270 dependencies = [ 4271 "web-time", 4272 "zeroize", ··· 4274 4275 [[package]] 4276 name = "rustls-webpki" 4277 + version = "0.103.8" 4278 source = "registry+https://github.com/rust-lang/crates.io-index" 4279 + checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" 4280 dependencies = [ 4281 "ring", 4282 "rustls-pki-types", ··· 4333 4334 [[package]] 4335 name = "schemars" 4336 + version = "1.1.0" 4337 source = "registry+https://github.com/rust-lang/crates.io-index" 4338 + checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" 4339 dependencies = [ 4340 "dyn-clone", 4341 "ref-cast", ··· 4441 dependencies = [ 4442 "proc-macro2", 4443 "quote", 4444 + "syn 2.0.111", 4445 ] 4446 4447 [[package]] ··· 4451 checksum = "b2f2d7ff8a2140333718bb329f5c40fc5f0865b84c426183ce14c97d2ab8154f" 4452 dependencies = [ 4453 "form_urlencoded", 4454 + "indexmap 2.12.1", 4455 "itoa", 4456 "ryu", 4457 "serde_core", ··· 4486 source = "registry+https://github.com/rust-lang/crates.io-index" 4487 checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 4488 dependencies = [ 4489 + "indexmap 2.12.1", 4490 "itoa", 4491 "memchr", 4492 "ryu", ··· 4513 dependencies = [ 4514 "proc-macro2", 4515 "quote", 4516 + "syn 2.0.111", 4517 ] 4518 4519 [[package]] ··· 4548 4549 [[package]] 4550 name = "serde_with" 4551 + version = "3.16.1" 4552 source = "registry+https://github.com/rust-lang/crates.io-index" 4553 + checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" 4554 dependencies = [ 4555 "base64 0.22.1", 4556 "chrono", 4557 "hex", 4558 "indexmap 1.9.3", 4559 + "indexmap 2.12.1", 4560 "schemars 0.9.0", 4561 + "schemars 1.1.0", 4562 "serde_core", 4563 "serde_json", 4564 "serde_with_macros", ··· 4567 4568 [[package]] 4569 name = "serde_with_macros" 4570 + version = "3.16.1" 4571 source = "registry+https://github.com/rust-lang/crates.io-index" 4572 + checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" 4573 dependencies = [ 4574 "darling", 4575 "proc-macro2", 4576 "quote", 4577 + "syn 2.0.111", 4578 ] 4579 4580 [[package]] ··· 4622 4623 [[package]] 4624 name = "signal-hook-registry" 4625 + version = "1.4.7" 4626 source = "registry+https://github.com/rust-lang/crates.io-index" 4627 + checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" 4628 dependencies = [ 4629 "libc", 4630 ] ··· 4641 4642 [[package]] 4643 name = "simd-adler32" 4644 + version = "0.3.8" 4645 source = "registry+https://github.com/rust-lang/crates.io-index" 4646 + checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 4647 4648 [[package]] 4649 name = "simd_helpers" ··· 4749 "quote", 4750 "serde", 4751 "sha2", 4752 + "syn 2.0.111", 4753 "thiserror 1.0.69", 4754 ] 4755 ··· 4830 4831 [[package]] 4832 name = "syn" 4833 + version = "2.0.111" 4834 source = "registry+https://github.com/rust-lang/crates.io-index" 4835 + checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" 4836 dependencies = [ 4837 "proc-macro2", 4838 "quote", ··· 4856 dependencies = [ 4857 "proc-macro2", 4858 "quote", 4859 + "syn 2.0.111", 4860 ] 4861 4862 [[package]] ··· 4881 ] 4882 4883 [[package]] 4884 name = "tagptr" 4885 version = "0.2.0" 4886 source = "registry+https://github.com/rust-lang/crates.io-index" 4887 checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 4888 4889 [[package]] 4890 name = "target-triple" 4891 version = "1.0.0" 4892 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4971 dependencies = [ 4972 "proc-macro2", 4973 "quote", 4974 + "syn 2.0.111", 4975 ] 4976 4977 [[package]] ··· 4982 dependencies = [ 4983 "proc-macro2", 4984 "quote", 4985 + "syn 2.0.111", 4986 ] 4987 4988 [[package]] ··· 5025 "half", 5026 "quick-error 2.0.1", 5027 "weezl", 5028 + "zune-jpeg 0.4.21", 5029 ] 5030 5031 [[package]] ··· 5075 5076 [[package]] 5077 name = "tinystr" 5078 + version = "0.8.2" 5079 source = "registry+https://github.com/rust-lang/crates.io-index" 5080 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 5081 dependencies = [ 5082 "displaydoc", 5083 "zerovec", ··· 5123 dependencies = [ 5124 "proc-macro2", 5125 "quote", 5126 + "syn 2.0.111", 5127 ] 5128 5129 [[package]] ··· 5173 5174 [[package]] 5175 name = "tokio-util" 5176 + version = "0.7.17" 5177 source = "registry+https://github.com/rust-lang/crates.io-index" 5178 + checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" 5179 dependencies = [ 5180 "bytes", 5181 "futures-core", ··· 5203 source = "registry+https://github.com/rust-lang/crates.io-index" 5204 checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 5205 dependencies = [ 5206 + "indexmap 2.12.1", 5207 "serde_core", 5208 "serde_spanned 1.0.3", 5209 "toml_datetime 0.7.3", 5210 "toml_parser", 5211 "toml_writer", 5212 + "winnow 0.7.14", 5213 ] 5214 5215 [[package]] ··· 5236 source = "registry+https://github.com/rust-lang/crates.io-index" 5237 checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 5238 dependencies = [ 5239 + "indexmap 2.12.1", 5240 "serde", 5241 "serde_spanned 0.6.9", 5242 "toml_datetime 0.6.11", 5243 "toml_write", 5244 + "winnow 0.7.14", 5245 ] 5246 5247 [[package]] ··· 5250 source = "registry+https://github.com/rust-lang/crates.io-index" 5251 checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 5252 dependencies = [ 5253 + "winnow 0.7.14", 5254 ] 5255 5256 [[package]] ··· 5283 5284 [[package]] 5285 name = "tower-http" 5286 + version = "0.6.8" 5287 source = "registry+https://github.com/rust-lang/crates.io-index" 5288 + checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" 5289 dependencies = [ 5290 "bitflags", 5291 "bytes", ··· 5314 5315 [[package]] 5316 name = "tracing" 5317 + version = "0.1.43" 5318 source = "registry+https://github.com/rust-lang/crates.io-index" 5319 + checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" 5320 dependencies = [ 5321 "log", 5322 "pin-project-lite", ··· 5326 5327 [[package]] 5328 name = "tracing-attributes" 5329 + version = "0.1.31" 5330 source = "registry+https://github.com/rust-lang/crates.io-index" 5331 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 5332 dependencies = [ 5333 "proc-macro2", 5334 "quote", 5335 + "syn 2.0.111", 5336 ] 5337 5338 [[package]] 5339 name = "tracing-core" 5340 + version = "0.1.35" 5341 source = "registry+https://github.com/rust-lang/crates.io-index" 5342 + checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" 5343 dependencies = [ 5344 "once_cell", 5345 "valuable", ··· 5358 5359 [[package]] 5360 name = "tracing-subscriber" 5361 + version = "0.3.22" 5362 source = "registry+https://github.com/rust-lang/crates.io-index" 5363 + checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" 5364 dependencies = [ 5365 "matchers", 5366 "nu-ansi-term", ··· 5383 dependencies = [ 5384 "proc-macro2", 5385 "quote", 5386 + "syn 2.0.111", 5387 ] 5388 5389 [[package]] ··· 5475 dependencies = [ 5476 "proc-macro2", 5477 "quote", 5478 + "syn 2.0.111", 5479 ] 5480 5481 [[package]] ··· 5486 5487 [[package]] 5488 name = "unicode-ident" 5489 + version = "1.0.22" 5490 source = "registry+https://github.com/rust-lang/crates.io-index" 5491 + checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 5492 5493 [[package]] 5494 name = "unicode-linebreak" ··· 5576 5577 [[package]] 5578 name = "uuid" 5579 + version = "1.19.0" 5580 source = "registry+https://github.com/rust-lang/crates.io-index" 5581 + checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" 5582 dependencies = [ 5583 "js-sys", 5584 "wasm-bindgen", ··· 5600 version = "0.1.1" 5601 source = "registry+https://github.com/rust-lang/crates.io-index" 5602 checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 5603 5604 [[package]] 5605 name = "version_check" ··· 5659 5660 [[package]] 5661 name = "wasm-bindgen" 5662 + version = "0.2.106" 5663 source = "registry+https://github.com/rust-lang/crates.io-index" 5664 + checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" 5665 dependencies = [ 5666 "cfg-if", 5667 "once_cell", ··· 5672 5673 [[package]] 5674 name = "wasm-bindgen-futures" 5675 + version = "0.4.56" 5676 source = "registry+https://github.com/rust-lang/crates.io-index" 5677 + checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" 5678 dependencies = [ 5679 "cfg-if", 5680 "js-sys", ··· 5685 5686 [[package]] 5687 name = "wasm-bindgen-macro" 5688 + version = "0.2.106" 5689 source = "registry+https://github.com/rust-lang/crates.io-index" 5690 + checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" 5691 dependencies = [ 5692 "quote", 5693 "wasm-bindgen-macro-support", ··· 5695 5696 [[package]] 5697 name = "wasm-bindgen-macro-support" 5698 + version = "0.2.106" 5699 source = "registry+https://github.com/rust-lang/crates.io-index" 5700 + checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" 5701 dependencies = [ 5702 "bumpalo", 5703 "proc-macro2", 5704 "quote", 5705 + "syn 2.0.111", 5706 "wasm-bindgen-shared", 5707 ] 5708 5709 [[package]] 5710 name = "wasm-bindgen-shared" 5711 + version = "0.2.106" 5712 source = "registry+https://github.com/rust-lang/crates.io-index" 5713 + checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" 5714 dependencies = [ 5715 "unicode-ident", 5716 ] 5717 5718 [[package]] 5719 name = "wasm-bindgen-test" 5720 + version = "0.3.56" 5721 source = "registry+https://github.com/rust-lang/crates.io-index" 5722 + checksum = "25e90e66d265d3a1efc0e72a54809ab90b9c0c515915c67cdf658689d2c22c6c" 5723 dependencies = [ 5724 + "async-trait", 5725 + "cast", 5726 "js-sys", 5727 + "libm", 5728 "minicov", 5729 + "nu-ansi-term", 5730 + "num-traits", 5731 + "oorandom", 5732 + "serde", 5733 + "serde_json", 5734 "wasm-bindgen", 5735 "wasm-bindgen-futures", 5736 "wasm-bindgen-test-macro", ··· 5738 5739 [[package]] 5740 name = "wasm-bindgen-test-macro" 5741 + version = "0.3.56" 5742 source = "registry+https://github.com/rust-lang/crates.io-index" 5743 + checksum = "7150335716dce6028bead2b848e72f47b45e7b9422f64cccdc23bedca89affc1" 5744 dependencies = [ 5745 "proc-macro2", 5746 "quote", 5747 + "syn 2.0.111", 5748 ] 5749 5750 [[package]] ··· 5762 5763 [[package]] 5764 name = "web-sys" 5765 + version = "0.3.83" 5766 source = "registry+https://github.com/rust-lang/crates.io-index" 5767 + checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" 5768 dependencies = [ 5769 "js-sys", 5770 "wasm-bindgen", ··· 5810 5811 [[package]] 5812 name = "webpki-roots" 5813 + version = "1.0.4" 5814 source = "registry+https://github.com/rust-lang/crates.io-index" 5815 + checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" 5816 dependencies = [ 5817 "rustls-pki-types", 5818 ] 5819 5820 [[package]] 5821 name = "weezl" 5822 + version = "0.1.12" 5823 source = "registry+https://github.com/rust-lang/crates.io-index" 5824 + checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" 5825 5826 [[package]] 5827 name = "widestring" ··· 5927 dependencies = [ 5928 "proc-macro2", 5929 "quote", 5930 + "syn 2.0.111", 5931 ] 5932 5933 [[package]] ··· 5938 dependencies = [ 5939 "proc-macro2", 5940 "quote", 5941 + "syn 2.0.111", 5942 ] 5943 5944 [[package]] ··· 5965 5966 [[package]] 5967 name = "windows-registry" 5968 + version = "0.6.1" 5969 source = "registry+https://github.com/rust-lang/crates.io-index" 5970 + checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" 5971 dependencies = [ 5972 + "windows-link 0.2.1", 5973 + "windows-result 0.4.1", 5974 + "windows-strings 0.5.1", 5975 ] 5976 5977 [[package]] ··· 6327 6328 [[package]] 6329 name = "winnow" 6330 + version = "0.7.14" 6331 source = "registry+https://github.com/rust-lang/crates.io-index" 6332 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 6333 dependencies = [ 6334 "memchr", 6335 ] ··· 6352 6353 [[package]] 6354 name = "writeable" 6355 + version = "0.6.2" 6356 source = "registry+https://github.com/rust-lang/crates.io-index" 6357 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 6358 6359 [[package]] 6360 name = "xml5ever" ··· 6368 ] 6369 6370 [[package]] 6371 + name = "y4m" 6372 + version = "0.8.0" 6373 + source = "registry+https://github.com/rust-lang/crates.io-index" 6374 + checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" 6375 + 6376 + [[package]] 6377 name = "yansi" 6378 version = "1.0.1" 6379 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6381 6382 [[package]] 6383 name = "yoke" 6384 + version = "0.8.1" 6385 source = "registry+https://github.com/rust-lang/crates.io-index" 6386 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 6387 dependencies = [ 6388 "stable_deref_trait", 6389 "yoke-derive", 6390 "zerofrom", ··· 6392 6393 [[package]] 6394 name = "yoke-derive" 6395 + version = "0.8.1" 6396 source = "registry+https://github.com/rust-lang/crates.io-index" 6397 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 6398 dependencies = [ 6399 "proc-macro2", 6400 "quote", 6401 + "syn 2.0.111", 6402 "synstructure", 6403 ] 6404 6405 [[package]] 6406 name = "zerocopy" 6407 + version = "0.8.31" 6408 source = "registry+https://github.com/rust-lang/crates.io-index" 6409 + checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" 6410 dependencies = [ 6411 "zerocopy-derive", 6412 ] 6413 6414 [[package]] 6415 name = "zerocopy-derive" 6416 + version = "0.8.31" 6417 source = "registry+https://github.com/rust-lang/crates.io-index" 6418 + checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" 6419 dependencies = [ 6420 "proc-macro2", 6421 "quote", 6422 + "syn 2.0.111", 6423 ] 6424 6425 [[package]] ··· 6439 dependencies = [ 6440 "proc-macro2", 6441 "quote", 6442 + "syn 2.0.111", 6443 "synstructure", 6444 ] 6445 ··· 6454 6455 [[package]] 6456 name = "zerotrie" 6457 + version = "0.2.3" 6458 source = "registry+https://github.com/rust-lang/crates.io-index" 6459 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 6460 dependencies = [ 6461 "displaydoc", 6462 "yoke", ··· 6465 6466 [[package]] 6467 name = "zerovec" 6468 + version = "0.11.5" 6469 source = "registry+https://github.com/rust-lang/crates.io-index" 6470 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 6471 dependencies = [ 6472 "yoke", 6473 "zerofrom", ··· 6476 6477 [[package]] 6478 name = "zerovec-derive" 6479 + version = "0.11.2" 6480 source = "registry+https://github.com/rust-lang/crates.io-index" 6481 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 6482 dependencies = [ 6483 "proc-macro2", 6484 "quote", 6485 + "syn 2.0.111", 6486 ] 6487 6488 [[package]] ··· 6520 checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" 6521 6522 [[package]] 6523 + name = "zune-core" 6524 + version = "0.5.0" 6525 + source = "registry+https://github.com/rust-lang/crates.io-index" 6526 + checksum = "111f7d9820f05fd715df3144e254d6fc02ee4088b0644c0ffd0efc9e6d9d2773" 6527 + 6528 + [[package]] 6529 name = "zune-inflate" 6530 version = "0.2.54" 6531 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6540 source = "registry+https://github.com/rust-lang/crates.io-index" 6541 checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" 6542 dependencies = [ 6543 + "zune-core 0.4.12", 6544 + ] 6545 + 6546 + [[package]] 6547 + name = "zune-jpeg" 6548 + version = "0.5.6" 6549 + source = "registry+https://github.com/rust-lang/crates.io-index" 6550 + checksum = "f520eebad972262a1dde0ec455bce4f8b298b1e5154513de58c114c4c54303e8" 6551 + dependencies = [ 6552 + "zune-core 0.5.0", 6553 ]
+8 -5
crates/jacquard-common/Cargo.toml
··· 20 service-auth = ["crypto-k256", "crypto-p256", "dep:signature"] 21 reqwest-client = ["dep:reqwest"] 22 tracing = ["dep:tracing"] 23 - streaming = ["n0-future", "futures"] 24 websocket = ["streaming", "tokio-tungstenite-wasm", "dep:ciborium"] 25 zstd = ["dep:zstd"] 26 ··· 48 serde_bytes = "0.11" 49 50 51 - reqwest = { workspace = true, optional = true, features = ["json", "charset", "gzip", "stream"] } 52 serde_ipld_dagcbor.workspace = true 53 signature = { version = "2", optional = true } 54 tracing = { workspace = true, optional = true } ··· 57 # Streaming support (optional) 58 n0-future = { workspace = true, optional = true } 59 futures = { version = "0.3", optional = true } 60 - tokio-tungstenite-wasm = { version = "0.4", features = ["rustls-tls-native-roots"], optional = true } 61 ciborium = {version = "0.2.0", optional = true } 62 zstd = { version = "0.13", optional = true } 63 postcard = { version = "1.1.3", features = ["use-std"] } ··· 67 chrono = { workspace = true, features = ["wasmbind"] } 68 getrandom_02 = { package = "getrandom", version = "0.2", features = ["js"] } 69 regex-lite = "0.1" 70 71 [target.'cfg(not(target_arch = "wasm32"))'.dependencies] 72 - reqwest = { workspace = true, optional = true, features = [ "http2", "system-proxy", "rustls-tls"] } 73 tokio-util = { version = "0.7.16", features = ["io"] } 74 regex = { version = "1.11.3", default-features = false, features = ["std", "perf-literal"] } 75 - 76 77 78 [dependencies.ed25519-dalek]
··· 20 service-auth = ["crypto-k256", "crypto-p256", "dep:signature"] 21 reqwest-client = ["dep:reqwest"] 22 tracing = ["dep:tracing"] 23 + streaming = ["n0-future", "futures", "reqwest/stream"] 24 websocket = ["streaming", "tokio-tungstenite-wasm", "dep:ciborium"] 25 zstd = ["dep:zstd"] 26 ··· 48 serde_bytes = "0.11" 49 50 51 + reqwest = { workspace = true, optional = true, features = ["json", "gzip", "charset"] } 52 serde_ipld_dagcbor.workspace = true 53 signature = { version = "2", optional = true } 54 tracing = { workspace = true, optional = true } ··· 57 # Streaming support (optional) 58 n0-future = { workspace = true, optional = true } 59 futures = { version = "0.3", optional = true } 60 + tokio-tungstenite-wasm = { version = "0.4", default-features = false, optional = true } 61 ciborium = {version = "0.2.0", optional = true } 62 zstd = { version = "0.13", optional = true } 63 postcard = { version = "1.1.3", features = ["use-std"] } ··· 67 chrono = { workspace = true, features = ["wasmbind"] } 68 getrandom_02 = { package = "getrandom", version = "0.2", features = ["js"] } 69 regex-lite = "0.1" 70 + ring = { version = "0.17", features = ["wasm32_unknown_unknown_js"]} 71 + reqwest = { workspace = true, optional = true, features = [ "json", "gzip", "rustls-tls-manual-roots"] } 72 + tokio-tungstenite-wasm = { version = "0.4", features = [], optional = true } 73 74 [target.'cfg(not(target_arch = "wasm32"))'.dependencies] 75 + reqwest = { workspace = true, optional = true, features = [ "http2", "gzip", "system-proxy", "rustls-tls"] } 76 tokio-util = { version = "0.7.16", features = ["io"] } 77 regex = { version = "1.11.3", default-features = false, features = ["std", "perf-literal"] } 78 + tokio-tungstenite-wasm = { version = "0.4", features = ["rustls-tls-native-roots"], optional = true } 79 80 81 [dependencies.ed25519-dalek]
+1 -1
crates/jacquard-common/src/lib.rs
··· 247 pub use types::value::*; 248 249 /// Authorization token types for XRPC requests. 250 - #[derive(Debug, Clone)] 251 pub enum AuthorizationToken<'s> { 252 /// Bearer token (access JWT, refresh JWT to refresh the session) 253 Bearer(CowStr<'s>),
··· 247 pub use types::value::*; 248 249 /// Authorization token types for XRPC requests. 250 + #[derive(Debug, Clone, PartialEq, Eq)] 251 pub enum AuthorizationToken<'s> { 252 /// Bearer token (access JWT, refresh JWT to refresh the session) 253 Bearer(CowStr<'s>),
+1 -1
crates/jacquard-common/src/opt_serde_bytes_helper.rs
··· 38 D: Deserializer<'de>, 39 { 40 if deserializer.is_human_readable() { 41 - Ok(deserializer.deserialize_map(OptBytesVisitor)?) 42 } else { 43 let vec: Option<Vec<u8>> = serde_bytes::deserialize(deserializer)?; 44 Ok(vec.map(Bytes::from))
··· 38 D: Deserializer<'de>, 39 { 40 if deserializer.is_human_readable() { 41 + Ok(deserializer.deserialize_any(OptBytesVisitor)?) 42 } else { 43 let vec: Option<Vec<u8>> = serde_bytes::deserialize(deserializer)?; 44 Ok(vec.map(Bytes::from))
+63 -5
crates/jacquard-common/src/types/value/serde_impl.rs
··· 1 - use core::fmt; 2 - use std::{collections::BTreeMap, str::FromStr}; 3 - 4 use base64::{Engine, prelude::BASE64_STANDARD}; 5 use bytes::Bytes; 6 use serde::{Deserialize, Deserializer, Serialize, Serializer, de::VariantAccess}; 7 use smol_str::{SmolStr, ToSmolStr}; 8 9 use crate::{ 10 IntoStatic, ··· 218 where 219 D: Deserializer<'v>, 220 { 221 - deserializer.deserialize_map(self) 222 } 223 224 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> ··· 643 where 644 D: Deserializer<'v>, 645 { 646 - deserializer.deserialize_map(self) 647 } 648 649 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> ··· 693 694 // Second pass: apply type inference and check for special patterns 695 apply_raw_type_inference(temp_map).map_err(A::Error::custom) 696 } 697 } 698
··· 1 + use crate::types::cid::IpldCid; 2 use base64::{Engine, prelude::BASE64_STANDARD}; 3 use bytes::Bytes; 4 + use core::fmt; 5 use serde::{Deserialize, Deserializer, Serialize, Serializer, de::VariantAccess}; 6 use smol_str::{SmolStr, ToSmolStr}; 7 + use std::{collections::BTreeMap, str::FromStr}; 8 9 use crate::{ 10 IntoStatic, ··· 218 where 219 D: Deserializer<'v>, 220 { 221 + deserializer.deserialize_any(CidAwareVisitor) 222 } 223 224 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> ··· 643 where 644 D: Deserializer<'v>, 645 { 646 + deserializer.deserialize_any(RawCidAwareVisitor) 647 } 648 649 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> ··· 693 694 // Second pass: apply type inference and check for special patterns 695 apply_raw_type_inference(temp_map).map_err(A::Error::custom) 696 + } 697 + } 698 + 699 + // In DAG-CBOR, newtype_struct wraps tag 42 (CID) 700 + // The CidDeserializer will call visit_bytes with the CID bytes 701 + struct CidAwareVisitor; 702 + 703 + impl<'de: 'v, 'v> serde::de::Visitor<'v> for CidAwareVisitor { 704 + type Value = Data<'v>; 705 + 706 + fn expecting(&self, f: &mut fmt::Formatter) -> fmt::Result { 707 + f.write_str("CID bytes or other newtype content") 708 + } 709 + 710 + fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E> 711 + where 712 + E: serde::de::Error, 713 + { 714 + // Try to parse as CID first (tag 42 case) 715 + match IpldCid::try_from(v) { 716 + Ok(cid) => Ok(Data::CidLink(Cid::ipld(cid))), 717 + Err(_) => Ok(Data::Bytes(Bytes::copy_from_slice(v))), 718 + } 719 + } 720 + 721 + fn visit_borrowed_bytes<E>(self, v: &'v [u8]) -> Result<Self::Value, E> 722 + where 723 + E: serde::de::Error, 724 + { 725 + self.visit_bytes(v) 726 + } 727 + } 728 + 729 + struct RawCidAwareVisitor; 730 + 731 + impl<'de: 'v, 'v> serde::de::Visitor<'v> for RawCidAwareVisitor { 732 + type Value = RawData<'v>; 733 + 734 + fn expecting(&self, f: &mut fmt::Formatter) -> fmt::Result { 735 + f.write_str("CID bytes or other newtype content") 736 + } 737 + 738 + fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E> 739 + where 740 + E: serde::de::Error, 741 + { 742 + // Try to parse as CID first (tag 42 case) 743 + match IpldCid::try_from(v) { 744 + Ok(cid) => Ok(RawData::CidLink(Cid::ipld(cid))), 745 + Err(_) => Ok(RawData::Bytes(Bytes::copy_from_slice(v))), 746 + } 747 + } 748 + 749 + fn visit_borrowed_bytes<E>(self, v: &'v [u8]) -> Result<Self::Value, E> 750 + where 751 + E: serde::de::Error, 752 + { 753 + self.visit_bytes(v) 754 } 755 } 756
+1 -1
crates/jacquard-identity/Cargo.toml
··· 47 48 [target.'cfg(target_arch = "wasm32")'.dependencies] 49 mini-moka = { version = "0.10",path = "../mini-moka-vendored", features = ["js"], optional = true } 50 - 51 52 [[example]] 53 name = "resolve_lexicon"
··· 47 48 [target.'cfg(target_arch = "wasm32")'.dependencies] 49 mini-moka = { version = "0.10",path = "../mini-moka-vendored", features = ["js"], optional = true } 50 + ring = { version = "0.17", default-features = false, features = ["wasm32_unknown_unknown_js"]} 51 52 [[example]] 53 name = "resolve_lexicon"
+15 -8
crates/jacquard-identity/src/lib.rs
··· 81 #[cfg(feature = "streaming")] 82 use jacquard_common::ByteStream; 83 use jacquard_common::http_client::HttpClient; 84 use jacquard_common::types::did::Did; 85 use jacquard_common::types::did_doc::DidDocument; 86 use jacquard_common::types::ident::AtIdentifier; ··· 458 } 459 460 async fn get_text(&self, url: Url) -> resolver::Result<String> { 461 let resp = self.http.get(url).send().await?; 462 if resp.status() == StatusCode::OK { 463 Ok(resp.text().await?) 464 } else { 465 Err(IdentityError::transport( 466 resp.error_for_status().unwrap_err(), 467 )) 468 } ··· 861 &self, 862 request: http::Request<Vec<u8>>, 863 ) -> core::result::Result<http::Response<Vec<u8>>, Self::Error> { 864 match self.opts.request_timeout { 865 Some(duration) => n0_future::time::timeout(duration, self.http.send_http(request)) 866 .await 867 .map_err(|_| IdentityError::timeout())? 868 - .map_err(IdentityError::transport), 869 None => self 870 .http 871 .send_http(request) 872 .await 873 - .map_err(IdentityError::transport), 874 } 875 } 876 } ··· 882 &self, 883 request: http::Request<Vec<u8>>, 884 ) -> Result<http::Response<ByteStream>, Self::Error> { 885 match self.opts.request_timeout { 886 Some(duration) => { 887 n0_future::time::timeout(duration, self.http.send_http_streaming(request)) 888 .await 889 .map_err(|_| IdentityError::timeout())? 890 - .map_err(IdentityError::transport) 891 } 892 None => self 893 .http 894 .send_http_streaming(request) 895 .await 896 - .map_err(IdentityError::transport), 897 } 898 } 899 ··· 909 + Send 910 + 'static, 911 { 912 match self.opts.request_timeout { 913 Some(duration) => { 914 n0_future::time::timeout(duration, self.http.send_http_bidirectional(parts, body)) 915 .await 916 .map_err(|_| IdentityError::timeout())? 917 - .map_err(IdentityError::transport) 918 } 919 None => self 920 .http 921 .send_http_bidirectional(parts, body) 922 .await 923 - .map_err(IdentityError::transport), 924 } 925 } 926 ··· 934 where 935 S: n0_future::Stream<Item = Result<bytes::Bytes, jacquard_common::StreamError>> + 'static, 936 { 937 match self.opts.request_timeout { 938 Some(duration) => { 939 n0_future::time::timeout(duration, self.http.send_http_bidirectional(parts, body)) 940 .await 941 .map_err(|_| IdentityError::timeout())? 942 - .map_err(IdentityError::transport) 943 } 944 None => self 945 .http 946 .send_http_bidirectional(parts, body) 947 .await 948 - .map_err(IdentityError::transport), 949 } 950 } 951 }
··· 81 #[cfg(feature = "streaming")] 82 use jacquard_common::ByteStream; 83 use jacquard_common::http_client::HttpClient; 84 + use jacquard_common::smol_str::ToSmolStr; 85 use jacquard_common::types::did::Did; 86 use jacquard_common::types::did_doc::DidDocument; 87 use jacquard_common::types::ident::AtIdentifier; ··· 459 } 460 461 async fn get_text(&self, url: Url) -> resolver::Result<String> { 462 + let u = url.to_smolstr(); 463 let resp = self.http.get(url).send().await?; 464 if resp.status() == StatusCode::OK { 465 Ok(resp.text().await?) 466 } else { 467 Err(IdentityError::transport( 468 + u, 469 resp.error_for_status().unwrap_err(), 470 )) 471 } ··· 864 &self, 865 request: http::Request<Vec<u8>>, 866 ) -> core::result::Result<http::Response<Vec<u8>>, Self::Error> { 867 + let u = request.uri().clone(); 868 match self.opts.request_timeout { 869 Some(duration) => n0_future::time::timeout(duration, self.http.send_http(request)) 870 .await 871 .map_err(|_| IdentityError::timeout())? 872 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)), 873 None => self 874 .http 875 .send_http(request) 876 .await 877 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)), 878 } 879 } 880 } ··· 886 &self, 887 request: http::Request<Vec<u8>>, 888 ) -> Result<http::Response<ByteStream>, Self::Error> { 889 + let u = request.uri().clone(); 890 match self.opts.request_timeout { 891 Some(duration) => { 892 n0_future::time::timeout(duration, self.http.send_http_streaming(request)) 893 .await 894 .map_err(|_| IdentityError::timeout())? 895 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)) 896 } 897 None => self 898 .http 899 .send_http_streaming(request) 900 .await 901 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)), 902 } 903 } 904 ··· 914 + Send 915 + 'static, 916 { 917 + let u = parts.uri.clone(); 918 match self.opts.request_timeout { 919 Some(duration) => { 920 n0_future::time::timeout(duration, self.http.send_http_bidirectional(parts, body)) 921 .await 922 .map_err(|_| IdentityError::timeout())? 923 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)) 924 } 925 None => self 926 .http 927 .send_http_bidirectional(parts, body) 928 .await 929 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)), 930 } 931 } 932 ··· 940 where 941 S: n0_future::Stream<Item = Result<bytes::Bytes, jacquard_common::StreamError>> + 'static, 942 { 943 + let u = parts.uri.clone(); 944 match self.opts.request_timeout { 945 Some(duration) => { 946 n0_future::time::timeout(duration, self.http.send_http_bidirectional(parts, body)) 947 .await 948 .map_err(|_| IdentityError::timeout())? 949 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)) 950 } 951 None => self 952 .http 953 .send_http_bidirectional(parts, body) 954 .await 955 + .map_err(|e| IdentityError::transport(u.to_smolstr(), e)), 956 } 957 } 958 }
+4 -4
crates/jacquard-identity/src/resolver.rs
··· 540 code(jacquard::identity::transport), 541 help("check network connectivity and TLS configuration") 542 )] 543 - Transport, 544 545 /// Request timeout 546 #[error("request timed out")] ··· 661 } 662 663 /// Create a transport error 664 - pub fn transport(source: impl std::error::Error + Send + Sync + 'static) -> Self { 665 - Self::new(IdentityErrorKind::Transport, Some(Box::new(source))) 666 } 667 668 /// Create a timeout error ··· 765 766 impl From<reqwest::Error> for IdentityError { 767 fn from(e: reqwest::Error) -> Self { 768 - Self::transport(e).with_context("HTTP request failed during identity resolution") 769 } 770 } 771
··· 540 code(jacquard::identity::transport), 541 help("check network connectivity and TLS configuration") 542 )] 543 + Transport(SmolStr), 544 545 /// Request timeout 546 #[error("request timed out")] ··· 661 } 662 663 /// Create a transport error 664 + pub fn transport(msg: SmolStr, source: impl std::error::Error + Send + Sync + 'static) -> Self { 665 + Self::new(IdentityErrorKind::Transport(msg), Some(Box::new(source))) 666 } 667 668 /// Create a timeout error ··· 765 766 impl From<reqwest::Error> for IdentityError { 767 fn from(e: reqwest::Error) -> Self { 768 + Self::transport("".into(), e).with_context("HTTP request failed during identity resolution") 769 } 770 } 771
+4
crates/jacquard-oauth/Cargo.toml
··· 50 [target.'cfg(not(target_arch = "wasm32"))'.dependencies] 51 tokio = { workspace = true, features = ["rt", "net", "time"] } 52 rouille = { version = "3.6.2", optional = true }
··· 50 [target.'cfg(not(target_arch = "wasm32"))'.dependencies] 51 tokio = { workspace = true, features = ["rt", "net", "time"] } 52 rouille = { version = "3.6.2", optional = true } 53 + 54 + 55 + [target.'cfg(target_arch = "wasm32")'.dependencies] 56 + ring = { version = "0.17", features = ["wasm32_unknown_unknown_js"]}
+35 -12
crates/jacquard-oauth/src/client.rs
··· 617 <R as XrpcRequest>::Response: Send + Sync, 618 { 619 let base_uri = self.base_uri().await; 620 - opts.auth = Some(self.access_token().await); 621 - let guard = self.data.read().await; 622 - let mut dpop = guard.dpop_data.clone(); 623 let base_uri = Url::parse(&base_uri).map_err(|e| ClientError::transport(e))?; 624 let http_response = self 625 .client ··· 628 .await 629 .map_err(|e| ClientError::transport(e))?; 630 let resp = process_response(http_response); 631 - drop(guard); 632 if is_invalid_token_response(&resp) { 633 - opts.auth = Some( 634 - self.refresh() 635 - .await 636 - .map_err(|e| ClientError::transport(e))?, 637 - ); 638 - let guard = self.data.read().await; 639 - let mut dpop = guard.dpop_data.clone(); 640 let http_response = self 641 .client 642 .dpop_call(&mut dpop) 643 .send(build_http_request(&base_uri, &request, &opts)?) 644 .await 645 .map_err(|e| ClientError::transport(e))?; 646 - process_response(http_response) 647 } else { 648 resp 649 }
··· 617 <R as XrpcRequest>::Response: Send + Sync, 618 { 619 let base_uri = self.base_uri().await; 620 + let original_token = self.access_token().await; 621 + opts.auth = Some(original_token.clone()); 622 + // Clone dpop_data and release read lock before the await point 623 + let mut dpop = self.data.read().await.dpop_data.clone(); 624 let base_uri = Url::parse(&base_uri).map_err(|e| ClientError::transport(e))?; 625 let http_response = self 626 .client ··· 629 .await 630 .map_err(|e| ClientError::transport(e))?; 631 let resp = process_response(http_response); 632 + 633 + // Write back updated nonce to session data (dpop_call may have updated it) 634 + { 635 + let mut guard = self.data.write().await; 636 + guard.dpop_data.dpop_host_nonce = dpop.dpop_host_nonce.clone(); 637 + } 638 + 639 if is_invalid_token_response(&resp) { 640 + // Optimistic refresh: check if another request already refreshed the token 641 + let current_token = self.access_token().await; 642 + if current_token != original_token { 643 + // Token was already refreshed by another concurrent request, use it 644 + opts.auth = Some(current_token); 645 + } else { 646 + // We need to refresh - this will be serialized by the registry's Mutex 647 + opts.auth = Some( 648 + self.refresh() 649 + .await 650 + .map_err(|e| ClientError::transport(e))?, 651 + ); 652 + } 653 + // Re-read dpop_data after refresh (refresh may have updated it) 654 + let mut dpop = self.data.read().await.dpop_data.clone(); 655 let http_response = self 656 .client 657 .dpop_call(&mut dpop) 658 .send(build_http_request(&base_uri, &request, &opts)?) 659 .await 660 .map_err(|e| ClientError::transport(e))?; 661 + let resp = process_response(http_response); 662 + 663 + // Write back updated nonce after retry 664 + { 665 + let mut guard = self.data.write().await; 666 + guard.dpop_data.dpop_host_nonce = dpop.dpop_host_nonce.clone(); 667 + } 668 + 669 + resp 670 } else { 671 resp 672 }
+5 -3
crates/jacquard/Cargo.toml
··· 145 bytes.workspace = true 146 http.workspace = true 147 miette = { workspace = true } 148 - reqwest = { workspace = true, features = ["json", "gzip"] } 149 serde.workspace = true 150 serde_html_form.workspace = true 151 serde_json.workspace = true ··· 157 jose-jwk = { workspace = true, features = ["p256"] } 158 tracing = { workspace = true, optional = true } 159 n0-future = { workspace = true, optional = true } 160 - gloo-storage = "0.3" 161 162 [target.'cfg(not(target_family = "wasm"))'.dependencies] 163 jacquard-identity = { version = "0.9", path = "../jacquard-identity", features = ["cache"] } 164 reqwest = { workspace = true, features = [ 165 "http2", 166 - "system-proxy", 167 "rustls-tls", 168 ] } 169 tokio = { workspace = true, features = ["macros", "rt-multi-thread", "fs"] } ··· 172 [target.'cfg(target_family = "wasm")'.dependencies] 173 getrandom = { version = "0.2", features = ["js"] } 174 regex-lite = "0.1" 175 176 [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] 177 gloo-storage = "0.3"
··· 145 bytes.workspace = true 146 http.workspace = true 147 miette = { workspace = true } 148 + reqwest = { workspace = true, features = ["json"] } 149 serde.workspace = true 150 serde_html_form.workspace = true 151 serde_json.workspace = true ··· 157 jose-jwk = { workspace = true, features = ["p256"] } 158 tracing = { workspace = true, optional = true } 159 n0-future = { workspace = true, optional = true } 160 + 161 162 [target.'cfg(not(target_family = "wasm"))'.dependencies] 163 jacquard-identity = { version = "0.9", path = "../jacquard-identity", features = ["cache"] } 164 reqwest = { workspace = true, features = [ 165 "http2", 166 + "gzip", 167 "rustls-tls", 168 ] } 169 tokio = { workspace = true, features = ["macros", "rt-multi-thread", "fs"] } ··· 172 [target.'cfg(target_family = "wasm")'.dependencies] 173 getrandom = { version = "0.2", features = ["js"] } 174 regex-lite = "0.1" 175 + ring = { version = "0.17", features = ["wasm32_unknown_unknown_js"]} 176 + reqwest = { workspace = true } 177 178 [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] 179 gloo-storage = "0.3"
+2 -1
crates/jacquard/src/client.rs
··· 155 } 156 157 /// Unauthenticated XRPC client session with identity resolution 158 pub struct UnauthenticatedSession<T> { 159 resolver: Arc<T>, 160 endpoint: Arc<RwLock<Option<CowStr<'static>>>>, ··· 224 .read() 225 .await 226 .clone() 227 - .unwrap_or(CowStr::new_static("https://public.bsky.app")) 228 } 229 } 230
··· 155 } 156 157 /// Unauthenticated XRPC client session with identity resolution 158 + #[derive(Debug, Clone)] 159 pub struct UnauthenticatedSession<T> { 160 resolver: Arc<T>, 161 endpoint: Arc<RwLock<Option<CowStr<'static>>>>, ··· 225 .read() 226 .await 227 .clone() 228 + .unwrap_or(CowStr::new_static("https://public.api.bsky.app")) 229 } 230 } 231
+11 -2
examples/subscribe_repos.rs
··· 11 use jacquard_common::xrpc::{SubscriptionClient, TungsteniteSubscriptionClient}; 12 use miette::IntoDiagnostic; 13 use n0_future::StreamExt; 14 use url::Url; 15 16 #[derive(Parser, Debug)] 17 - #[command(author, version, about = "Subscribe to a PDS's subscribeRepos endpoint")] 18 struct Args { 19 /// PDS URL (e.g., atproto.systems or https://atproto.systems) 20 pds_url: String, ··· 47 commit.rev, 48 commit.commit, 49 commit.ops.len(), 50 - commit.since, 51 ); 52 } 53 SubscribeReposMessage::Identity(identity) => {
··· 11 use jacquard_common::xrpc::{SubscriptionClient, TungsteniteSubscriptionClient}; 12 use miette::IntoDiagnostic; 13 use n0_future::StreamExt; 14 + use smol_str::ToSmolStr; 15 use url::Url; 16 17 #[derive(Parser, Debug)] 18 + #[command( 19 + author, 20 + version, 21 + about = "Subscribe to a PDS's subscribeRepos endpoint" 22 + )] 23 struct Args { 24 /// PDS URL (e.g., atproto.systems or https://atproto.systems) 25 pds_url: String, ··· 52 commit.rev, 53 commit.commit, 54 commit.ops.len(), 55 + commit 56 + .since 57 + .as_ref() 58 + .map(|ts| ts.to_smolstr()) 59 + .unwrap_or_default(), 60 ); 61 } 62 SubscribeReposMessage::Identity(identity) => {