Return of honkbot, in Rust. Hopefully it won't die all the time.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ci: switch to rustls, build OCI image manually with skopeo push

+225 -576
+102 -38
.tangled/workflows/build.yaml
··· 9 9 - rustc 10 10 - cargo 11 11 - gcc 12 - - pkg-config 13 - - openssl.dev 14 12 - cacert 15 - - buildah 16 - - fuse-overlayfs 13 + - skopeo 14 + - jq 15 + - gnutar 16 + - gzip 17 + - coreutils 17 18 18 19 environment: 19 20 APP_PASSWORD: "${{ secrets.APP_PASSWORD }}" ··· 22 23 IMAGE_NAME: "honkbot" 23 24 24 25 steps: 25 - - name: "find openssl" 26 - command: | 27 - echo "=== looking for openssl in nix store ===" 28 - find /nix/store -maxdepth 4 -name '*ssl*' -o -name '*openssl*' 2>/dev/null | head -30 29 - echo "=== looking for .pc files ===" 30 - find /nix/store -maxdepth 4 -name '*.pc' 2>/dev/null | head -20 31 - echo "=== looking for libssl ===" 32 - find /nix/store -maxdepth 5 -name 'libssl*' 2>/dev/null | head -10 33 - echo "=== looking for ssl headers ===" 34 - find /nix/store -maxdepth 5 -name 'ssl.h' 2>/dev/null | head -10 35 - 36 26 - name: "build rust binary" 37 27 command: | 38 - echo "TODO: fix openssl paths first" 28 + cargo build --release 39 29 40 30 - name: "build and push container image" 41 31 command: | 42 - export REGISTRY_AUTH_FILE=/tmp/auth.json 32 + set -e 43 33 44 - echo "${APP_PASSWORD}" | buildah login \ 45 - -u "${IMAGE_USER}" \ 46 - --password-stdin \ 47 - ${IMAGE_REGISTRY} 34 + # We'll construct a single-layer OCI image manually and push with skopeo 48 35 49 - # Create container from slim debian base 50 - ctr=$(buildah from docker.io/debian:bookworm-slim) 36 + WORKDIR=$(mktemp -d) 37 + mkdir -p $WORKDIR/rootfs/usr/local/bin 38 + mkdir -p $WORKDIR/rootfs/app/fallback_images 39 + mkdir -p $WORKDIR/rootfs/etc/ssl/certs 51 40 52 - # Install ca-certificates 53 - buildah run $ctr -- apt-get update 54 - buildah run $ctr -- apt-get install -y --no-install-recommends ca-certificates 55 - buildah run $ctr -- rm -rf /var/lib/apt/lists/* 41 + # Copy binary and fallback images into rootfs 42 + cp target/release/honkbot $WORKDIR/rootfs/usr/local/bin/ 43 + cp -r fallback_images/* $WORKDIR/rootfs/app/fallback_images/ 44 + 45 + # Copy CA certs so TLS works 46 + cp /etc/ssl/certs/ca-certificates.crt $WORKDIR/rootfs/etc/ssl/certs/ 2>/dev/null \ 47 + || cp /etc/ssl/certs/ca-bundle.crt $WORKDIR/rootfs/etc/ssl/certs/ca-certificates.crt 2>/dev/null \ 48 + || true 49 + 50 + # Create the layer tarball 51 + cd $WORKDIR/rootfs 52 + tar czf $WORKDIR/layer.tar.gz . 53 + cd - 54 + 55 + LAYER_DIGEST=$(sha256sum $WORKDIR/layer.tar.gz | cut -d' ' -f1) 56 + LAYER_SIZE=$(stat -c%s $WORKDIR/layer.tar.gz) 56 57 57 - # Copy in our binary and fallback images 58 - buildah copy $ctr target/release/honkbot /usr/local/bin/honkbot 59 - buildah copy $ctr fallback_images/ /app/fallback_images/ 58 + # Build OCI image layout 59 + OCI=$WORKDIR/oci 60 + mkdir -p $OCI/blobs/sha256 60 61 61 - # Configure 62 - buildah config --workingdir /app $ctr 63 - buildah config --env FALLBACK_IMAGE_DIR=/app/fallback_images $ctr 64 - buildah config --env RUST_LOG=info $ctr 65 - buildah config --entrypoint '["honkbot"]' $ctr 62 + cp $WORKDIR/layer.tar.gz $OCI/blobs/sha256/$LAYER_DIGEST 66 63 67 - # Commit and push 68 - buildah commit $ctr ${IMAGE_REGISTRY}/${IMAGE_USER}/${IMAGE_NAME}:latest 69 - buildah push ${IMAGE_REGISTRY}/${IMAGE_USER}/${IMAGE_NAME}:latest 64 + # Config 65 + cat > $WORKDIR/config.json <<EOF 66 + { 67 + "architecture": "amd64", 68 + "os": "linux", 69 + "config": { 70 + "Env": ["FALLBACK_IMAGE_DIR=/app/fallback_images", "RUST_LOG=info", "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"], 71 + "WorkingDir": "/app", 72 + "Entrypoint": ["/usr/local/bin/honkbot"] 73 + }, 74 + "rootfs": { 75 + "type": "layers", 76 + "diff_ids": ["sha256:$LAYER_DIGEST"] 77 + } 78 + } 79 + EOF 80 + 81 + CONFIG_DIGEST=$(sha256sum $WORKDIR/config.json | cut -d' ' -f1) 82 + CONFIG_SIZE=$(stat -c%s $WORKDIR/config.json) 83 + cp $WORKDIR/config.json $OCI/blobs/sha256/$CONFIG_DIGEST 84 + 85 + # Manifest 86 + cat > $WORKDIR/manifest.json <<EOF 87 + { 88 + "schemaVersion": 2, 89 + "mediaType": "application/vnd.oci.image.manifest.v1+json", 90 + "config": { 91 + "mediaType": "application/vnd.oci.image.config.v1+json", 92 + "digest": "sha256:$CONFIG_DIGEST", 93 + "size": $CONFIG_SIZE 94 + }, 95 + "layers": [ 96 + { 97 + "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip", 98 + "digest": "sha256:$LAYER_DIGEST", 99 + "size": $LAYER_SIZE 100 + } 101 + ] 102 + } 103 + EOF 104 + 105 + MANIFEST_DIGEST=$(sha256sum $WORKDIR/manifest.json | cut -d' ' -f1) 106 + MANIFEST_SIZE=$(stat -c%s $WORKDIR/manifest.json) 107 + cp $WORKDIR/manifest.json $OCI/blobs/sha256/$MANIFEST_DIGEST 108 + 109 + # Index 110 + cat > $OCI/index.json <<EOF 111 + { 112 + "schemaVersion": 2, 113 + "manifests": [ 114 + { 115 + "mediaType": "application/vnd.oci.image.manifest.v1+json", 116 + "digest": "sha256:$MANIFEST_DIGEST", 117 + "size": $MANIFEST_SIZE 118 + } 119 + ] 120 + } 121 + EOF 122 + 123 + echo '{"imageLayoutVersion": "1.0.0"}' > $OCI/oci-layout 124 + 125 + # Push with skopeo 126 + echo "${APP_PASSWORD}" | skopeo login \ 127 + -u "${IMAGE_USER}" \ 128 + --password-stdin \ 129 + ${IMAGE_REGISTRY} 130 + 131 + skopeo copy \ 132 + oci:$OCI \ 133 + docker://${IMAGE_REGISTRY}/${IMAGE_USER}/${IMAGE_NAME}:latest
+121 -536
Cargo.lock
··· 219 219 checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 220 220 221 221 [[package]] 222 - name = "color_quant" 223 - version = "1.1.0" 224 - source = "registry+https://github.com/rust-lang/crates.io-index" 225 - checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 226 - 227 - [[package]] 228 - name = "core-foundation" 229 - version = "0.9.4" 230 - source = "registry+https://github.com/rust-lang/crates.io-index" 231 - checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 232 - dependencies = [ 233 - "core-foundation-sys", 234 - "libc", 235 - ] 236 - 237 - [[package]] 238 - name = "core-foundation" 239 - version = "0.10.1" 222 + name = "cfg_aliases" 223 + version = "0.2.1" 240 224 source = "registry+https://github.com/rust-lang/crates.io-index" 241 - checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 242 - dependencies = [ 243 - "core-foundation-sys", 244 - "libc", 245 - ] 225 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 246 226 247 227 [[package]] 248 - name = "core-foundation-sys" 249 - version = "0.8.7" 228 + name = "color_quant" 229 + version = "1.1.0" 250 230 source = "registry+https://github.com/rust-lang/crates.io-index" 251 - checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 231 + checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 252 232 253 233 [[package]] 254 234 name = "core2" ··· 358 338 checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 359 339 360 340 [[package]] 361 - name = "encoding_rs" 362 - version = "0.8.35" 363 - source = "registry+https://github.com/rust-lang/crates.io-index" 364 - checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 365 - dependencies = [ 366 - "cfg-if", 367 - ] 368 - 369 - [[package]] 370 341 name = "equator" 371 342 version = "0.4.2" 372 343 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 387 358 ] 388 359 389 360 [[package]] 390 - name = "equivalent" 391 - version = "1.0.2" 392 - source = "registry+https://github.com/rust-lang/crates.io-index" 393 - checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 394 - 395 - [[package]] 396 361 name = "errno" 397 362 version = "0.3.14" 398 363 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 416 381 "smallvec", 417 382 "zune-inflate", 418 383 ] 419 - 420 - [[package]] 421 - name = "fastrand" 422 - version = "2.3.0" 423 - source = "registry+https://github.com/rust-lang/crates.io-index" 424 - checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 425 384 426 385 [[package]] 427 386 name = "fax" ··· 469 428 ] 470 429 471 430 [[package]] 472 - name = "fnv" 473 - version = "1.0.7" 474 - source = "registry+https://github.com/rust-lang/crates.io-index" 475 - checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 476 - 477 - [[package]] 478 - name = "foldhash" 479 - version = "0.1.5" 480 - source = "registry+https://github.com/rust-lang/crates.io-index" 481 - checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 482 - 483 - [[package]] 484 - name = "foreign-types" 485 - version = "0.3.2" 486 - source = "registry+https://github.com/rust-lang/crates.io-index" 487 - checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 488 - dependencies = [ 489 - "foreign-types-shared", 490 - ] 491 - 492 - [[package]] 493 - name = "foreign-types-shared" 494 - version = "0.1.1" 495 - source = "registry+https://github.com/rust-lang/crates.io-index" 496 - checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 497 - 498 - [[package]] 499 431 name = "form_urlencoded" 500 432 version = "1.2.2" 501 433 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 573 505 checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 574 506 dependencies = [ 575 507 "cfg-if", 508 + "js-sys", 576 509 "libc", 577 510 "wasi", 511 + "wasm-bindgen", 578 512 ] 579 513 580 514 [[package]] ··· 584 518 checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 585 519 dependencies = [ 586 520 "cfg-if", 521 + "js-sys", 587 522 "libc", 588 - "r-efi 5.3.0", 523 + "r-efi", 589 524 "wasip2", 590 - ] 591 - 592 - [[package]] 593 - name = "getrandom" 594 - version = "0.4.2" 595 - source = "registry+https://github.com/rust-lang/crates.io-index" 596 - checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" 597 - dependencies = [ 598 - "cfg-if", 599 - "libc", 600 - "r-efi 6.0.0", 601 - "wasip2", 602 - "wasip3", 525 + "wasm-bindgen", 603 526 ] 604 527 605 528 [[package]] ··· 613 536 ] 614 537 615 538 [[package]] 616 - name = "h2" 617 - version = "0.4.13" 618 - source = "registry+https://github.com/rust-lang/crates.io-index" 619 - checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" 620 - dependencies = [ 621 - "atomic-waker", 622 - "bytes", 623 - "fnv", 624 - "futures-core", 625 - "futures-sink", 626 - "http", 627 - "indexmap", 628 - "slab", 629 - "tokio", 630 - "tokio-util", 631 - "tracing", 632 - ] 633 - 634 - [[package]] 635 539 name = "half" 636 540 version = "2.7.1" 637 541 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 643 547 ] 644 548 645 549 [[package]] 646 - name = "hashbrown" 647 - version = "0.15.5" 648 - source = "registry+https://github.com/rust-lang/crates.io-index" 649 - checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 650 - dependencies = [ 651 - "foldhash", 652 - ] 653 - 654 - [[package]] 655 - name = "hashbrown" 656 - version = "0.16.1" 657 - source = "registry+https://github.com/rust-lang/crates.io-index" 658 - checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 659 - 660 - [[package]] 661 - name = "heck" 662 - version = "0.5.0" 663 - source = "registry+https://github.com/rust-lang/crates.io-index" 664 - checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 665 - 666 - [[package]] 667 550 name = "honkbot" 668 551 version = "0.1.0" 669 552 dependencies = [ ··· 732 615 "bytes", 733 616 "futures-channel", 734 617 "futures-core", 735 - "h2", 736 618 "http", 737 619 "http-body", 738 620 "httparse", ··· 757 639 "tokio", 758 640 "tokio-rustls", 759 641 "tower-service", 760 - ] 761 - 762 - [[package]] 763 - name = "hyper-tls" 764 - version = "0.6.0" 765 - source = "registry+https://github.com/rust-lang/crates.io-index" 766 - checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 767 - dependencies = [ 768 - "bytes", 769 - "http-body-util", 770 - "hyper", 771 - "hyper-util", 772 - "native-tls", 773 - "tokio", 774 - "tokio-native-tls", 775 - "tower-service", 642 + "webpki-roots 1.0.6", 776 643 ] 777 644 778 645 [[package]] ··· 793 660 "percent-encoding", 794 661 "pin-project-lite", 795 662 "socket2", 796 - "system-configuration", 797 663 "tokio", 798 664 "tower-service", 799 665 "tracing", 800 - "windows-registry", 801 666 ] 802 667 803 668 [[package]] ··· 881 746 "zerotrie", 882 747 "zerovec", 883 748 ] 884 - 885 - [[package]] 886 - name = "id-arena" 887 - version = "2.3.0" 888 - source = "registry+https://github.com/rust-lang/crates.io-index" 889 - checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 890 749 891 750 [[package]] 892 751 name = "idna" ··· 950 809 checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" 951 810 952 811 [[package]] 953 - name = "indexmap" 954 - version = "2.13.0" 955 - source = "registry+https://github.com/rust-lang/crates.io-index" 956 - checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 957 - dependencies = [ 958 - "equivalent", 959 - "hashbrown 0.16.1", 960 - "serde", 961 - "serde_core", 962 - ] 963 - 964 - [[package]] 965 812 name = "interpolate_name" 966 813 version = "0.2.4" 967 814 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1032 879 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1033 880 1034 881 [[package]] 1035 - name = "leb128fmt" 1036 - version = "0.1.0" 1037 - source = "registry+https://github.com/rust-lang/crates.io-index" 1038 - checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 1039 - 1040 - [[package]] 1041 882 name = "lebe" 1042 883 version = "0.5.3" 1043 884 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1060 901 ] 1061 902 1062 903 [[package]] 1063 - name = "linux-raw-sys" 1064 - version = "0.12.1" 1065 - source = "registry+https://github.com/rust-lang/crates.io-index" 1066 - checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" 1067 - 1068 - [[package]] 1069 904 name = "litemap" 1070 905 version = "0.8.2" 1071 906 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1096 931 ] 1097 932 1098 933 [[package]] 934 + name = "lru-slab" 935 + version = "0.1.2" 936 + source = "registry+https://github.com/rust-lang/crates.io-index" 937 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 938 + 939 + [[package]] 1099 940 name = "matchers" 1100 941 version = "0.2.0" 1101 942 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1121 962 checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 1122 963 1123 964 [[package]] 1124 - name = "mime" 1125 - version = "0.3.17" 1126 - source = "registry+https://github.com/rust-lang/crates.io-index" 1127 - checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1128 - 1129 - [[package]] 1130 965 name = "miniz_oxide" 1131 966 version = "0.8.9" 1132 967 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1158 993 ] 1159 994 1160 995 [[package]] 1161 - name = "native-tls" 1162 - version = "0.2.18" 1163 - source = "registry+https://github.com/rust-lang/crates.io-index" 1164 - checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" 1165 - dependencies = [ 1166 - "libc", 1167 - "log", 1168 - "openssl", 1169 - "openssl-probe", 1170 - "openssl-sys", 1171 - "schannel", 1172 - "security-framework", 1173 - "security-framework-sys", 1174 - "tempfile", 1175 - ] 1176 - 1177 - [[package]] 1178 996 name = "new_debug_unreachable" 1179 997 version = "1.0.6" 1180 998 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1261 1079 checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" 1262 1080 1263 1081 [[package]] 1264 - name = "openssl" 1265 - version = "0.10.76" 1266 - source = "registry+https://github.com/rust-lang/crates.io-index" 1267 - checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" 1268 - dependencies = [ 1269 - "bitflags", 1270 - "cfg-if", 1271 - "foreign-types", 1272 - "libc", 1273 - "once_cell", 1274 - "openssl-macros", 1275 - "openssl-sys", 1276 - ] 1277 - 1278 - [[package]] 1279 - name = "openssl-macros" 1280 - version = "0.1.1" 1281 - source = "registry+https://github.com/rust-lang/crates.io-index" 1282 - checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1283 - dependencies = [ 1284 - "proc-macro2", 1285 - "quote", 1286 - "syn", 1287 - ] 1288 - 1289 - [[package]] 1290 - name = "openssl-probe" 1291 - version = "0.2.1" 1292 - source = "registry+https://github.com/rust-lang/crates.io-index" 1293 - checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" 1294 - 1295 - [[package]] 1296 - name = "openssl-sys" 1297 - version = "0.9.112" 1298 - source = "registry+https://github.com/rust-lang/crates.io-index" 1299 - checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" 1300 - dependencies = [ 1301 - "cc", 1302 - "libc", 1303 - "pkg-config", 1304 - "vcpkg", 1305 - ] 1306 - 1307 - [[package]] 1308 1082 name = "parking_lot" 1309 1083 version = "0.12.5" 1310 1084 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1350 1124 version = "0.2.17" 1351 1125 source = "registry+https://github.com/rust-lang/crates.io-index" 1352 1126 checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 1353 - 1354 - [[package]] 1355 - name = "pkg-config" 1356 - version = "0.3.32" 1357 - source = "registry+https://github.com/rust-lang/crates.io-index" 1358 - checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1359 1127 1360 1128 [[package]] 1361 1129 name = "png" ··· 1389 1157 ] 1390 1158 1391 1159 [[package]] 1392 - name = "prettyplease" 1393 - version = "0.2.37" 1394 - source = "registry+https://github.com/rust-lang/crates.io-index" 1395 - checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 1396 - dependencies = [ 1397 - "proc-macro2", 1398 - "syn", 1399 - ] 1400 - 1401 - [[package]] 1402 1160 name = "proc-macro2" 1403 1161 version = "1.0.106" 1404 1162 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1448 1206 checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" 1449 1207 1450 1208 [[package]] 1209 + name = "quinn" 1210 + version = "0.11.9" 1211 + source = "registry+https://github.com/rust-lang/crates.io-index" 1212 + checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" 1213 + dependencies = [ 1214 + "bytes", 1215 + "cfg_aliases", 1216 + "pin-project-lite", 1217 + "quinn-proto", 1218 + "quinn-udp", 1219 + "rustc-hash", 1220 + "rustls", 1221 + "socket2", 1222 + "thiserror 2.0.18", 1223 + "tokio", 1224 + "tracing", 1225 + "web-time", 1226 + ] 1227 + 1228 + [[package]] 1229 + name = "quinn-proto" 1230 + version = "0.11.13" 1231 + source = "registry+https://github.com/rust-lang/crates.io-index" 1232 + checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" 1233 + dependencies = [ 1234 + "bytes", 1235 + "getrandom 0.3.4", 1236 + "lru-slab", 1237 + "rand 0.9.2", 1238 + "ring", 1239 + "rustc-hash", 1240 + "rustls", 1241 + "rustls-pki-types", 1242 + "slab", 1243 + "thiserror 2.0.18", 1244 + "tinyvec", 1245 + "tracing", 1246 + "web-time", 1247 + ] 1248 + 1249 + [[package]] 1250 + name = "quinn-udp" 1251 + version = "0.5.14" 1252 + source = "registry+https://github.com/rust-lang/crates.io-index" 1253 + checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" 1254 + dependencies = [ 1255 + "cfg_aliases", 1256 + "libc", 1257 + "once_cell", 1258 + "socket2", 1259 + "tracing", 1260 + "windows-sys 0.52.0", 1261 + ] 1262 + 1263 + [[package]] 1451 1264 name = "quote" 1452 1265 version = "1.0.45" 1453 1266 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1461 1274 version = "5.3.0" 1462 1275 source = "registry+https://github.com/rust-lang/crates.io-index" 1463 1276 checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1464 - 1465 - [[package]] 1466 - name = "r-efi" 1467 - version = "6.0.0" 1468 - source = "registry+https://github.com/rust-lang/crates.io-index" 1469 - checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" 1470 1277 1471 1278 [[package]] 1472 1279 name = "rand" ··· 1631 1438 dependencies = [ 1632 1439 "base64", 1633 1440 "bytes", 1634 - "encoding_rs", 1635 1441 "futures-core", 1636 - "h2", 1637 1442 "http", 1638 1443 "http-body", 1639 1444 "http-body-util", 1640 1445 "hyper", 1641 1446 "hyper-rustls", 1642 - "hyper-tls", 1643 1447 "hyper-util", 1644 1448 "js-sys", 1645 1449 "log", 1646 - "mime", 1647 - "native-tls", 1648 1450 "percent-encoding", 1649 1451 "pin-project-lite", 1452 + "quinn", 1453 + "rustls", 1650 1454 "rustls-pki-types", 1651 1455 "serde", 1652 1456 "serde_json", 1653 1457 "serde_urlencoded", 1654 1458 "sync_wrapper", 1655 1459 "tokio", 1656 - "tokio-native-tls", 1460 + "tokio-rustls", 1657 1461 "tower", 1658 1462 "tower-http", 1659 1463 "tower-service", ··· 1661 1465 "wasm-bindgen", 1662 1466 "wasm-bindgen-futures", 1663 1467 "web-sys", 1468 + "webpki-roots 1.0.6", 1664 1469 ] 1665 1470 1666 1471 [[package]] ··· 1684 1489 ] 1685 1490 1686 1491 [[package]] 1687 - name = "rustix" 1688 - version = "1.1.4" 1492 + name = "rustc-hash" 1493 + version = "2.1.1" 1689 1494 source = "registry+https://github.com/rust-lang/crates.io-index" 1690 - checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 1691 - dependencies = [ 1692 - "bitflags", 1693 - "errno", 1694 - "libc", 1695 - "linux-raw-sys", 1696 - "windows-sys 0.61.2", 1697 - ] 1495 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1698 1496 1699 1497 [[package]] 1700 1498 name = "rustls" ··· 1703 1501 checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" 1704 1502 dependencies = [ 1705 1503 "once_cell", 1504 + "ring", 1706 1505 "rustls-pki-types", 1707 1506 "rustls-webpki", 1708 1507 "subtle", ··· 1715 1514 source = "registry+https://github.com/rust-lang/crates.io-index" 1716 1515 checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" 1717 1516 dependencies = [ 1517 + "web-time", 1718 1518 "zeroize", 1719 1519 ] 1720 1520 ··· 1742 1542 checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 1743 1543 1744 1544 [[package]] 1745 - name = "schannel" 1746 - version = "0.1.29" 1747 - source = "registry+https://github.com/rust-lang/crates.io-index" 1748 - checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" 1749 - dependencies = [ 1750 - "windows-sys 0.61.2", 1751 - ] 1752 - 1753 - [[package]] 1754 1545 name = "scopeguard" 1755 1546 version = "1.2.0" 1756 1547 source = "registry+https://github.com/rust-lang/crates.io-index" 1757 1548 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1758 - 1759 - [[package]] 1760 - name = "security-framework" 1761 - version = "3.7.0" 1762 - source = "registry+https://github.com/rust-lang/crates.io-index" 1763 - checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" 1764 - dependencies = [ 1765 - "bitflags", 1766 - "core-foundation 0.10.1", 1767 - "core-foundation-sys", 1768 - "libc", 1769 - "security-framework-sys", 1770 - ] 1771 - 1772 - [[package]] 1773 - name = "security-framework-sys" 1774 - version = "2.17.0" 1775 - source = "registry+https://github.com/rust-lang/crates.io-index" 1776 - checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" 1777 - dependencies = [ 1778 - "core-foundation-sys", 1779 - "libc", 1780 - ] 1781 - 1782 - [[package]] 1783 - name = "semver" 1784 - version = "1.0.27" 1785 - source = "registry+https://github.com/rust-lang/crates.io-index" 1786 - checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1787 1549 1788 1550 [[package]] 1789 1551 name = "serde" ··· 1957 1719 ] 1958 1720 1959 1721 [[package]] 1960 - name = "system-configuration" 1961 - version = "0.7.0" 1962 - source = "registry+https://github.com/rust-lang/crates.io-index" 1963 - checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" 1964 - dependencies = [ 1965 - "bitflags", 1966 - "core-foundation 0.9.4", 1967 - "system-configuration-sys", 1968 - ] 1969 - 1970 - [[package]] 1971 - name = "system-configuration-sys" 1972 - version = "0.6.0" 1973 - source = "registry+https://github.com/rust-lang/crates.io-index" 1974 - checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 1975 - dependencies = [ 1976 - "core-foundation-sys", 1977 - "libc", 1978 - ] 1979 - 1980 - [[package]] 1981 - name = "tempfile" 1982 - version = "3.27.0" 1983 - source = "registry+https://github.com/rust-lang/crates.io-index" 1984 - checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" 1985 - dependencies = [ 1986 - "fastrand", 1987 - "getrandom 0.4.2", 1988 - "once_cell", 1989 - "rustix", 1990 - "windows-sys 0.61.2", 1991 - ] 1992 - 1993 - [[package]] 1994 1722 name = "thiserror" 1995 1723 version = "1.0.69" 1996 1724 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2064 1792 ] 2065 1793 2066 1794 [[package]] 1795 + name = "tinyvec" 1796 + version = "1.10.0" 1797 + source = "registry+https://github.com/rust-lang/crates.io-index" 1798 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 1799 + dependencies = [ 1800 + "tinyvec_macros", 1801 + ] 1802 + 1803 + [[package]] 1804 + name = "tinyvec_macros" 1805 + version = "0.1.1" 1806 + source = "registry+https://github.com/rust-lang/crates.io-index" 1807 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1808 + 1809 + [[package]] 2067 1810 name = "tokio" 2068 1811 version = "1.50.0" 2069 1812 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2092 1835 ] 2093 1836 2094 1837 [[package]] 2095 - name = "tokio-native-tls" 2096 - version = "0.3.1" 2097 - source = "registry+https://github.com/rust-lang/crates.io-index" 2098 - checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 2099 - dependencies = [ 2100 - "native-tls", 2101 - "tokio", 2102 - ] 2103 - 2104 - [[package]] 2105 1838 name = "tokio-rustls" 2106 1839 version = "0.26.4" 2107 1840 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2119 1852 dependencies = [ 2120 1853 "futures-util", 2121 1854 "log", 2122 - "native-tls", 1855 + "rustls", 1856 + "rustls-pki-types", 2123 1857 "tokio", 2124 - "tokio-native-tls", 1858 + "tokio-rustls", 2125 1859 "tungstenite", 2126 - ] 2127 - 2128 - [[package]] 2129 - name = "tokio-util" 2130 - version = "0.7.18" 2131 - source = "registry+https://github.com/rust-lang/crates.io-index" 2132 - checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" 2133 - dependencies = [ 2134 - "bytes", 2135 - "futures-core", 2136 - "futures-sink", 2137 - "pin-project-lite", 2138 - "tokio", 1860 + "webpki-roots 0.26.11", 2139 1861 ] 2140 1862 2141 1863 [[package]] ··· 2275 1997 "http", 2276 1998 "httparse", 2277 1999 "log", 2278 - "native-tls", 2279 2000 "rand 0.8.5", 2001 + "rustls", 2002 + "rustls-pki-types", 2280 2003 "sha1", 2281 2004 "thiserror 1.0.69", 2282 2005 "utf-8", ··· 2293 2016 version = "1.0.24" 2294 2017 source = "registry+https://github.com/rust-lang/crates.io-index" 2295 2018 checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 2296 - 2297 - [[package]] 2298 - name = "unicode-xid" 2299 - version = "0.2.6" 2300 - source = "registry+https://github.com/rust-lang/crates.io-index" 2301 - checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 2302 2019 2303 2020 [[package]] 2304 2021 name = "untrusted" ··· 2354 2071 checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 2355 2072 2356 2073 [[package]] 2357 - name = "vcpkg" 2358 - version = "0.2.15" 2359 - source = "registry+https://github.com/rust-lang/crates.io-index" 2360 - checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2361 - 2362 - [[package]] 2363 2074 name = "version_check" 2364 2075 version = "0.9.5" 2365 2076 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2385 2096 version = "1.0.2+wasi-0.2.9" 2386 2097 source = "registry+https://github.com/rust-lang/crates.io-index" 2387 2098 checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 2388 - dependencies = [ 2389 - "wit-bindgen", 2390 - ] 2391 - 2392 - [[package]] 2393 - name = "wasip3" 2394 - version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 2395 - source = "registry+https://github.com/rust-lang/crates.io-index" 2396 - checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 2397 2099 dependencies = [ 2398 2100 "wit-bindgen", 2399 2101 ] ··· 2454 2156 ] 2455 2157 2456 2158 [[package]] 2457 - name = "wasm-encoder" 2458 - version = "0.244.0" 2159 + name = "web-sys" 2160 + version = "0.3.94" 2459 2161 source = "registry+https://github.com/rust-lang/crates.io-index" 2460 - checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 2162 + checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" 2461 2163 dependencies = [ 2462 - "leb128fmt", 2463 - "wasmparser", 2164 + "js-sys", 2165 + "wasm-bindgen", 2464 2166 ] 2465 2167 2466 2168 [[package]] 2467 - name = "wasm-metadata" 2468 - version = "0.244.0" 2169 + name = "web-time" 2170 + version = "1.1.0" 2469 2171 source = "registry+https://github.com/rust-lang/crates.io-index" 2470 - checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 2172 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 2471 2173 dependencies = [ 2472 - "anyhow", 2473 - "indexmap", 2474 - "wasm-encoder", 2475 - "wasmparser", 2174 + "js-sys", 2175 + "wasm-bindgen", 2476 2176 ] 2477 2177 2478 2178 [[package]] 2479 - name = "wasmparser" 2480 - version = "0.244.0" 2179 + name = "webpki-roots" 2180 + version = "0.26.11" 2481 2181 source = "registry+https://github.com/rust-lang/crates.io-index" 2482 - checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 2182 + checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" 2483 2183 dependencies = [ 2484 - "bitflags", 2485 - "hashbrown 0.15.5", 2486 - "indexmap", 2487 - "semver", 2184 + "webpki-roots 1.0.6", 2488 2185 ] 2489 2186 2490 2187 [[package]] 2491 - name = "web-sys" 2492 - version = "0.3.94" 2188 + name = "webpki-roots" 2189 + version = "1.0.6" 2493 2190 source = "registry+https://github.com/rust-lang/crates.io-index" 2494 - checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" 2191 + checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" 2495 2192 dependencies = [ 2496 - "js-sys", 2497 - "wasm-bindgen", 2193 + "rustls-pki-types", 2498 2194 ] 2499 2195 2500 2196 [[package]] ··· 2508 2204 version = "0.2.1" 2509 2205 source = "registry+https://github.com/rust-lang/crates.io-index" 2510 2206 checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 2511 - 2512 - [[package]] 2513 - name = "windows-registry" 2514 - version = "0.6.1" 2515 - source = "registry+https://github.com/rust-lang/crates.io-index" 2516 - checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" 2517 - dependencies = [ 2518 - "windows-link", 2519 - "windows-result", 2520 - "windows-strings", 2521 - ] 2522 - 2523 - [[package]] 2524 - name = "windows-result" 2525 - version = "0.4.1" 2526 - source = "registry+https://github.com/rust-lang/crates.io-index" 2527 - checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 2528 - dependencies = [ 2529 - "windows-link", 2530 - ] 2531 - 2532 - [[package]] 2533 - name = "windows-strings" 2534 - version = "0.5.1" 2535 - source = "registry+https://github.com/rust-lang/crates.io-index" 2536 - checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 2537 - dependencies = [ 2538 - "windows-link", 2539 - ] 2540 2207 2541 2208 [[package]] 2542 2209 name = "windows-sys" ··· 2625 2292 version = "0.51.0" 2626 2293 source = "registry+https://github.com/rust-lang/crates.io-index" 2627 2294 checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 2628 - dependencies = [ 2629 - "wit-bindgen-rust-macro", 2630 - ] 2631 - 2632 - [[package]] 2633 - name = "wit-bindgen-core" 2634 - version = "0.51.0" 2635 - source = "registry+https://github.com/rust-lang/crates.io-index" 2636 - checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 2637 - dependencies = [ 2638 - "anyhow", 2639 - "heck", 2640 - "wit-parser", 2641 - ] 2642 - 2643 - [[package]] 2644 - name = "wit-bindgen-rust" 2645 - version = "0.51.0" 2646 - source = "registry+https://github.com/rust-lang/crates.io-index" 2647 - checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 2648 - dependencies = [ 2649 - "anyhow", 2650 - "heck", 2651 - "indexmap", 2652 - "prettyplease", 2653 - "syn", 2654 - "wasm-metadata", 2655 - "wit-bindgen-core", 2656 - "wit-component", 2657 - ] 2658 - 2659 - [[package]] 2660 - name = "wit-bindgen-rust-macro" 2661 - version = "0.51.0" 2662 - source = "registry+https://github.com/rust-lang/crates.io-index" 2663 - checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 2664 - dependencies = [ 2665 - "anyhow", 2666 - "prettyplease", 2667 - "proc-macro2", 2668 - "quote", 2669 - "syn", 2670 - "wit-bindgen-core", 2671 - "wit-bindgen-rust", 2672 - ] 2673 - 2674 - [[package]] 2675 - name = "wit-component" 2676 - version = "0.244.0" 2677 - source = "registry+https://github.com/rust-lang/crates.io-index" 2678 - checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 2679 - dependencies = [ 2680 - "anyhow", 2681 - "bitflags", 2682 - "indexmap", 2683 - "log", 2684 - "serde", 2685 - "serde_derive", 2686 - "serde_json", 2687 - "wasm-encoder", 2688 - "wasm-metadata", 2689 - "wasmparser", 2690 - "wit-parser", 2691 - ] 2692 - 2693 - [[package]] 2694 - name = "wit-parser" 2695 - version = "0.244.0" 2696 - source = "registry+https://github.com/rust-lang/crates.io-index" 2697 - checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 2698 - dependencies = [ 2699 - "anyhow", 2700 - "id-arena", 2701 - "indexmap", 2702 - "log", 2703 - "semver", 2704 - "serde", 2705 - "serde_derive", 2706 - "serde_json", 2707 - "unicode-xid", 2708 - "wasmparser", 2709 - ] 2710 2295 2711 2296 [[package]] 2712 2297 name = "writeable"
+2 -2
Cargo.toml
··· 5 5 6 6 [dependencies] 7 7 tokio = { version = "1", features = ["full"] } 8 - tokio-tungstenite = { version = "0.24", features = ["native-tls"] } 8 + tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] } 9 9 futures-util = "0.3" 10 - reqwest = { version = "0.12", features = ["json"] } 10 + reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } 11 11 serde = { version = "1", features = ["derive"] } 12 12 serde_json = "1" 13 13 tracing = "0.1"