Advent of Code solutions in Rust

chore: switch to rustls TLS backend for reqwest

This avoids the external dependency on OpenSSL (Linux) /
Security.framework (macOS) making my life a little easier to get the
tangled/spindle workflow based on nixpkgs up and running.

+124 -192
+123 -191
Cargo.lock
··· 236 236 checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 237 237 238 238 [[package]] 239 + name = "cfg_aliases" 240 + version = "0.2.1" 241 + source = "registry+https://github.com/rust-lang/crates.io-index" 242 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 243 + 244 + [[package]] 239 245 name = "clap" 240 246 version = "4.5.53" 241 247 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 505 511 checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 506 512 507 513 [[package]] 508 - name = "errno" 509 - version = "0.3.13" 510 - source = "registry+https://github.com/rust-lang/crates.io-index" 511 - checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" 512 - dependencies = [ 513 - "libc", 514 - "windows-sys 0.60.2", 515 - ] 516 - 517 - [[package]] 518 514 name = "fastrand" 519 515 version = "2.3.0" 520 516 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 527 523 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 528 524 529 525 [[package]] 530 - name = "foreign-types" 531 - version = "0.3.2" 532 - source = "registry+https://github.com/rust-lang/crates.io-index" 533 - checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 534 - dependencies = [ 535 - "foreign-types-shared", 536 - ] 537 - 538 - [[package]] 539 - name = "foreign-types-shared" 540 - version = "0.1.1" 541 - source = "registry+https://github.com/rust-lang/crates.io-index" 542 - checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 543 - 544 - [[package]] 545 526 name = "form_urlencoded" 546 527 version = "1.2.1" 547 528 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 673 654 checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 674 655 dependencies = [ 675 656 "cfg-if", 657 + "js-sys", 676 658 "libc", 677 659 "wasi 0.11.0+wasi-snapshot-preview1", 660 + "wasm-bindgen", 678 661 ] 679 662 680 663 [[package]] ··· 684 667 checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 685 668 dependencies = [ 686 669 "cfg-if", 670 + "js-sys", 687 671 "libc", 688 672 "r-efi", 689 673 "wasi 0.14.4+wasi-0.2.4", 674 + "wasm-bindgen", 690 675 ] 691 676 692 677 [[package]] ··· 814 799 "tokio", 815 800 "tokio-rustls", 816 801 "tower-service", 817 - ] 818 - 819 - [[package]] 820 - name = "hyper-tls" 821 - version = "0.6.0" 822 - source = "registry+https://github.com/rust-lang/crates.io-index" 823 - checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 824 - dependencies = [ 825 - "bytes", 826 - "http-body-util", 827 - "hyper", 828 - "hyper-util", 829 - "native-tls", 830 - "tokio", 831 - "tokio-native-tls", 832 - "tower-service", 802 + "webpki-roots 0.26.11", 833 803 ] 834 804 835 805 [[package]] ··· 1035 1005 checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 1036 1006 1037 1007 [[package]] 1038 - name = "linux-raw-sys" 1039 - version = "0.11.0" 1040 - source = "registry+https://github.com/rust-lang/crates.io-index" 1041 - checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 1042 - 1043 - [[package]] 1044 1008 name = "litemap" 1045 1009 version = "0.8.0" 1046 1010 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1067 1031 version = "0.4.27" 1068 1032 source = "registry+https://github.com/rust-lang/crates.io-index" 1069 1033 checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1034 + 1035 + [[package]] 1036 + name = "lru-slab" 1037 + version = "0.1.2" 1038 + source = "registry+https://github.com/rust-lang/crates.io-index" 1039 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 1070 1040 1071 1041 [[package]] 1072 1042 name = "mac" ··· 1139 1109 ] 1140 1110 1141 1111 [[package]] 1142 - name = "native-tls" 1143 - version = "0.2.14" 1144 - source = "registry+https://github.com/rust-lang/crates.io-index" 1145 - checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 1146 - dependencies = [ 1147 - "libc", 1148 - "log", 1149 - "openssl", 1150 - "openssl-probe", 1151 - "openssl-sys", 1152 - "schannel", 1153 - "security-framework", 1154 - "security-framework-sys", 1155 - "tempfile", 1156 - ] 1157 - 1158 - [[package]] 1159 1112 name = "ndarray" 1160 1113 version = "0.17.1" 1161 1114 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1232 1185 checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1233 1186 1234 1187 [[package]] 1235 - name = "openssl" 1236 - version = "0.10.71" 1237 - source = "registry+https://github.com/rust-lang/crates.io-index" 1238 - checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" 1239 - dependencies = [ 1240 - "bitflags", 1241 - "cfg-if", 1242 - "foreign-types", 1243 - "libc", 1244 - "once_cell", 1245 - "openssl-macros", 1246 - "openssl-sys", 1247 - ] 1248 - 1249 - [[package]] 1250 - name = "openssl-macros" 1251 - version = "0.1.1" 1252 - source = "registry+https://github.com/rust-lang/crates.io-index" 1253 - checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1254 - dependencies = [ 1255 - "proc-macro2", 1256 - "quote", 1257 - "syn 2.0.110", 1258 - ] 1259 - 1260 - [[package]] 1261 - name = "openssl-probe" 1262 - version = "0.1.6" 1263 - source = "registry+https://github.com/rust-lang/crates.io-index" 1264 - checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 1265 - 1266 - [[package]] 1267 - name = "openssl-sys" 1268 - version = "0.9.106" 1269 - source = "registry+https://github.com/rust-lang/crates.io-index" 1270 - checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" 1271 - dependencies = [ 1272 - "cc", 1273 - "libc", 1274 - "pkg-config", 1275 - "vcpkg", 1276 - ] 1277 - 1278 - [[package]] 1279 1188 name = "overload" 1280 1189 version = "0.1.1" 1281 1190 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1434 1343 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1435 1344 1436 1345 [[package]] 1437 - name = "pkg-config" 1438 - version = "0.3.31" 1439 - source = "registry+https://github.com/rust-lang/crates.io-index" 1440 - checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 1441 - 1442 - [[package]] 1443 1346 name = "portable-atomic" 1444 1347 version = "1.10.0" 1445 1348 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1582 1485 ] 1583 1486 1584 1487 [[package]] 1488 + name = "quinn" 1489 + version = "0.11.9" 1490 + source = "registry+https://github.com/rust-lang/crates.io-index" 1491 + checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" 1492 + dependencies = [ 1493 + "bytes", 1494 + "cfg_aliases", 1495 + "pin-project-lite", 1496 + "quinn-proto", 1497 + "quinn-udp", 1498 + "rustc-hash", 1499 + "rustls", 1500 + "socket2", 1501 + "thiserror", 1502 + "tokio", 1503 + "tracing", 1504 + "web-time", 1505 + ] 1506 + 1507 + [[package]] 1508 + name = "quinn-proto" 1509 + version = "0.11.13" 1510 + source = "registry+https://github.com/rust-lang/crates.io-index" 1511 + checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" 1512 + dependencies = [ 1513 + "bytes", 1514 + "getrandom 0.3.3", 1515 + "lru-slab", 1516 + "rand 0.9.2", 1517 + "ring", 1518 + "rustc-hash", 1519 + "rustls", 1520 + "rustls-pki-types", 1521 + "slab", 1522 + "thiserror", 1523 + "tinyvec", 1524 + "tracing", 1525 + "web-time", 1526 + ] 1527 + 1528 + [[package]] 1529 + name = "quinn-udp" 1530 + version = "0.5.14" 1531 + source = "registry+https://github.com/rust-lang/crates.io-index" 1532 + checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" 1533 + dependencies = [ 1534 + "cfg_aliases", 1535 + "libc", 1536 + "once_cell", 1537 + "socket2", 1538 + "tracing", 1539 + "windows-sys 0.52.0", 1540 + ] 1541 + 1542 + [[package]] 1585 1543 name = "quote" 1586 1544 version = "1.0.42" 1587 1545 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1752 1710 "http-body-util", 1753 1711 "hyper", 1754 1712 "hyper-rustls", 1755 - "hyper-tls", 1756 1713 "hyper-util", 1757 1714 "js-sys", 1758 1715 "log", 1759 1716 "mime", 1760 - "native-tls", 1761 1717 "percent-encoding", 1762 1718 "pin-project-lite", 1719 + "quinn", 1720 + "rustls", 1763 1721 "rustls-pki-types", 1764 1722 "serde", 1765 1723 "serde_json", 1766 1724 "serde_urlencoded", 1767 1725 "sync_wrapper", 1768 1726 "tokio", 1769 - "tokio-native-tls", 1727 + "tokio-rustls", 1770 1728 "tower", 1771 1729 "tower-http", 1772 1730 "tower-service", ··· 1774 1732 "wasm-bindgen", 1775 1733 "wasm-bindgen-futures", 1776 1734 "web-sys", 1735 + "webpki-roots 1.0.4", 1777 1736 ] 1778 1737 1779 1738 [[package]] ··· 1835 1794 ] 1836 1795 1837 1796 [[package]] 1838 - name = "rustix" 1839 - version = "1.1.2" 1840 - source = "registry+https://github.com/rust-lang/crates.io-index" 1841 - checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 1842 - dependencies = [ 1843 - "bitflags", 1844 - "errno", 1845 - "libc", 1846 - "linux-raw-sys", 1847 - "windows-sys 0.61.2", 1848 - ] 1849 - 1850 - [[package]] 1851 1797 name = "rustls" 1852 1798 version = "0.23.23" 1853 1799 source = "registry+https://github.com/rust-lang/crates.io-index" 1854 1800 checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" 1855 1801 dependencies = [ 1856 1802 "once_cell", 1803 + "ring", 1857 1804 "rustls-pki-types", 1858 1805 "rustls-webpki", 1859 1806 "subtle", ··· 1865 1812 version = "1.11.0" 1866 1813 source = "registry+https://github.com/rust-lang/crates.io-index" 1867 1814 checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" 1815 + dependencies = [ 1816 + "web-time", 1817 + ] 1868 1818 1869 1819 [[package]] 1870 1820 name = "rustls-webpki" ··· 1890 1840 checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1891 1841 1892 1842 [[package]] 1893 - name = "schannel" 1894 - version = "0.1.27" 1895 - source = "registry+https://github.com/rust-lang/crates.io-index" 1896 - checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 1897 - dependencies = [ 1898 - "windows-sys 0.59.0", 1899 - ] 1900 - 1901 - [[package]] 1902 1843 name = "scopeguard" 1903 1844 version = "1.2.0" 1904 1845 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1920 1861 ] 1921 1862 1922 1863 [[package]] 1923 - name = "security-framework" 1924 - version = "2.11.1" 1925 - source = "registry+https://github.com/rust-lang/crates.io-index" 1926 - checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 1927 - dependencies = [ 1928 - "bitflags", 1929 - "core-foundation", 1930 - "core-foundation-sys", 1931 - "libc", 1932 - "security-framework-sys", 1933 - ] 1934 - 1935 - [[package]] 1936 - name = "security-framework-sys" 1937 - version = "2.14.0" 1938 - source = "registry+https://github.com/rust-lang/crates.io-index" 1939 - checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 1940 - dependencies = [ 1941 - "core-foundation-sys", 1942 - "libc", 1943 - ] 1944 - 1945 - [[package]] 1946 1864 name = "selectors" 1947 1865 version = "0.31.0" 1948 1866 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2217 2135 checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 2218 2136 2219 2137 [[package]] 2220 - name = "tempfile" 2221 - version = "3.23.0" 2222 - source = "registry+https://github.com/rust-lang/crates.io-index" 2223 - checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 2224 - dependencies = [ 2225 - "fastrand", 2226 - "getrandom 0.3.3", 2227 - "once_cell", 2228 - "rustix", 2229 - "windows-sys 0.61.2", 2230 - ] 2231 - 2232 - [[package]] 2233 2138 name = "tendril" 2234 2139 version = "0.4.3" 2235 2140 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2322 2227 ] 2323 2228 2324 2229 [[package]] 2230 + name = "tinyvec" 2231 + version = "1.10.0" 2232 + source = "registry+https://github.com/rust-lang/crates.io-index" 2233 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 2234 + dependencies = [ 2235 + "tinyvec_macros", 2236 + ] 2237 + 2238 + [[package]] 2239 + name = "tinyvec_macros" 2240 + version = "0.1.1" 2241 + source = "registry+https://github.com/rust-lang/crates.io-index" 2242 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2243 + 2244 + [[package]] 2325 2245 name = "tokio" 2326 2246 version = "1.48.0" 2327 2247 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2348 2268 ] 2349 2269 2350 2270 [[package]] 2351 - name = "tokio-native-tls" 2352 - version = "0.3.1" 2353 - source = "registry+https://github.com/rust-lang/crates.io-index" 2354 - checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 2355 - dependencies = [ 2356 - "native-tls", 2357 - "tokio", 2358 - ] 2359 - 2360 - [[package]] 2361 2271 name = "tokio-rustls" 2362 2272 version = "0.26.1" 2363 2273 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2597 2507 checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 2598 2508 2599 2509 [[package]] 2600 - name = "vcpkg" 2601 - version = "0.2.15" 2602 - source = "registry+https://github.com/rust-lang/crates.io-index" 2603 - checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2604 - 2605 - [[package]] 2606 2510 name = "version_check" 2607 2511 version = "0.9.5" 2608 2512 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2714 2618 ] 2715 2619 2716 2620 [[package]] 2621 + name = "web-time" 2622 + version = "1.1.0" 2623 + source = "registry+https://github.com/rust-lang/crates.io-index" 2624 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 2625 + dependencies = [ 2626 + "js-sys", 2627 + "wasm-bindgen", 2628 + ] 2629 + 2630 + [[package]] 2717 2631 name = "web_atoms" 2718 2632 version = "0.1.3" 2719 2633 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2723 2637 "phf_codegen 0.11.3", 2724 2638 "string_cache", 2725 2639 "string_cache_codegen", 2640 + ] 2641 + 2642 + [[package]] 2643 + name = "webpki-roots" 2644 + version = "0.26.11" 2645 + source = "registry+https://github.com/rust-lang/crates.io-index" 2646 + checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" 2647 + dependencies = [ 2648 + "webpki-roots 1.0.4", 2649 + ] 2650 + 2651 + [[package]] 2652 + name = "webpki-roots" 2653 + version = "1.0.4" 2654 + source = "registry+https://github.com/rust-lang/crates.io-index" 2655 + checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" 2656 + dependencies = [ 2657 + "rustls-pki-types", 2726 2658 ] 2727 2659 2728 2660 [[package]]
+1 -1
aoc_companion/Cargo.toml
··· 11 11 clap = { version = "4.5.53", features = ["derive"] } 12 12 itertools = { workspace = true } 13 13 rayon = { workspace = true } 14 - reqwest = { version = "0.12.24", features = ["cookies"] } 14 + reqwest = { version = "0.12.24", default-features = false, features = ["charset", "cookies", "http2", "rustls-tls", "system-proxy"] } 15 15 scraper = "0.24.0" 16 16 selectors = "0.33.0" 17 17 serde = { version = "1.0.228", features = ["serde_derive"] }