Fetch User Keys - simple tool for fetching SSH keys from various sources

Compare changes

Choose any two refs to compare.

+9
.build.yml
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
+
image: nixos/23.05
+
environment:
+
NIX_CONFIG: "experimental-features = nix-command flakes"
+
tasks:
+
- build: nix build ./fuk
+4
.cargo/config.toml
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
[alias]
xtask = "run --package xtask --"
+4
.gitignore
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
.devenv
# Added by cargo
-10
.reuse/dep5
···
-
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-
Upstream-Name: fuk
-
Upstream-Contact: Łukasz Niemier <~@hauleth.dev>
-
Source: https://git.sr.ht/~hauleth/fuk
-
-
# Sample paragraph, commented out:
-
#
-
# Files: src/*
-
# Copyright: $YEAR $NAME <$CONTACT>
-
# License: ...
+459 -845
Cargo.lock
···
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
-
version = 3
+
version = 4
[[package]]
-
name = "addr2line"
-
version = "0.21.0"
+
name = "adler2"
+
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
-
dependencies = [
-
"gimli",
-
]
-
-
[[package]]
-
name = "adler"
-
version = "1.0.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
[[package]]
name = "anstream"
-
version = "0.6.11"
+
version = "0.6.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+
checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
+
"is_terminal_polyfill",
"utf8parse",
]
[[package]]
name = "anstyle"
-
version = "1.0.6"
+
version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
[[package]]
name = "anstyle-parse"
-
version = "0.2.3"
+
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+
checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
-
version = "1.0.2"
+
version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+
checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2"
dependencies = [
-
"windows-sys 0.52.0",
+
"windows-sys 0.60.2",
]
[[package]]
name = "anstyle-wincon"
-
version = "3.0.2"
+
version = "3.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+
checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a"
dependencies = [
"anstyle",
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "async-trait"
-
version = "0.1.77"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
+
"once_cell_polyfill",
+
"windows-sys 0.60.2",
]
[[package]]
name = "autocfg"
-
version = "1.1.0"
+
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-
[[package]]
-
name = "backtrace"
-
version = "0.3.69"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
-
dependencies = [
-
"addr2line",
-
"cc",
-
"cfg-if",
-
"libc",
-
"miniz_oxide",
-
"object",
-
"rustc-demangle",
-
]
+
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "base16ct"
···
[[package]]
name = "base64"
-
version = "0.21.7"
+
version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "base64ct"
-
version = "1.6.0"
+
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
[[package]]
name = "bitflags"
-
version = "1.3.2"
+
version = "2.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-
[[package]]
-
name = "bitflags"
-
version = "2.4.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
[[package]]
name = "block-buffer"
···
]
[[package]]
-
name = "bumpalo"
-
version = "3.14.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
-
-
[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
[[package]]
name = "bytes"
-
version = "1.5.0"
+
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
[[package]]
name = "cc"
-
version = "1.0.83"
+
version = "1.2.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+
checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f"
dependencies = [
-
"libc",
+
"find-msvc-tools",
+
"shlex",
]
[[package]]
name = "cfg-if"
-
version = "1.0.0"
+
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
[[package]]
name = "cipher"
···
[[package]]
name = "clap"
-
version = "4.5.0"
+
version = "4.5.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
+
checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae"
dependencies = [
"clap_builder",
"clap_derive",
···
[[package]]
name = "clap_builder"
-
version = "4.5.0"
+
version = "4.5.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
+
checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9"
dependencies = [
"anstream",
"anstyle",
···
[[package]]
name = "clap_derive"
-
version = "4.5.0"
+
version = "4.5.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
+
checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c"
dependencies = [
"heck",
"proc-macro2",
···
[[package]]
name = "clap_lex"
-
version = "0.7.0"
+
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
[[package]]
name = "colorchoice"
-
version = "1.0.0"
+
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
[[package]]
name = "const-oid"
···
[[package]]
name = "core-foundation-sys"
-
version = "0.8.6"
+
version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "cpufeatures"
-
version = "0.2.12"
+
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
dependencies = [
"libc",
]
[[package]]
+
name = "crc32fast"
+
version = "1.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
+
dependencies = [
+
"cfg-if",
+
]
+
+
[[package]]
+
name = "crossbeam-deque"
+
version = "0.8.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+
dependencies = [
+
"crossbeam-epoch",
+
"crossbeam-utils",
+
]
+
+
[[package]]
+
name = "crossbeam-epoch"
+
version = "0.9.18"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+
dependencies = [
+
"crossbeam-utils",
+
]
+
+
[[package]]
+
name = "crossbeam-utils"
+
version = "0.8.21"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+
+
[[package]]
name = "crypto-bigint"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
[[package]]
name = "der"
-
version = "0.7.8"
+
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
+
checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
dependencies = [
"const-oid",
+
"pem-rfc7468",
"zeroize",
]
···
]
[[package]]
+
name = "either"
+
version = "1.15.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+
+
[[package]]
name = "elliptic-curve"
version = "0.13.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
"sec1",
"subtle",
"zeroize",
-
]
-
-
[[package]]
-
name = "encoding_rs"
-
version = "0.8.33"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
-
dependencies = [
-
"cfg-if",
]
[[package]]
name = "equivalent"
-
version = "1.0.1"
+
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "errno"
-
version = "0.3.8"
+
version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.52.0",
···
[[package]]
name = "fastrand"
-
version = "2.0.1"
+
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "ff"
-
version = "0.13.0"
+
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+
checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393"
dependencies = [
"rand_core",
"subtle",
]
[[package]]
+
name = "find-msvc-tools"
+
version = "0.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959"
+
+
[[package]]
+
name = "flate2"
+
version = "1.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
+
dependencies = [
+
"crc32fast",
+
"miniz_oxide",
+
]
+
+
[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-
[[package]]
-
name = "form_urlencoded"
-
version = "1.2.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-
dependencies = [
-
"percent-encoding",
-
]
[[package]]
name = "fuk"
version = "0.1.0"
dependencies = [
-
"async-trait",
"clap",
-
"futures",
-
"reqwest",
+
"rayon",
"serde",
"serde_json",
"simple-eyre",
"ssh-key",
-
"tokio",
"toml",
-
]
-
-
[[package]]
-
name = "futures"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
-
dependencies = [
-
"futures-channel",
-
"futures-core",
-
"futures-executor",
-
"futures-io",
-
"futures-sink",
-
"futures-task",
-
"futures-util",
-
]
-
-
[[package]]
-
name = "futures-channel"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-
dependencies = [
-
"futures-core",
-
"futures-sink",
-
]
-
-
[[package]]
-
name = "futures-core"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-
-
[[package]]
-
name = "futures-executor"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
-
dependencies = [
-
"futures-core",
-
"futures-task",
-
"futures-util",
-
]
-
-
[[package]]
-
name = "futures-io"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
-
-
[[package]]
-
name = "futures-macro"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "futures-sink"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-
-
[[package]]
-
name = "futures-task"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-
-
[[package]]
-
name = "futures-util"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-
dependencies = [
-
"futures-channel",
-
"futures-core",
-
"futures-io",
-
"futures-macro",
-
"futures-sink",
-
"futures-task",
-
"memchr",
-
"pin-project-lite",
-
"pin-utils",
-
"slab",
+
"ureq",
]
[[package]]
···
[[package]]
name = "getrandom"
-
version = "0.2.12"
+
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+
checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
dependencies = [
"cfg-if",
"libc",
-
"wasi",
+
"wasi 0.11.1+wasi-snapshot-preview1",
]
[[package]]
-
name = "gimli"
-
version = "0.28.1"
+
name = "getrandom"
+
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
+
dependencies = [
+
"cfg-if",
+
"libc",
+
"r-efi",
+
"wasi 0.14.7+wasi-0.2.4",
+
]
[[package]]
name = "group"
···
"ff",
"rand_core",
"subtle",
-
]
-
-
[[package]]
-
name = "h2"
-
version = "0.3.24"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
-
dependencies = [
-
"bytes",
-
"fnv",
-
"futures-core",
-
"futures-sink",
-
"futures-util",
-
"http",
-
"indexmap",
-
"slab",
-
"tokio",
-
"tokio-util",
-
"tracing",
]
[[package]]
name = "hashbrown"
-
version = "0.14.3"
+
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
[[package]]
name = "heck"
-
version = "0.4.1"
+
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-
[[package]]
-
name = "hermit-abi"
-
version = "0.3.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hmac"
···
[[package]]
name = "http"
-
version = "0.2.11"
+
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+
checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
dependencies = [
"bytes",
"fnv",
···
]
[[package]]
-
name = "http-body"
-
version = "0.4.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
-
dependencies = [
-
"bytes",
-
"http",
-
"pin-project-lite",
-
]
-
-
[[package]]
name = "httparse"
-
version = "1.8.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-
[[package]]
-
name = "httpdate"
-
version = "1.0.3"
+
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-
[[package]]
-
name = "hyper"
-
version = "0.14.28"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
-
dependencies = [
-
"bytes",
-
"futures-channel",
-
"futures-core",
-
"futures-util",
-
"h2",
-
"http",
-
"http-body",
-
"httparse",
-
"httpdate",
-
"itoa",
-
"pin-project-lite",
-
"socket2",
-
"tokio",
-
"tower-service",
-
"tracing",
-
"want",
-
]
-
-
[[package]]
-
name = "hyper-tls"
-
version = "0.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-
dependencies = [
-
"bytes",
-
"hyper",
-
"native-tls",
-
"tokio",
-
"tokio-native-tls",
-
]
-
-
[[package]]
-
name = "idna"
-
version = "0.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
-
dependencies = [
-
"unicode-bidi",
-
"unicode-normalization",
-
]
+
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
[[package]]
name = "indenter"
-
version = "0.3.3"
+
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
+
checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5"
[[package]]
name = "indexmap"
-
version = "2.2.2"
+
version = "2.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
+
checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
dependencies = [
"equivalent",
"hashbrown",
···
[[package]]
name = "inout"
-
version = "0.1.3"
+
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+
checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
dependencies = [
"generic-array",
]
[[package]]
-
name = "ipnet"
-
version = "2.9.0"
+
name = "is_terminal_polyfill"
+
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itoa"
-
version = "1.0.10"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
-
-
[[package]]
-
name = "js-sys"
-
version = "0.3.68"
+
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
-
dependencies = [
-
"wasm-bindgen",
-
]
+
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "lazy_static"
-
version = "1.4.0"
+
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
dependencies = [
"spin",
]
[[package]]
name = "libc"
-
version = "0.2.153"
+
version = "0.2.176"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
[[package]]
name = "libm"
-
version = "0.2.8"
+
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
[[package]]
name = "linux-raw-sys"
-
version = "0.4.13"
+
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
[[package]]
name = "log"
-
version = "0.4.20"
+
version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
[[package]]
name = "memchr"
-
version = "2.7.1"
+
version = "2.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
-
-
[[package]]
-
name = "mime"
-
version = "0.3.17"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
[[package]]
name = "miniz_oxide"
-
version = "0.7.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
-
dependencies = [
-
"adler",
-
]
-
-
[[package]]
-
name = "mio"
-
version = "0.8.10"
+
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
dependencies = [
-
"libc",
-
"wasi",
-
"windows-sys 0.48.0",
+
"adler2",
]
[[package]]
name = "native-tls"
-
version = "0.2.11"
+
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+
checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e"
dependencies = [
-
"lazy_static",
"libc",
"log",
"openssl",
···
[[package]]
name = "num-iter"
-
version = "0.1.44"
+
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+
checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
dependencies = [
"autocfg",
"num-integer",
···
[[package]]
name = "num-traits"
-
version = "0.2.18"
+
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
"libm",
]
[[package]]
-
name = "num_cpus"
-
version = "1.16.0"
+
name = "once_cell"
+
version = "1.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-
dependencies = [
-
"hermit-abi",
-
"libc",
-
]
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]]
-
name = "object"
-
version = "0.32.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
-
dependencies = [
-
"memchr",
-
]
-
-
[[package]]
-
name = "once_cell"
-
version = "1.19.0"
+
name = "once_cell_polyfill"
+
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad"
[[package]]
name = "openssl"
-
version = "0.10.63"
+
version = "0.10.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
+
checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
dependencies = [
-
"bitflags 2.4.2",
+
"bitflags",
"cfg-if",
"foreign-types",
"libc",
···
[[package]]
name = "openssl-probe"
-
version = "0.1.5"
+
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
[[package]]
name = "openssl-sys"
-
version = "0.9.99"
+
version = "0.9.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+
checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571"
dependencies = [
"cc",
"libc",
···
[[package]]
name = "p384"
-
version = "0.13.0"
+
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
+
checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6"
dependencies = [
"ecdsa",
"elliptic-curve",
···
[[package]]
name = "percent-encoding"
-
version = "2.3.1"
+
version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-
-
[[package]]
-
name = "pin-project-lite"
-
version = "0.2.13"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-
[[package]]
-
name = "pin-utils"
-
version = "0.1.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "pkcs1"
···
[[package]]
name = "pkg-config"
-
version = "0.3.29"
+
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]]
name = "ppv-lite86"
-
version = "0.2.17"
+
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
+
dependencies = [
+
"zerocopy",
+
]
[[package]]
name = "primeorder"
···
[[package]]
name = "proc-macro2"
-
version = "1.0.78"
+
version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+
checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-
version = "1.0.35"
+
version = "1.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+
checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
dependencies = [
"proc-macro2",
]
[[package]]
+
name = "r-efi"
+
version = "5.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+
+
[[package]]
name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
-
"getrandom",
+
"getrandom 0.2.16",
]
[[package]]
-
name = "reqwest"
-
version = "0.11.24"
+
name = "rayon"
+
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+
checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
dependencies = [
-
"base64",
-
"bytes",
-
"encoding_rs",
-
"futures-core",
-
"futures-util",
-
"h2",
-
"http",
-
"http-body",
-
"hyper",
-
"hyper-tls",
-
"ipnet",
-
"js-sys",
-
"log",
-
"mime",
-
"native-tls",
-
"once_cell",
-
"percent-encoding",
-
"pin-project-lite",
-
"rustls-pemfile",
-
"serde",
-
"serde_json",
-
"serde_urlencoded",
-
"sync_wrapper",
-
"system-configuration",
-
"tokio",
-
"tokio-native-tls",
-
"tower-service",
-
"url",
-
"wasm-bindgen",
-
"wasm-bindgen-futures",
-
"web-sys",
-
"winreg",
+
"either",
+
"rayon-core",
+
]
+
+
[[package]]
+
name = "rayon-core"
+
version = "1.13.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
+
dependencies = [
+
"crossbeam-deque",
+
"crossbeam-utils",
]
[[package]]
···
[[package]]
name = "rsa"
-
version = "0.9.6"
+
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
+
checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b"
dependencies = [
"const-oid",
"digest",
···
]
[[package]]
-
name = "rustc-demangle"
-
version = "0.1.23"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-
[[package]]
name = "rustix"
-
version = "0.38.31"
+
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
dependencies = [
-
"bitflags 2.4.2",
+
"bitflags",
"errno",
"libc",
"linux-raw-sys",
···
[[package]]
name = "rustls-pemfile"
-
version = "1.0.4"
+
version = "2.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50"
+
dependencies = [
+
"rustls-pki-types",
+
]
+
+
[[package]]
+
name = "rustls-pki-types"
+
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+
checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79"
dependencies = [
-
"base64",
+
"zeroize",
]
[[package]]
name = "ryu"
-
version = "1.0.16"
+
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "schannel"
-
version = "0.1.23"
+
version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+
checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
dependencies = [
-
"windows-sys 0.52.0",
+
"windows-sys 0.61.1",
]
[[package]]
···
[[package]]
name = "security-framework"
-
version = "2.9.2"
+
version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
dependencies = [
-
"bitflags 1.3.2",
+
"bitflags",
"core-foundation",
"core-foundation-sys",
"libc",
···
[[package]]
name = "security-framework-sys"
-
version = "2.9.1"
+
version = "2.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+
checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
dependencies = [
"core-foundation-sys",
"libc",
···
[[package]]
name = "serde"
-
version = "1.0.196"
+
version = "1.0.228"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+
dependencies = [
+
"serde_core",
+
"serde_derive",
+
]
+
+
[[package]]
+
name = "serde_core"
+
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [
"serde_derive",
[[package]]
name = "serde_derive"
-
version = "1.0.196"
+
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
···
[[package]]
name = "serde_json"
-
version = "1.0.113"
+
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
"itoa",
+
"memchr",
"ryu",
"serde",
+
"serde_core",
[[package]]
name = "serde_spanned"
-
version = "0.6.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
-
dependencies = [
-
"serde",
-
]
-
-
[[package]]
-
name = "serde_urlencoded"
-
version = "0.7.1"
+
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+
checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee"
dependencies = [
-
"form_urlencoded",
-
"itoa",
-
"ryu",
-
"serde",
+
"serde_core",
[[package]]
name = "sha2"
-
version = "0.10.8"
+
version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [
"cfg-if",
"cpufeatures",
···
[[package]]
-
name = "signal-hook-registry"
-
version = "1.4.1"
+
name = "shlex"
+
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-
dependencies = [
-
"libc",
-
]
+
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "signature"
···
dependencies = [
"eyre",
"indenter",
-
]
-
-
[[package]]
-
name = "slab"
-
version = "0.4.9"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-
dependencies = [
-
"autocfg",
[[package]]
name = "smallvec"
-
version = "1.13.1"
+
version = "1.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
-
-
[[package]]
-
name = "socket2"
-
version = "0.5.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
-
dependencies = [
-
"libc",
-
"windows-sys 0.48.0",
-
]
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
[[package]]
name = "spin"
-
version = "0.5.2"
+
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]]
name = "spki"
···
[[package]]
name = "ssh-key"
-
version = "0.6.4"
+
version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "01f8f4ea73476c0aa5d5e6a75ce1e8634e2c3f82005ef3bbed21547ac57f2bf7"
+
checksum = "3b86f5297f0f04d08cabaa0f6bff7cb6aec4d9c3b49d87990d63da9d9156a8c3"
dependencies = [
"p256",
"p384",
"p521",
-
"rand_core",
"rsa",
"sec1",
"serde",
···
[[package]]
name = "strsim"
-
version = "0.11.0"
+
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "subtle"
-
version = "2.5.0"
+
version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
-
version = "2.0.48"
+
version = "2.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+
checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
dependencies = [
"proc-macro2",
"quote",
···
[[package]]
-
name = "sync_wrapper"
-
version = "0.1.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-
-
[[package]]
-
name = "system-configuration"
-
version = "0.5.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
-
dependencies = [
-
"bitflags 1.3.2",
-
"core-foundation",
-
"system-configuration-sys",
-
]
-
-
[[package]]
-
name = "system-configuration-sys"
-
version = "0.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
-
dependencies = [
-
"core-foundation-sys",
-
"libc",
-
]
-
-
[[package]]
name = "tempfile"
-
version = "3.10.0"
+
version = "3.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
dependencies = [
-
"cfg-if",
"fastrand",
+
"getrandom 0.3.3",
+
"once_cell",
"rustix",
"windows-sys 0.52.0",
[[package]]
-
name = "tinyvec"
-
version = "1.6.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-
dependencies = [
-
"tinyvec_macros",
-
]
-
-
[[package]]
-
name = "tinyvec_macros"
-
version = "0.1.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-
[[package]]
-
name = "tokio"
-
version = "1.36.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
-
dependencies = [
-
"backtrace",
-
"bytes",
-
"libc",
-
"mio",
-
"num_cpus",
-
"pin-project-lite",
-
"signal-hook-registry",
-
"socket2",
-
"tokio-macros",
-
"windows-sys 0.48.0",
-
]
-
-
[[package]]
-
name = "tokio-macros"
-
version = "2.2.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "tokio-native-tls"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
-
dependencies = [
-
"native-tls",
-
"tokio",
-
]
-
-
[[package]]
-
name = "tokio-util"
-
version = "0.7.10"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
-
dependencies = [
-
"bytes",
-
"futures-core",
-
"futures-sink",
-
"pin-project-lite",
-
"tokio",
-
"tracing",
-
]
-
-
[[package]]
name = "toml"
-
version = "0.8.10"
+
version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
-
dependencies = [
-
"serde",
-
"serde_spanned",
-
"toml_datetime",
-
"toml_edit",
-
]
-
-
[[package]]
-
name = "toml_datetime"
-
version = "0.6.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
-
dependencies = [
-
"serde",
-
]
-
-
[[package]]
-
name = "toml_edit"
-
version = "0.22.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
+
checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0"
dependencies = [
"indexmap",
-
"serde",
+
"serde_core",
"serde_spanned",
"toml_datetime",
+
"toml_parser",
+
"toml_writer",
"winnow",
[[package]]
-
name = "tower-service"
-
version = "0.3.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-
[[package]]
-
name = "tracing"
-
version = "0.1.40"
+
name = "toml_datetime"
+
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+
checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1"
dependencies = [
-
"pin-project-lite",
-
"tracing-core",
+
"serde_core",
[[package]]
-
name = "tracing-core"
-
version = "0.1.32"
+
name = "toml_parser"
+
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+
checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627"
dependencies = [
-
"once_cell",
+
"winnow",
[[package]]
-
name = "try-lock"
-
version = "0.2.5"
+
name = "toml_writer"
+
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109"
[[package]]
name = "typenum"
-
version = "1.17.0"
+
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
-
[[package]]
-
name = "unicode-bidi"
-
version = "0.3.15"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
[[package]]
name = "unicode-ident"
-
version = "1.0.12"
+
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
[[package]]
-
name = "unicode-normalization"
-
version = "0.1.22"
+
name = "ureq"
+
version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+
checksum = "99ba1025f18a4a3fc3e9b48c868e9beb4f24f4b4b1a325bada26bd4119f46537"
dependencies = [
-
"tinyvec",
+
"base64",
+
"der",
+
"flate2",
+
"log",
+
"native-tls",
+
"percent-encoding",
+
"rustls-pemfile",
+
"rustls-pki-types",
+
"ureq-proto",
+
"utf-8",
+
"webpki-root-certs",
[[package]]
-
name = "url"
-
version = "2.5.0"
+
name = "ureq-proto"
+
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+
checksum = "60b4531c118335662134346048ddb0e54cc86bd7e81866757873055f0e38f5d2"
dependencies = [
-
"form_urlencoded",
-
"idna",
-
"percent-encoding",
+
"base64",
+
"http",
+
"httparse",
+
"log",
[[package]]
+
name = "utf-8"
+
version = "0.7.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+
[[package]]
name = "utf8parse"
-
version = "0.2.1"
+
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "vcpkg"
···
[[package]]
name = "version_check"
-
version = "0.9.4"
+
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
-
name = "want"
-
version = "0.3.1"
+
name = "wasi"
+
version = "0.11.1+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-
dependencies = [
-
"try-lock",
-
]
+
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
[[package]]
name = "wasi"
-
version = "0.11.0+wasi-snapshot-preview1"
+
version = "0.14.7+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-
[[package]]
-
name = "wasm-bindgen"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+
checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c"
dependencies = [
-
"cfg-if",
-
"wasm-bindgen-macro",
+
"wasip2",
[[package]]
-
name = "wasm-bindgen-backend"
-
version = "0.2.91"
+
name = "wasip2"
+
version = "1.0.1+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+
checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
dependencies = [
-
"bumpalo",
-
"log",
-
"once_cell",
-
"proc-macro2",
-
"quote",
-
"syn",
-
"wasm-bindgen-shared",
+
"wit-bindgen",
[[package]]
-
name = "wasm-bindgen-futures"
-
version = "0.4.41"
+
name = "webpki-root-certs"
+
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+
checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a"
dependencies = [
-
"cfg-if",
-
"js-sys",
-
"wasm-bindgen",
-
"web-sys",
+
"rustls-pki-types",
[[package]]
-
name = "wasm-bindgen-macro"
-
version = "0.2.91"
+
name = "windows-link"
+
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
-
dependencies = [
-
"quote",
-
"wasm-bindgen-macro-support",
-
]
+
checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
[[package]]
-
name = "wasm-bindgen-macro-support"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
"wasm-bindgen-backend",
-
"wasm-bindgen-shared",
-
]
-
-
[[package]]
-
name = "wasm-bindgen-shared"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
-
-
[[package]]
-
name = "web-sys"
-
version = "0.3.68"
+
name = "windows-sys"
+
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
-
"js-sys",
-
"wasm-bindgen",
+
"windows-targets 0.52.6",
[[package]]
name = "windows-sys"
-
version = "0.48.0"
+
version = "0.60.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
dependencies = [
-
"windows-targets 0.48.5",
+
"windows-targets 0.53.4",
[[package]]
name = "windows-sys"
-
version = "0.52.0"
+
version = "0.61.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+
checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f"
dependencies = [
-
"windows-targets 0.52.0",
+
"windows-link",
[[package]]
name = "windows-targets"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
-
"windows_aarch64_gnullvm 0.48.5",
-
"windows_aarch64_msvc 0.48.5",
-
"windows_i686_gnu 0.48.5",
-
"windows_i686_msvc 0.48.5",
-
"windows_x86_64_gnu 0.48.5",
-
"windows_x86_64_gnullvm 0.48.5",
-
"windows_x86_64_msvc 0.48.5",
+
"windows_aarch64_gnullvm 0.52.6",
+
"windows_aarch64_msvc 0.52.6",
+
"windows_i686_gnu 0.52.6",
+
"windows_i686_gnullvm 0.52.6",
+
"windows_i686_msvc 0.52.6",
+
"windows_x86_64_gnu 0.52.6",
+
"windows_x86_64_gnullvm 0.52.6",
+
"windows_x86_64_msvc 0.52.6",
[[package]]
name = "windows-targets"
-
version = "0.52.0"
+
version = "0.53.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+
checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b"
dependencies = [
-
"windows_aarch64_gnullvm 0.52.0",
-
"windows_aarch64_msvc 0.52.0",
-
"windows_i686_gnu 0.52.0",
-
"windows_i686_msvc 0.52.0",
-
"windows_x86_64_gnu 0.52.0",
-
"windows_x86_64_gnullvm 0.52.0",
-
"windows_x86_64_msvc 0.52.0",
+
"windows-link",
+
"windows_aarch64_gnullvm 0.53.0",
+
"windows_aarch64_msvc 0.53.0",
+
"windows_i686_gnu 0.53.0",
+
"windows_i686_gnullvm 0.53.0",
+
"windows_i686_msvc 0.53.0",
+
"windows_x86_64_gnu 0.53.0",
+
"windows_x86_64_gnullvm 0.53.0",
+
"windows_x86_64_msvc 0.53.0",
[[package]]
name = "windows_aarch64_gnullvm"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_gnullvm"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
[[package]]
name = "windows_aarch64_msvc"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_aarch64_msvc"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
[[package]]
name = "windows_i686_gnu"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnu"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
+
+
[[package]]
+
name = "windows_i686_gnullvm"
+
version = "0.52.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+
[[package]]
+
name = "windows_i686_gnullvm"
+
version = "0.53.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
[[package]]
name = "windows_i686_msvc"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_i686_msvc"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
[[package]]
name = "windows_x86_64_gnu"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnu"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
[[package]]
name = "windows_x86_64_gnullvm"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_gnullvm"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
[[package]]
name = "windows_x86_64_msvc"
-
version = "0.48.5"
+
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "windows_x86_64_msvc"
-
version = "0.52.0"
+
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
[[package]]
name = "winnow"
-
version = "0.5.39"
+
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
-
dependencies = [
-
"memchr",
-
]
+
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
[[package]]
-
name = "winreg"
-
version = "0.50.0"
+
name = "wit-bindgen"
+
version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
-
dependencies = [
-
"cfg-if",
-
"windows-sys 0.48.0",
-
]
+
checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
[[package]]
name = "xshell"
-
version = "0.2.5"
+
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ce2107fe03e558353b4c71ad7626d58ed82efaf56c54134228608893c77023ad"
+
checksum = "9e7290c623014758632efe00737145b6867b66292c42167f2ec381eb566a373d"
dependencies = [
"xshell-macros",
[[package]]
name = "xshell-macros"
-
version = "0.2.5"
+
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7e2c411759b501fb9501aac2b1b2d287a6e93e5bdcf13c25306b23e1b716dd0e"
+
checksum = "32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547"
[[package]]
name = "xtask"
-
version = "0.1.0"
+
version = "0.0.0"
dependencies = [
"simple-eyre",
"xshell",
[[package]]
+
name = "zerocopy"
+
version = "0.8.27"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
+
dependencies = [
+
"zerocopy-derive",
+
]
+
+
[[package]]
+
name = "zerocopy-derive"
+
version = "0.8.27"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
+
dependencies = [
+
"proc-macro2",
+
"quote",
+
"syn",
+
]
+
+
[[package]]
name = "zeroize"
-
version = "1.7.0"
+
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
+3
Cargo.lock.license
···
+
SPDX-FileCopyrightText: 2025 Łukasz Niemier <#@hauleth.dev>
+
+
SPDX-License-Identifier: EUPL-1.2
+8
Cargo.toml
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
+
[profile.release]
+
codegen-units = 1
+
lto = "fat"
+
[workspace]
resolver = "2"
default-members = [ "cli" ]
+8
README.md
···
+
<!--
+
SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
+
SPDX-License-Identifier: EUPL-1.2
+
-->
+
# FUK
+
+
[![builds.sr.ht status](https://builds.sr.ht/~hauleth/fuk.svg)](https://builds.sr.ht/~hauleth/fuk?)
> No one gives a fuk… so you need to take it yourself.
+4
REUSE.toml
···
+
version = 1
+
SPDX-PackageName = "fuk"
+
SPDX-PackageSupplier = "Łukasz Niemier <~@hauleth.dev>"
+
SPDX-PackageDownloadLocation = "https://git.sr.ht/~hauleth/fuk"
-1910
cli/Cargo.lock
···
-
# This file is automatically @generated by Cargo.
-
# It is not intended for manual editing.
-
version = 3
-
-
[[package]]
-
name = "addr2line"
-
version = "0.21.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
-
dependencies = [
-
"gimli",
-
]
-
-
[[package]]
-
name = "adler"
-
version = "1.0.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-
[[package]]
-
name = "anstream"
-
version = "0.6.11"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
-
dependencies = [
-
"anstyle",
-
"anstyle-parse",
-
"anstyle-query",
-
"anstyle-wincon",
-
"colorchoice",
-
"utf8parse",
-
]
-
-
[[package]]
-
name = "anstyle"
-
version = "1.0.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
-
-
[[package]]
-
name = "anstyle-parse"
-
version = "0.2.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
-
dependencies = [
-
"utf8parse",
-
]
-
-
[[package]]
-
name = "anstyle-query"
-
version = "1.0.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
-
dependencies = [
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "anstyle-wincon"
-
version = "3.0.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
-
dependencies = [
-
"anstyle",
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "async-trait"
-
version = "0.1.77"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "autocfg"
-
version = "1.1.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-
[[package]]
-
name = "backtrace"
-
version = "0.3.69"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
-
dependencies = [
-
"addr2line",
-
"cc",
-
"cfg-if",
-
"libc",
-
"miniz_oxide",
-
"object",
-
"rustc-demangle",
-
]
-
-
[[package]]
-
name = "base16ct"
-
version = "0.2.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
-
-
[[package]]
-
name = "base64"
-
version = "0.21.7"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
-
-
[[package]]
-
name = "base64ct"
-
version = "1.6.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-
-
[[package]]
-
name = "bitflags"
-
version = "1.3.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-
[[package]]
-
name = "bitflags"
-
version = "2.4.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
-
-
[[package]]
-
name = "block-buffer"
-
version = "0.10.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-
dependencies = [
-
"generic-array",
-
]
-
-
[[package]]
-
name = "bumpalo"
-
version = "3.14.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
-
-
[[package]]
-
name = "byteorder"
-
version = "1.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-
[[package]]
-
name = "bytes"
-
version = "1.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
-
-
[[package]]
-
name = "cc"
-
version = "1.0.83"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-
dependencies = [
-
"libc",
-
]
-
-
[[package]]
-
name = "cfg-if"
-
version = "1.0.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-
[[package]]
-
name = "cipher"
-
version = "0.4.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-
dependencies = [
-
"crypto-common",
-
"inout",
-
]
-
-
[[package]]
-
name = "clap"
-
version = "4.4.18"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
-
dependencies = [
-
"clap_builder",
-
"clap_derive",
-
]
-
-
[[package]]
-
name = "clap_builder"
-
version = "4.4.18"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
-
dependencies = [
-
"anstream",
-
"anstyle",
-
"clap_lex",
-
"strsim",
-
]
-
-
[[package]]
-
name = "clap_derive"
-
version = "4.4.7"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
-
dependencies = [
-
"heck",
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "clap_lex"
-
version = "0.6.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
-
-
[[package]]
-
name = "colorchoice"
-
version = "1.0.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-
-
[[package]]
-
name = "const-oid"
-
version = "0.9.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
-
-
[[package]]
-
name = "core-foundation"
-
version = "0.9.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
-
dependencies = [
-
"core-foundation-sys",
-
"libc",
-
]
-
-
[[package]]
-
name = "core-foundation-sys"
-
version = "0.8.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
-
-
[[package]]
-
name = "cpufeatures"
-
version = "0.2.12"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
-
dependencies = [
-
"libc",
-
]
-
-
[[package]]
-
name = "crypto-bigint"
-
version = "0.5.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
-
dependencies = [
-
"generic-array",
-
"rand_core",
-
"subtle",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "crypto-common"
-
version = "0.1.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-
dependencies = [
-
"generic-array",
-
"typenum",
-
]
-
-
[[package]]
-
name = "der"
-
version = "0.7.8"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
-
dependencies = [
-
"const-oid",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "digest"
-
version = "0.10.7"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-
dependencies = [
-
"block-buffer",
-
"const-oid",
-
"crypto-common",
-
"subtle",
-
]
-
-
[[package]]
-
name = "ecdsa"
-
version = "0.16.9"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
-
dependencies = [
-
"der",
-
"digest",
-
"elliptic-curve",
-
"rfc6979",
-
"signature",
-
"spki",
-
]
-
-
[[package]]
-
name = "elliptic-curve"
-
version = "0.13.8"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
-
dependencies = [
-
"base16ct",
-
"crypto-bigint",
-
"digest",
-
"ff",
-
"generic-array",
-
"group",
-
"pkcs8",
-
"rand_core",
-
"sec1",
-
"subtle",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "encoding_rs"
-
version = "0.8.33"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
-
dependencies = [
-
"cfg-if",
-
]
-
-
[[package]]
-
name = "equivalent"
-
version = "1.0.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-
[[package]]
-
name = "errno"
-
version = "0.3.8"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
-
dependencies = [
-
"libc",
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "eyre"
-
version = "0.6.12"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
-
dependencies = [
-
"indenter",
-
"once_cell",
-
]
-
-
[[package]]
-
name = "fastrand"
-
version = "2.0.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
-
-
[[package]]
-
name = "ff"
-
version = "0.13.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
-
dependencies = [
-
"rand_core",
-
"subtle",
-
]
-
-
[[package]]
-
name = "fnv"
-
version = "1.0.7"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-
[[package]]
-
name = "foreign-types"
-
version = "0.3.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-
dependencies = [
-
"foreign-types-shared",
-
]
-
-
[[package]]
-
name = "foreign-types-shared"
-
version = "0.1.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-
[[package]]
-
name = "form_urlencoded"
-
version = "1.2.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-
dependencies = [
-
"percent-encoding",
-
]
-
-
[[package]]
-
name = "fuk"
-
version = "0.1.0"
-
dependencies = [
-
"async-trait",
-
"clap",
-
"futures",
-
"reqwest",
-
"serde",
-
"serde_json",
-
"simple-eyre",
-
"ssh-key",
-
"tokio",
-
"toml",
-
]
-
-
[[package]]
-
name = "futures"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
-
dependencies = [
-
"futures-channel",
-
"futures-core",
-
"futures-executor",
-
"futures-io",
-
"futures-sink",
-
"futures-task",
-
"futures-util",
-
]
-
-
[[package]]
-
name = "futures-channel"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-
dependencies = [
-
"futures-core",
-
"futures-sink",
-
]
-
-
[[package]]
-
name = "futures-core"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-
-
[[package]]
-
name = "futures-executor"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
-
dependencies = [
-
"futures-core",
-
"futures-task",
-
"futures-util",
-
]
-
-
[[package]]
-
name = "futures-io"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
-
-
[[package]]
-
name = "futures-macro"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "futures-sink"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-
-
[[package]]
-
name = "futures-task"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-
-
[[package]]
-
name = "futures-util"
-
version = "0.3.30"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-
dependencies = [
-
"futures-channel",
-
"futures-core",
-
"futures-io",
-
"futures-macro",
-
"futures-sink",
-
"futures-task",
-
"memchr",
-
"pin-project-lite",
-
"pin-utils",
-
"slab",
-
]
-
-
[[package]]
-
name = "generic-array"
-
version = "0.14.7"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-
dependencies = [
-
"typenum",
-
"version_check",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "getrandom"
-
version = "0.2.12"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
-
dependencies = [
-
"cfg-if",
-
"libc",
-
"wasi",
-
]
-
-
[[package]]
-
name = "gimli"
-
version = "0.28.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
-
-
[[package]]
-
name = "group"
-
version = "0.13.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
-
dependencies = [
-
"ff",
-
"rand_core",
-
"subtle",
-
]
-
-
[[package]]
-
name = "h2"
-
version = "0.3.24"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
-
dependencies = [
-
"bytes",
-
"fnv",
-
"futures-core",
-
"futures-sink",
-
"futures-util",
-
"http",
-
"indexmap",
-
"slab",
-
"tokio",
-
"tokio-util",
-
"tracing",
-
]
-
-
[[package]]
-
name = "hashbrown"
-
version = "0.14.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
-
-
[[package]]
-
name = "heck"
-
version = "0.4.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-
[[package]]
-
name = "hermit-abi"
-
version = "0.3.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
-
-
[[package]]
-
name = "hmac"
-
version = "0.12.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-
dependencies = [
-
"digest",
-
]
-
-
[[package]]
-
name = "http"
-
version = "0.2.11"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
-
dependencies = [
-
"bytes",
-
"fnv",
-
"itoa",
-
]
-
-
[[package]]
-
name = "http-body"
-
version = "0.4.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
-
dependencies = [
-
"bytes",
-
"http",
-
"pin-project-lite",
-
]
-
-
[[package]]
-
name = "httparse"
-
version = "1.8.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-
[[package]]
-
name = "httpdate"
-
version = "1.0.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-
[[package]]
-
name = "hyper"
-
version = "0.14.28"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
-
dependencies = [
-
"bytes",
-
"futures-channel",
-
"futures-core",
-
"futures-util",
-
"h2",
-
"http",
-
"http-body",
-
"httparse",
-
"httpdate",
-
"itoa",
-
"pin-project-lite",
-
"socket2",
-
"tokio",
-
"tower-service",
-
"tracing",
-
"want",
-
]
-
-
[[package]]
-
name = "hyper-tls"
-
version = "0.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-
dependencies = [
-
"bytes",
-
"hyper",
-
"native-tls",
-
"tokio",
-
"tokio-native-tls",
-
]
-
-
[[package]]
-
name = "idna"
-
version = "0.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
-
dependencies = [
-
"unicode-bidi",
-
"unicode-normalization",
-
]
-
-
[[package]]
-
name = "indenter"
-
version = "0.3.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
-
-
[[package]]
-
name = "indexmap"
-
version = "2.2.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
-
dependencies = [
-
"equivalent",
-
"hashbrown",
-
]
-
-
[[package]]
-
name = "inout"
-
version = "0.1.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-
dependencies = [
-
"generic-array",
-
]
-
-
[[package]]
-
name = "ipnet"
-
version = "2.9.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
-
-
[[package]]
-
name = "itoa"
-
version = "1.0.10"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
-
-
[[package]]
-
name = "js-sys"
-
version = "0.3.68"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
-
dependencies = [
-
"wasm-bindgen",
-
]
-
-
[[package]]
-
name = "lazy_static"
-
version = "1.4.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
dependencies = [
-
"spin",
-
]
-
-
[[package]]
-
name = "libc"
-
version = "0.2.153"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
-
-
[[package]]
-
name = "libm"
-
version = "0.2.8"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
-
-
[[package]]
-
name = "linux-raw-sys"
-
version = "0.4.13"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
-
-
[[package]]
-
name = "log"
-
version = "0.4.20"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-
-
[[package]]
-
name = "memchr"
-
version = "2.7.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
-
-
[[package]]
-
name = "mime"
-
version = "0.3.17"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-
[[package]]
-
name = "miniz_oxide"
-
version = "0.7.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
-
dependencies = [
-
"adler",
-
]
-
-
[[package]]
-
name = "mio"
-
version = "0.8.10"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
-
dependencies = [
-
"libc",
-
"wasi",
-
"windows-sys 0.48.0",
-
]
-
-
[[package]]
-
name = "native-tls"
-
version = "0.2.11"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-
dependencies = [
-
"lazy_static",
-
"libc",
-
"log",
-
"openssl",
-
"openssl-probe",
-
"openssl-sys",
-
"schannel",
-
"security-framework",
-
"security-framework-sys",
-
"tempfile",
-
]
-
-
[[package]]
-
name = "num-bigint-dig"
-
version = "0.8.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
-
dependencies = [
-
"byteorder",
-
"lazy_static",
-
"libm",
-
"num-integer",
-
"num-iter",
-
"num-traits",
-
"rand",
-
"smallvec",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "num-integer"
-
version = "0.1.46"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-
dependencies = [
-
"num-traits",
-
]
-
-
[[package]]
-
name = "num-iter"
-
version = "0.1.44"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
-
dependencies = [
-
"autocfg",
-
"num-integer",
-
"num-traits",
-
]
-
-
[[package]]
-
name = "num-traits"
-
version = "0.2.18"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
-
dependencies = [
-
"autocfg",
-
"libm",
-
]
-
-
[[package]]
-
name = "num_cpus"
-
version = "1.16.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-
dependencies = [
-
"hermit-abi",
-
"libc",
-
]
-
-
[[package]]
-
name = "object"
-
version = "0.32.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
-
dependencies = [
-
"memchr",
-
]
-
-
[[package]]
-
name = "once_cell"
-
version = "1.19.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-
-
[[package]]
-
name = "openssl"
-
version = "0.10.63"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
-
dependencies = [
-
"bitflags 2.4.2",
-
"cfg-if",
-
"foreign-types",
-
"libc",
-
"once_cell",
-
"openssl-macros",
-
"openssl-sys",
-
]
-
-
[[package]]
-
name = "openssl-macros"
-
version = "0.1.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "openssl-probe"
-
version = "0.1.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-
[[package]]
-
name = "openssl-sys"
-
version = "0.9.99"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
-
dependencies = [
-
"cc",
-
"libc",
-
"pkg-config",
-
"vcpkg",
-
]
-
-
[[package]]
-
name = "p256"
-
version = "0.13.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
-
dependencies = [
-
"ecdsa",
-
"elliptic-curve",
-
"primeorder",
-
"sha2",
-
]
-
-
[[package]]
-
name = "p384"
-
version = "0.13.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
-
dependencies = [
-
"ecdsa",
-
"elliptic-curve",
-
"primeorder",
-
"sha2",
-
]
-
-
[[package]]
-
name = "p521"
-
version = "0.13.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
-
dependencies = [
-
"base16ct",
-
"ecdsa",
-
"elliptic-curve",
-
"primeorder",
-
"rand_core",
-
"sha2",
-
]
-
-
[[package]]
-
name = "pem-rfc7468"
-
version = "0.7.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
-
dependencies = [
-
"base64ct",
-
]
-
-
[[package]]
-
name = "percent-encoding"
-
version = "2.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-
-
[[package]]
-
name = "pin-project-lite"
-
version = "0.2.13"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-
[[package]]
-
name = "pin-utils"
-
version = "0.1.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-
[[package]]
-
name = "pkcs1"
-
version = "0.7.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
-
dependencies = [
-
"der",
-
"pkcs8",
-
"spki",
-
]
-
-
[[package]]
-
name = "pkcs8"
-
version = "0.10.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
-
dependencies = [
-
"der",
-
"spki",
-
]
-
-
[[package]]
-
name = "pkg-config"
-
version = "0.3.29"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
-
-
[[package]]
-
name = "ppv-lite86"
-
version = "0.2.17"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-
[[package]]
-
name = "primeorder"
-
version = "0.13.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
-
dependencies = [
-
"elliptic-curve",
-
]
-
-
[[package]]
-
name = "proc-macro2"
-
version = "1.0.78"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
-
dependencies = [
-
"unicode-ident",
-
]
-
-
[[package]]
-
name = "quote"
-
version = "1.0.35"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
-
dependencies = [
-
"proc-macro2",
-
]
-
-
[[package]]
-
name = "rand"
-
version = "0.8.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-
dependencies = [
-
"rand_chacha",
-
"rand_core",
-
]
-
-
[[package]]
-
name = "rand_chacha"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-
dependencies = [
-
"ppv-lite86",
-
"rand_core",
-
]
-
-
[[package]]
-
name = "rand_core"
-
version = "0.6.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-
dependencies = [
-
"getrandom",
-
]
-
-
[[package]]
-
name = "reqwest"
-
version = "0.11.24"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
-
dependencies = [
-
"base64",
-
"bytes",
-
"encoding_rs",
-
"futures-core",
-
"futures-util",
-
"h2",
-
"http",
-
"http-body",
-
"hyper",
-
"hyper-tls",
-
"ipnet",
-
"js-sys",
-
"log",
-
"mime",
-
"native-tls",
-
"once_cell",
-
"percent-encoding",
-
"pin-project-lite",
-
"rustls-pemfile",
-
"serde",
-
"serde_json",
-
"serde_urlencoded",
-
"sync_wrapper",
-
"system-configuration",
-
"tokio",
-
"tokio-native-tls",
-
"tower-service",
-
"url",
-
"wasm-bindgen",
-
"wasm-bindgen-futures",
-
"web-sys",
-
"winreg",
-
]
-
-
[[package]]
-
name = "rfc6979"
-
version = "0.4.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
-
dependencies = [
-
"hmac",
-
"subtle",
-
]
-
-
[[package]]
-
name = "rsa"
-
version = "0.9.6"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
-
dependencies = [
-
"const-oid",
-
"digest",
-
"num-bigint-dig",
-
"num-integer",
-
"num-traits",
-
"pkcs1",
-
"pkcs8",
-
"rand_core",
-
"sha2",
-
"signature",
-
"spki",
-
"subtle",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "rustc-demangle"
-
version = "0.1.23"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-
[[package]]
-
name = "rustix"
-
version = "0.38.31"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
-
dependencies = [
-
"bitflags 2.4.2",
-
"errno",
-
"libc",
-
"linux-raw-sys",
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "rustls-pemfile"
-
version = "1.0.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
-
dependencies = [
-
"base64",
-
]
-
-
[[package]]
-
name = "ryu"
-
version = "1.0.16"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
-
-
[[package]]
-
name = "schannel"
-
version = "0.1.23"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
-
dependencies = [
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "sec1"
-
version = "0.7.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
-
dependencies = [
-
"base16ct",
-
"der",
-
"generic-array",
-
"pkcs8",
-
"subtle",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "security-framework"
-
version = "2.9.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
-
dependencies = [
-
"bitflags 1.3.2",
-
"core-foundation",
-
"core-foundation-sys",
-
"libc",
-
"security-framework-sys",
-
]
-
-
[[package]]
-
name = "security-framework-sys"
-
version = "2.9.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
-
dependencies = [
-
"core-foundation-sys",
-
"libc",
-
]
-
-
[[package]]
-
name = "serde"
-
version = "1.0.196"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
-
dependencies = [
-
"serde_derive",
-
]
-
-
[[package]]
-
name = "serde_derive"
-
version = "1.0.196"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "serde_json"
-
version = "1.0.113"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
-
dependencies = [
-
"itoa",
-
"ryu",
-
"serde",
-
]
-
-
[[package]]
-
name = "serde_spanned"
-
version = "0.6.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
-
dependencies = [
-
"serde",
-
]
-
-
[[package]]
-
name = "serde_urlencoded"
-
version = "0.7.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-
dependencies = [
-
"form_urlencoded",
-
"itoa",
-
"ryu",
-
"serde",
-
]
-
-
[[package]]
-
name = "sha2"
-
version = "0.10.8"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
-
dependencies = [
-
"cfg-if",
-
"cpufeatures",
-
"digest",
-
]
-
-
[[package]]
-
name = "signal-hook-registry"
-
version = "1.4.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-
dependencies = [
-
"libc",
-
]
-
-
[[package]]
-
name = "signature"
-
version = "2.2.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
-
dependencies = [
-
"digest",
-
"rand_core",
-
]
-
-
[[package]]
-
name = "simple-eyre"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1b561532e8ffe7ecf09108c4f662896a9ec3eac4999eba84015ec3dcb8cc630a"
-
dependencies = [
-
"eyre",
-
"indenter",
-
]
-
-
[[package]]
-
name = "slab"
-
version = "0.4.9"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-
dependencies = [
-
"autocfg",
-
]
-
-
[[package]]
-
name = "smallvec"
-
version = "1.13.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
-
-
[[package]]
-
name = "socket2"
-
version = "0.5.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
-
dependencies = [
-
"libc",
-
"windows-sys 0.48.0",
-
]
-
-
[[package]]
-
name = "spin"
-
version = "0.5.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-
[[package]]
-
name = "spki"
-
version = "0.7.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
-
dependencies = [
-
"base64ct",
-
"der",
-
]
-
-
[[package]]
-
name = "ssh-cipher"
-
version = "0.2.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f"
-
dependencies = [
-
"cipher",
-
"ssh-encoding",
-
]
-
-
[[package]]
-
name = "ssh-encoding"
-
version = "0.2.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15"
-
dependencies = [
-
"base64ct",
-
"pem-rfc7468",
-
"sha2",
-
]
-
-
[[package]]
-
name = "ssh-key"
-
version = "0.6.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "01f8f4ea73476c0aa5d5e6a75ce1e8634e2c3f82005ef3bbed21547ac57f2bf7"
-
dependencies = [
-
"p256",
-
"p384",
-
"p521",
-
"rand_core",
-
"rsa",
-
"sec1",
-
"serde",
-
"sha2",
-
"signature",
-
"ssh-cipher",
-
"ssh-encoding",
-
"subtle",
-
"zeroize",
-
]
-
-
[[package]]
-
name = "strsim"
-
version = "0.10.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-
[[package]]
-
name = "subtle"
-
version = "2.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-
-
[[package]]
-
name = "syn"
-
version = "2.0.48"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"unicode-ident",
-
]
-
-
[[package]]
-
name = "sync_wrapper"
-
version = "0.1.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-
-
[[package]]
-
name = "system-configuration"
-
version = "0.5.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
-
dependencies = [
-
"bitflags 1.3.2",
-
"core-foundation",
-
"system-configuration-sys",
-
]
-
-
[[package]]
-
name = "system-configuration-sys"
-
version = "0.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
-
dependencies = [
-
"core-foundation-sys",
-
"libc",
-
]
-
-
[[package]]
-
name = "tempfile"
-
version = "3.10.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
-
dependencies = [
-
"cfg-if",
-
"fastrand",
-
"rustix",
-
"windows-sys 0.52.0",
-
]
-
-
[[package]]
-
name = "tinyvec"
-
version = "1.6.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-
dependencies = [
-
"tinyvec_macros",
-
]
-
-
[[package]]
-
name = "tinyvec_macros"
-
version = "0.1.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-
[[package]]
-
name = "tokio"
-
version = "1.36.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
-
dependencies = [
-
"backtrace",
-
"bytes",
-
"libc",
-
"mio",
-
"num_cpus",
-
"pin-project-lite",
-
"signal-hook-registry",
-
"socket2",
-
"tokio-macros",
-
"windows-sys 0.48.0",
-
]
-
-
[[package]]
-
name = "tokio-macros"
-
version = "2.2.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
]
-
-
[[package]]
-
name = "tokio-native-tls"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
-
dependencies = [
-
"native-tls",
-
"tokio",
-
]
-
-
[[package]]
-
name = "tokio-util"
-
version = "0.7.10"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
-
dependencies = [
-
"bytes",
-
"futures-core",
-
"futures-sink",
-
"pin-project-lite",
-
"tokio",
-
"tracing",
-
]
-
-
[[package]]
-
name = "toml"
-
version = "0.8.10"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
-
dependencies = [
-
"serde",
-
"serde_spanned",
-
"toml_datetime",
-
"toml_edit",
-
]
-
-
[[package]]
-
name = "toml_datetime"
-
version = "0.6.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
-
dependencies = [
-
"serde",
-
]
-
-
[[package]]
-
name = "toml_edit"
-
version = "0.22.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
-
dependencies = [
-
"indexmap",
-
"serde",
-
"serde_spanned",
-
"toml_datetime",
-
"winnow",
-
]
-
-
[[package]]
-
name = "tower-service"
-
version = "0.3.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-
[[package]]
-
name = "tracing"
-
version = "0.1.40"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-
dependencies = [
-
"pin-project-lite",
-
"tracing-core",
-
]
-
-
[[package]]
-
name = "tracing-core"
-
version = "0.1.32"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-
dependencies = [
-
"once_cell",
-
]
-
-
[[package]]
-
name = "try-lock"
-
version = "0.2.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-
-
[[package]]
-
name = "typenum"
-
version = "1.17.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
-
[[package]]
-
name = "unicode-bidi"
-
version = "0.3.15"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
-
-
[[package]]
-
name = "unicode-ident"
-
version = "1.0.12"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-
-
[[package]]
-
name = "unicode-normalization"
-
version = "0.1.22"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-
dependencies = [
-
"tinyvec",
-
]
-
-
[[package]]
-
name = "url"
-
version = "2.5.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
-
dependencies = [
-
"form_urlencoded",
-
"idna",
-
"percent-encoding",
-
]
-
-
[[package]]
-
name = "utf8parse"
-
version = "0.2.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
-
-
[[package]]
-
name = "vcpkg"
-
version = "0.2.15"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-
[[package]]
-
name = "version_check"
-
version = "0.9.4"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-
[[package]]
-
name = "want"
-
version = "0.3.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-
dependencies = [
-
"try-lock",
-
]
-
-
[[package]]
-
name = "wasi"
-
version = "0.11.0+wasi-snapshot-preview1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-
[[package]]
-
name = "wasm-bindgen"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
-
dependencies = [
-
"cfg-if",
-
"wasm-bindgen-macro",
-
]
-
-
[[package]]
-
name = "wasm-bindgen-backend"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
-
dependencies = [
-
"bumpalo",
-
"log",
-
"once_cell",
-
"proc-macro2",
-
"quote",
-
"syn",
-
"wasm-bindgen-shared",
-
]
-
-
[[package]]
-
name = "wasm-bindgen-futures"
-
version = "0.4.41"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
-
dependencies = [
-
"cfg-if",
-
"js-sys",
-
"wasm-bindgen",
-
"web-sys",
-
]
-
-
[[package]]
-
name = "wasm-bindgen-macro"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
-
dependencies = [
-
"quote",
-
"wasm-bindgen-macro-support",
-
]
-
-
[[package]]
-
name = "wasm-bindgen-macro-support"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
-
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
"wasm-bindgen-backend",
-
"wasm-bindgen-shared",
-
]
-
-
[[package]]
-
name = "wasm-bindgen-shared"
-
version = "0.2.91"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
-
-
[[package]]
-
name = "web-sys"
-
version = "0.3.68"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
-
dependencies = [
-
"js-sys",
-
"wasm-bindgen",
-
]
-
-
[[package]]
-
name = "windows-sys"
-
version = "0.48.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-
dependencies = [
-
"windows-targets 0.48.5",
-
]
-
-
[[package]]
-
name = "windows-sys"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-
dependencies = [
-
"windows-targets 0.52.0",
-
]
-
-
[[package]]
-
name = "windows-targets"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-
dependencies = [
-
"windows_aarch64_gnullvm 0.48.5",
-
"windows_aarch64_msvc 0.48.5",
-
"windows_i686_gnu 0.48.5",
-
"windows_i686_msvc 0.48.5",
-
"windows_x86_64_gnu 0.48.5",
-
"windows_x86_64_gnullvm 0.48.5",
-
"windows_x86_64_msvc 0.48.5",
-
]
-
-
[[package]]
-
name = "windows-targets"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
-
dependencies = [
-
"windows_aarch64_gnullvm 0.52.0",
-
"windows_aarch64_msvc 0.52.0",
-
"windows_i686_gnu 0.52.0",
-
"windows_i686_msvc 0.52.0",
-
"windows_x86_64_gnu 0.52.0",
-
"windows_x86_64_gnullvm 0.52.0",
-
"windows_x86_64_msvc 0.52.0",
-
]
-
-
[[package]]
-
name = "windows_aarch64_gnullvm"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-
[[package]]
-
name = "windows_aarch64_gnullvm"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
-
-
[[package]]
-
name = "windows_aarch64_msvc"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-
[[package]]
-
name = "windows_aarch64_msvc"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
-
-
[[package]]
-
name = "windows_i686_gnu"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-
[[package]]
-
name = "windows_i686_gnu"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
-
-
[[package]]
-
name = "windows_i686_msvc"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-
[[package]]
-
name = "windows_i686_msvc"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
-
-
[[package]]
-
name = "windows_x86_64_gnu"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-
[[package]]
-
name = "windows_x86_64_gnu"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
-
-
[[package]]
-
name = "windows_x86_64_gnullvm"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-
[[package]]
-
name = "windows_x86_64_gnullvm"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
-
-
[[package]]
-
name = "windows_x86_64_msvc"
-
version = "0.48.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-
[[package]]
-
name = "windows_x86_64_msvc"
-
version = "0.52.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
-
-
[[package]]
-
name = "winnow"
-
version = "0.5.39"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
-
dependencies = [
-
"memchr",
-
]
-
-
[[package]]
-
name = "winreg"
-
version = "0.50.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
-
dependencies = [
-
"cfg-if",
-
"windows-sys 0.48.0",
-
]
-
-
[[package]]
-
name = "zeroize"
-
version = "1.7.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+9 -7
cli/Cargo.toml
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
[package]
name = "fuk"
version = "0.1.0"
-
edition = "2021"
+
edition = "2024"
[dependencies]
-
async-trait = "0.1.77"
clap = { version = "4.4.18", features = ["derive"] }
-
futures = "0.3.30"
-
reqwest = "0.11.24"
+
rayon = "1.10.0"
serde = { version = "1.0.196", features = ["derive"] }
serde_json = "1.0.113"
simple-eyre = "0.3.1"
-
ssh-key = { version = "0.6.4", features = ["alloc", "serde"] }
-
tokio = { version = "1.36.0", default-features = false, features = ["rt-multi-thread", "fs", "io-std", "io-util", "macros", "process", "net"] }
-
toml = "0.8.10"
+
ssh-key = { version = "0.6.4", default-features = false, features = ["std", "alloc", "serde", "ecdsa"] }
+
toml = "0.9.7"
+
ureq = { version = "3.0.11", default-features = false, features = [ "native-tls", "gzip" ] }
+18 -21
cli/src/config.rs
···
+
// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
use crate::output::Output;
use crate::sources::*;
-
use futures::prelude::*;
+
use rayon::prelude::*;
+
use simple_eyre::eyre::Result;
#[derive(Debug, serde::Deserialize)]
pub struct Entry {
pub name: String,
-
pub keys: Vec<Box<Source>>,
+
pub keys: Box<[Source]>,
}
impl Entry {
-
pub async fn fetch(&self) -> (String, Vec<ssh_key::PublicKey>) {
-
let mut stream: Vec<_> = stream::iter(&self.keys)
-
.then(|k| async { k.fetch().await })
-
.map(stream::iter)
-
.flatten()
-
.collect()
-
.await;
+
pub fn fetch(self) -> Result<(String, Vec<ssh_key::PublicKey>)> {
+
let mut stream: Vec<ssh_key::PublicKey> = self
+
.keys
+
.par_iter()
+
.flat_map(|k| k.fetch().unwrap())
+
.collect();
// Deduplicate keys, no need for duplicated entries
stream.sort();
-
stream.dedup_by(|a, b| {
-
a.key_data() == b.key_data()
-
});
+
stream.dedup_by(|a, b| a.key_data() == b.key_data());
-
(self.name.clone(), stream)
+
Ok((self.name.clone(), stream))
}
}
#[derive(Debug, serde::Deserialize)]
pub struct Config {
#[serde(rename = "entry")]
-
pub entries: Vec<Entry>,
+
pub entries: Box<[Entry]>,
}
impl Config {
-
pub async fn fetch(&self) -> Result<Output, ()> {
-
let keys = stream::iter(&self.entries)
-
.then(Entry::fetch)
-
.collect()
-
.await;
-
-
Ok(Output { keys })
+
pub fn fetch(self) -> Result<Output> {
+
self.entries.into_par_iter().map(Entry::fetch).collect()
}
}
+6 -2
cli/src/lib.rs
···
+
// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
pub mod config;
pub mod output;
pub mod sources;
-
pub async fn fuk(config: config::Config) -> output::Output {
-
config.fetch().await.unwrap()
+
pub fn fuk(config: config::Config) -> output::Output {
+
config.fetch().unwrap()
}
+22 -15
cli/src/main.rs
···
-
use simple_eyre::eyre::Result;
+
// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
use clap::Parser;
-
use std::path::Path;
-
use tokio::fs::File;
-
use tokio::io::{self, AsyncReadExt};
+
use simple_eyre::eyre::Result;
+
use std::fs::File;
+
use std::io::{self, prelude::*};
+
use std::path::{Path, PathBuf};
#[derive(Debug, Clone)]
enum Input {
-
File(Box<Path>),
+
File(PathBuf),
Stdio,
}
···
}
impl Input {
-
async fn read_all(&self) -> io::Result<String> {
+
fn read_all(&self) -> io::Result<String> {
let mut buffer = String::new();
let result = match *self {
-
Input::Stdio => io::stdin().read_to_string(&mut buffer).await,
+
Input::Stdio => io::stdin().read_to_string(&mut buffer),
Input::File(ref path) => {
-
let mut f = File::open(path).await?;
-
f.read_to_string(&mut buffer).await
+
let mut f = File::open(path)?;
+
f.read_to_string(&mut buffer)
}
};
···
}
#[derive(Debug, Parser)]
+
#[command(version, about)]
struct Args {
-
#[arg(long, default_value_t = fuk::output::Format::JSONPretty)]
+
/// Output format type
+
#[arg(long, default_value_t = fuk::output::Format::JSON)]
format: fuk::output::Format,
/// File containing list of keys to be fetched
#[arg(value_hint = clap::ValueHint::FilePath)]
file: Input,
}
-
#[tokio::main]
-
async fn main() -> Result<()> {
+
fn main() -> Result<()> {
let args = Args::parse();
-
let config: fuk::config::Config = toml::from_str(&args.file.read_all().await?)?;
+
let config: fuk::config::Config = toml::from_str(&args.file.read_all()?)?;
-
let output = fuk::fuk(config).await;
+
let output = fuk::fuk(config);
-
println!("{}", args.format.render(&output));
+
let out = std::io::stdout();
+
let mut out = out.lock();
+
args.format.render(&output, &mut out)?;
Ok(())
}
+58 -7
cli/src/output/mod.rs
···
+
// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
use std::collections::HashMap;
+
use std::io::{self, prelude::*};
+
+
use rayon::prelude::*;
#[derive(PartialEq, Eq, Debug, Copy, Clone)]
pub enum Format {
JSON,
-
JSONPretty,
+
TOML,
+
CSV,
+
SSH,
}
impl Format {
-
pub fn render(self, output: &Output) -> String {
+
pub fn render<W: Write>(self, output: &Output, w: &mut W) -> io::Result<()> {
match self {
-
Format::JSON => serde_json::to_string(&output.keys).unwrap(),
-
Format::JSONPretty => serde_json::to_string_pretty(&output.keys).unwrap(),
+
Format::JSON => {
+
serde_json::to_writer_pretty(&mut *w, &output.keys).map_err(io::Error::other)?;
+
writeln!(w)
+
}
+
Format::TOML => write!(w, "{}", toml::to_string_pretty(&output.keys).unwrap()),
+
Format::CSV => as_csv(w, output),
+
Format::SSH => authorized_keys(w, output),
}
}
}
···
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match *self {
Format::JSON => f.write_str("json"),
-
Format::JSONPretty => f.write_str("pretty"),
+
Format::TOML => f.write_str("toml"),
+
Format::CSV => f.write_str("csv"),
+
Format::SSH => f.write_str("ssh"),
}
}
}
···
fn from(s: &'a str) -> Format {
match s {
"json" => Format::JSON,
-
"pretty" => Format::JSONPretty,
-
_ => unreachable!()
+
"toml" => Format::TOML,
+
"csv" => Format::CSV,
+
"ssh" => Format::SSH,
+
_ => unreachable!(),
}
}
}
···
pub struct Output {
pub keys: HashMap<String, Vec<ssh_key::PublicKey>>,
}
+
+
impl FromParallelIterator<(String, Vec<ssh_key::PublicKey>)> for Output {
+
fn from_par_iter<T>(iter: T) -> Self
+
where
+
T: IntoParallelIterator<Item = (String, Vec<ssh_key::PublicKey>)>,
+
{
+
Output {
+
keys: iter.into_par_iter().collect(),
+
}
+
}
+
}
+
+
// TODO: proper escaping
+
fn as_csv<W: Write>(w: &mut W, output: &Output) -> io::Result<()> {
+
for (name, keys) in &output.keys {
+
for key in keys {
+
writeln!(w, "{name},{}", key.to_string())?;
+
}
+
}
+
+
Ok(())
+
}
+
+
fn authorized_keys<W: Write>(w: &mut W, output: &Output) -> io::Result<()> {
+
for (name, keys) in &output.keys {
+
for key in keys {
+
let commented = ssh_key::PublicKey::new(key.key_data().clone(), name);
+
writeln!(w, "{}", commented.to_string())?;
+
}
+
}
+
+
Ok(())
+
}
+227
cli/src/sources/atproto.rs
···
+
// SPDX-FileCopyrightText: 2025 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
+
use std::fmt;
+
use std::str::FromStr;
+
+
use super::helpers;
+
+
use serde::Deserialize;
+
use simple_eyre::eyre::Result;
+
use ssh_key::PublicKey;
+
+
#[derive(Debug)]
+
pub struct Did {
+
method: String,
+
id: String,
+
}
+
+
impl FromStr for Did {
+
type Err = ();
+
+
fn from_str(input: &str) -> Result<Self, ()> {
+
if !input.starts_with("did:") {
+
return Err(());
+
}
+
if input.ends_with(":") {
+
return Err(());
+
}
+
+
let chunks: Box<[_]> = input.splitn(3, ":").collect();
+
+
if chunks.len() != 3 {
+
return Err(());
+
}
+
+
Ok(Did {
+
method: chunks[1].into(),
+
id: chunks[2].into(),
+
})
+
}
+
}
+
+
impl fmt::Display for Did {
+
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
+
write!(f, "did:{}:{}", self.method, self.id)
+
}
+
}
+
+
#[derive(Debug)]
+
pub struct Handle(String);
+
+
impl fmt::Display for Handle {
+
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
+
write!(f, "{}", self.0)
+
}
+
}
+
+
impl FromStr for Handle {
+
type Err = ();
+
+
fn from_str(input: &str) -> Result<Self, ()> {
+
if input.len() > 253 {
+
return Err(());
+
}
+
+
let input = {
+
let mut input = input.to_ascii_lowercase();
+
if input.starts_with("@") {
+
input.remove(0);
+
}
+
+
input
+
};
+
+
let segments: Box<[_]> = input.split('.').collect();
+
+
if segments.len() < 2 {
+
return Err(());
+
}
+
+
if !segments.iter().all(|&s| legal_segment(s)) {
+
return Err(());
+
}
+
+
if segments.last().unwrap().as_bytes()[0].is_ascii_digit() {
+
return Err(());
+
}
+
+
Ok(Handle(input))
+
}
+
}
+
+
pub struct InvalidHandle(String);
+
+
impl fmt::Display for InvalidHandle {
+
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
+
write!(f, "Invalid handle: {}", self.0)
+
}
+
}
+
+
#[derive(Debug)]
+
pub enum Identifier {
+
Did(Did),
+
Handle(Handle),
+
}
+
+
impl FromStr for Identifier {
+
type Err = InvalidHandle;
+
+
fn from_str(input: &str) -> Result<Self, Self::Err> {
+
input
+
.parse()
+
.map(Identifier::Did)
+
.or_else(|_| input.parse().map(Identifier::Handle))
+
.map_err(|_| InvalidHandle(input.into()))
+
}
+
}
+
+
impl fmt::Display for Identifier {
+
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
+
match *self {
+
Identifier::Did(ref did) => write!(f, "{}", did),
+
Identifier::Handle(ref handle) => write!(f, "{}", handle),
+
}
+
}
+
}
+
+
#[derive(Debug, Deserialize)]
+
pub struct ATProto {
+
#[serde(default = "default_atproto")]
+
pub host: String,
+
#[serde(deserialize_with = "helpers::from_str")]
+
pub handle: Identifier,
+
}
+
+
impl FromStr for ATProto {
+
type Err = InvalidHandle;
+
+
fn from_str(input: &str) -> Result<Self, InvalidHandle> {
+
Ok(ATProto {
+
host: default_atproto(),
+
handle: input.parse().map_err(|_| InvalidHandle(input.into()))?,
+
})
+
}
+
}
+
+
fn legal_segment(segment: &str) -> bool {
+
let bytes = segment.as_bytes();
+
!segment.is_empty()
+
&& bytes.iter().all(|&b| allowed_byte(b))
+
&& *bytes.first().unwrap() != b'-'
+
&& *bytes.last().unwrap() != b'-'
+
}
+
+
fn allowed_byte(c: u8) -> bool {
+
c.is_ascii_digit() || c.is_ascii_lowercase() || c == b'-'
+
}
+
+
fn default_atproto() -> String {
+
"https://bsky.social/".into()
+
}
+
+
mod resp {
+
use serde::Deserialize;
+
use ssh_key::PublicKey;
+
+
#[derive(Debug, Deserialize)]
+
pub struct Resp {
+
pub records: Box<[Record]>,
+
}
+
+
#[derive(Debug, Deserialize)]
+
pub struct Record {
+
value: Value,
+
}
+
+
#[derive(Debug, Deserialize)]
+
pub struct Value {
+
key: String,
+
}
+
+
impl TryFrom<&Record> for PublicKey {
+
type Error = ssh_key::Error;
+
+
fn try_from(val: &Record) -> ssh_key::Result<PublicKey> {
+
PublicKey::from_openssh(&val.value.key)
+
}
+
}
+
}
+
+
impl super::Fetch for ATProto {
+
fn fetch(&self) -> Result<Vec<PublicKey>> {
+
let url = format!(
+
"{host}/xrpc/com.atproto.repo.listRecords?repo={handle}&collection=sh.tangled.publicKey",
+
host = self.host.trim_end_matches('/'),
+
handle = self.handle
+
);
+
+
use ureq::tls::{RootCerts, TlsConfig, TlsProvider};
+
+
let config = ureq::Agent::config_builder()
+
.tls_config(
+
TlsConfig::builder()
+
.root_certs(RootCerts::PlatformVerifier)
+
.provider(TlsProvider::NativeTls)
+
.build(),
+
)
+
.build();
+
+
let agent = config.new_agent();
+
+
let data = agent
+
.get(&url.to_string())
+
.call()?
+
.body_mut()
+
.read_to_string()?;
+
+
let decoded: resp::Resp = serde_json::from_str(&data)?;
+
+
decoded
+
.records
+
.iter()
+
.map(|val| val.try_into().map_err(Into::into))
+
.collect()
+
}
+
}
+84
cli/src/sources/helpers.rs
···
+
// SPDX-FileCopyrightText: 2025 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
+
use std::fmt;
+
use std::str::FromStr;
+
+
use serde::{Deserialize, Deserializer, de};
+
+
pub fn string_or_struct<'de, T, D>(deserializer: D) -> Result<T, D::Error>
+
where
+
T: Deserialize<'de> + FromStr,
+
D: Deserializer<'de>,
+
<T as FromStr>::Err: fmt::Display,
+
{
+
// This is a Visitor that forwards string types to T's `FromStr` impl and
+
// forwards map types to T's `Deserialize` impl. The `PhantomData` is to
+
// keep the compiler from complaining about T being an unused generic type
+
// parameter. We need T in order to know the Value type for the Visitor
+
// impl.
+
struct StringOrStruct<T>(std::marker::PhantomData<fn() -> T>);
+
+
impl<'de, T> de::Visitor<'de> for StringOrStruct<T>
+
where
+
T: Deserialize<'de> + FromStr,
+
<T as FromStr>::Err: fmt::Display,
+
{
+
type Value = T;
+
+
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+
formatter.write_str("string or map")
+
}
+
+
fn visit_str<E>(self, value: &str) -> Result<T, E>
+
where
+
E: de::Error,
+
{
+
FromStr::from_str(value).map_err(de::Error::custom)
+
}
+
+
fn visit_map<M>(self, map: M) -> Result<T, M::Error>
+
where
+
M: de::MapAccess<'de>,
+
{
+
// `MapAccessDeserializer` is a wrapper that turns a `MapAccess`
+
// into a `Deserializer`, allowing it to be used as the input to T's
+
// `Deserialize` implementation. T then deserializes itself using
+
// the entries from the map visitor.
+
Deserialize::deserialize(de::value::MapAccessDeserializer::new(map))
+
}
+
}
+
+
deserializer.deserialize_any(StringOrStruct(Default::default()))
+
}
+
+
pub fn from_str<'de, T, D>(deserializer: D) -> Result<T, D::Error>
+
where
+
T: FromStr,
+
D: Deserializer<'de>,
+
<T as FromStr>::Err: fmt::Display,
+
{
+
struct DeFromStr<T>(std::marker::PhantomData<T>);
+
+
impl<T> de::Visitor<'_> for DeFromStr<T>
+
where
+
T: FromStr,
+
<T as FromStr>::Err: fmt::Display,
+
{
+
type Value = T;
+
+
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+
formatter.write_str("string or map")
+
}
+
+
fn visit_str<E>(self, value: &str) -> Result<T, E>
+
where
+
E: de::Error,
+
{
+
FromStr::from_str(value).map_err(de::Error::custom)
+
}
+
}
+
+
deserializer.deserialize_any(DeFromStr(Default::default()))
+
}
+82 -53
cli/src/sources/mod.rs
···
+
// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
// SPDX-FileCopyrightText: 2025 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
+
use serde::Deserialize;
+
use simple_eyre::eyre::Result;
use ssh_key::PublicKey;
-
use tokio::process::Command;
-
use serde::Deserialize;
-
use async_trait::async_trait;
+
use std::process::Command;
+
+
mod atproto;
+
mod helpers;
-
#[async_trait]
+
pub use atproto::ATProto;
+
pub trait Fetch: std::fmt::Debug {
-
async fn fetch(&self) -> Vec<PublicKey>;
+
fn fetch(&self) -> Result<Vec<PublicKey>>;
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
+
#[non_exhaustive]
pub enum Source {
Raw(Raw),
Hosts(Hosts),
-
Forge(Forge),
+
Http(Http),
Github(String),
Sourcehut(String),
Gitlab(String),
Codeberg(String),
+
#[serde(deserialize_with = "helpers::string_or_struct")]
+
Tangled(ATProto),
}
-
#[async_trait]
impl Fetch for Source {
-
async fn fetch(&self) -> Vec<PublicKey> {
+
fn fetch(&self) -> Result<Vec<PublicKey>> {
match *self {
-
Source::Raw(ref raw) => raw.fetch().await,
-
Source::Hosts(ref raw) => raw.fetch().await,
-
Source::Forge(ref raw) => raw.fetch().await,
-
Source::Github(ref user) => Forge { user: user.clone(), host: "github.com".into() }.fetch().await,
-
Source::Sourcehut(ref user) => Forge { user: user.clone(), host: "meta.sr.ht".into() }.fetch().await,
-
Source::Gitlab(ref user) => Forge { user: user.clone(), host: "gitlab.com".into() }.fetch().await,
-
Source::Codeberg(ref user) => Forge { user: user.clone(), host: "codeberg.org".into() }.fetch().await,
+
Source::Raw(ref raw) => raw.fetch(),
+
Source::Hosts(ref raw) => raw.fetch(),
+
Source::Http(ref raw) => raw.fetch(),
+
Source::Github(ref user) => Http {
+
url: format!("https://github.com/{user}.keys"),
+
}
+
.fetch(),
+
Source::Sourcehut(ref user) => Http {
+
url: format!("https://meta.sr.ht/{}.keys", normalize_sourcehut(user)),
+
}
+
.fetch(),
+
Source::Gitlab(ref user) => Http {
+
url: format!("https://gitlab.com/{user}.keys"),
+
}
+
.fetch(),
+
Source::Codeberg(ref user) => Http {
+
url: format!("https://codeberg.org/{user}.keys"),
+
}
+
.fetch(),
+
Source::Tangled(ref atproto) => atproto.fetch(),
}
}
}
+
fn normalize_sourcehut(s: &str) -> std::borrow::Cow<'_, str> {
+
if s.starts_with("~") {
+
s.into()
+
} else {
+
format!("~{s}").into()
+
}
+
}
+
#[derive(Debug, Deserialize)]
-
pub struct Raw(Vec<PublicKey>);
+
pub struct Raw(Box<[PublicKey]>);
-
#[async_trait::async_trait]
impl Fetch for Raw {
-
async fn fetch(&self) -> Vec<PublicKey> {
-
self.0.clone()
+
fn fetch(&self) -> Result<Vec<PublicKey>> {
+
Ok(self.0.clone().into())
}
}
#[derive(Debug, Deserialize)]
-
pub struct Hosts(pub Vec<String>);
+
pub struct Hosts(pub Box<[String]>);
-
#[async_trait]
impl Fetch for Hosts {
-
async fn fetch(&self) -> Vec<PublicKey> {
+
fn fetch(&self) -> Result<Vec<PublicKey>> {
// TODO: Check if we can do it in-process instead of shelling out to `ssh-keyscan`
-
let result = Command::new("ssh-keyscan")
-
.args(&self.0)
-
.output()
-
.await
-
.unwrap();
+
let result = Command::new("ssh-keyscan").args(&self.0).output().unwrap();
-
std::str::from_utf8(&result.stdout)
-
.unwrap()
+
std::str::from_utf8(&result.stdout)?
.trim()
.split('\n')
-
.map(|line| {
-
// Ignore first column as it contain hostname which is not
-
// needed there
-
line.split(' ')
-
.skip(1)
-
.collect::<Vec<_>>()
-
.join(" ")
-
.to_owned()
-
})
-
.map(|k| PublicKey::from_openssh(&k).unwrap())
+
.map(str::trim)
+
// Remove comments
+
.filter(|line| !line.starts_with("#"))
+
// Ignore first column as it contain hostname which is not
+
// needed there
+
.map(|line| line.split_once(' ').unwrap().1)
+
.map(|k| PublicKey::from_openssh(k).map_err(Into::into))
.collect()
}
}
#[derive(Debug, Deserialize)]
-
pub struct Forge {
-
pub user: String,
-
pub host: String,
+
pub struct Http {
+
pub url: String,
}
-
#[async_trait]
-
impl Fetch for Forge {
-
async fn fetch(&self) -> Vec<PublicKey> {
-
let url = format!("https://{}/{}.keys", self.host, self.user);
+
impl Fetch for Http {
+
fn fetch(&self) -> Result<Vec<PublicKey>> {
+
use ureq::tls::{RootCerts, TlsConfig, TlsProvider};
+
+
let config = ureq::Agent::config_builder()
+
.tls_config(
+
TlsConfig::builder()
+
.root_certs(RootCerts::PlatformVerifier)
+
.provider(TlsProvider::NativeTls)
+
.build(),
+
)
+
.build();
+
+
let agent = config.new_agent();
-
reqwest::get(url)
-
.await
-
.unwrap()
-
.text()
-
.await
-
.unwrap()
+
agent.get(&self.url)
+
.call()?
+
.body_mut()
+
.read_to_string()?
.trim()
.split('\n')
-
.map(|s| PublicKey::from_openssh(s).unwrap())
+
.map(|s| PublicKey::from_openssh(s).map_err(Into::into))
.collect()
}
}
+16 -9
docs/fuk.1.scd
···
# SYNOPSIS
*fuk* -h++
-
*fuk* [--format (json|pretty)] _config.toml_
+
*fuk* --help++
+
*fuk* [--format (json|toml|csv|ssh)] _config.toml_
# DESCRIPTION
···
*host*
Hostnames that will be passed to _ssh-keyscan_(1).
-
*forge*
-
Takes map as an argument, that map must have 2 keys, _user_ which will
-
be the name of the user used for querying and _host_ which will be the
-
host that will be queried. The resulting URL will be constructed as
-
_https://{host}/{user}.keys_.
+
*http*
+
Takes _url_ as and argument, with URL pointing to the HTTP resource that
+
will contain SSH keys.
*github*, *gitlab*, *sourcehut*, *codeberg*
-
Each of these are shortcuts for *forge* entries to provide default
-
_host_ for equivalent entries. In order these would be _github.com_,
+
Each of these are shortcuts for *http* entries to provide default
+
_url_ for equivalent entries. In order these would be _github.com_,
_gitlab.com_, _meta.sr.ht_, and _codeberg.org_.
+
+
*tangled*
+
Support for _tangled.sh_ keys stored in the ATProto profile. Accepts
+
either string, which should be either DID or handle (with or without
+
preceding _@_ sign), or a structure with `handle` key and optional
+
_host_ key. Default host is _https://bsky.social_.
Example configuration:
···
# OUTPUT
-
_fuk_ prints result to stdout in JSON format. Keys will be deduplicated by
+
_fuk_ prints result to stdout in selected format. Keys will be deduplicated by
algorithm and key, but the comment *will* be ignored when comparing for
equality. If comments for duplicated keys are different, then there is no
guarantee about comment content.
+
+
Possible formats - JSON, TOML, CSV, SSH authorized_keys.
Example output:
+3
docs/fuk.1.scd.license
···
+
SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
+
SPDX-License-Identifier: EUPL-1.2
+131 -143
flake.lock
···
{
"nodes": {
+
"cachix": {
+
"inputs": {
+
"devenv": [
+
"devenv"
+
],
+
"flake-compat": [
+
"devenv"
+
],
+
"git-hooks": [
+
"devenv",
+
"git-hooks"
+
],
+
"nixpkgs": [
+
"devenv",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1752264895,
+
"narHash": "sha256-1zBPE/PNAkPNUsOWFET4J0cjlvziH8DOekesDmjND+w=",
+
"owner": "cachix",
+
"repo": "cachix",
+
"rev": "47053aef762f452e816e44eb9a23fbc3827b241a",
+
"type": "github"
+
},
+
"original": {
+
"owner": "cachix",
+
"ref": "latest",
+
"repo": "cachix",
+
"type": "github"
+
}
+
},
"devenv": {
"inputs": {
+
"cachix": "cachix",
"flake-compat": "flake-compat",
+
"flake-parts": "flake-parts",
+
"git-hooks": "git-hooks",
"nix": "nix",
-
"nixpkgs": "nixpkgs",
-
"pre-commit-hooks": "pre-commit-hooks"
+
"nixpkgs": "nixpkgs"
},
"locked": {
-
"lastModified": 1707004164,
-
"narHash": "sha256-9Hr8onWtvLk5A8vCEkaE9kxA0D7PR62povFokM1oL5Q=",
+
"lastModified": 1759339967,
+
"narHash": "sha256-mMJgOCRHKDAAsU9AmgK1gV0iWMZo1yHH243uCnQ3tr4=",
"owner": "cachix",
"repo": "devenv",
-
"rev": "0e68853bb27981a4ffd7a7225b59ed84f7180fc7",
+
"rev": "e7a45ed5e94dd286bce2a3b0f037fb4355e1ebdf",
"type": "github"
},
"original": {
···
"flake-compat": {
"flake": false,
"locked": {
-
"lastModified": 1673956053,
-
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
+
"lastModified": 1747046372,
+
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
-
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
+
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
···
},
"flake-parts": {
"inputs": {
-
"nixpkgs-lib": "nixpkgs-lib"
+
"nixpkgs-lib": [
+
"devenv",
+
"nixpkgs"
+
]
},
"locked": {
-
"lastModified": 1706830856,
-
"narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=",
+
"lastModified": 1756770412,
+
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
-
"rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f",
+
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"flake-utils": {
+
"flake-parts_2": {
"inputs": {
-
"systems": "systems"
+
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
-
"lastModified": 1685518550,
-
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
+
"lastModified": 1756770412,
+
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
+
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
"type": "github"
}
},
-
"gitignore": {
+
"git-hooks": {
"inputs": {
+
"flake-compat": [
+
"devenv",
+
"flake-compat"
+
],
+
"gitignore": "gitignore",
"nixpkgs": [
"devenv",
-
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
-
"lastModified": 1660459072,
-
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
-
"owner": "hercules-ci",
-
"repo": "gitignore.nix",
-
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
+
"lastModified": 1758108966,
+
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
"type": "github"
},
"original": {
-
"owner": "hercules-ci",
-
"repo": "gitignore.nix",
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
"type": "github"
}
},
-
"lowdown-src": {
-
"flake": false,
+
"gitignore": {
+
"inputs": {
+
"nixpkgs": [
+
"devenv",
+
"git-hooks",
+
"nixpkgs"
+
]
+
},
"locked": {
-
"lastModified": 1633514407,
-
"narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
-
"owner": "kristapsdz",
-
"repo": "lowdown",
-
"rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
+
"lastModified": 1709087332,
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
-
"owner": "kristapsdz",
-
"repo": "lowdown",
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
"type": "github"
}
},
"nix": {
"inputs": {
-
"lowdown-src": "lowdown-src",
+
"flake-compat": [
+
"devenv",
+
"flake-compat"
+
],
+
"flake-parts": [
+
"devenv",
+
"flake-parts"
+
],
+
"git-hooks-nix": [
+
"devenv",
+
"git-hooks"
+
],
"nixpkgs": [
"devenv",
"nixpkgs"
],
-
"nixpkgs-regression": "nixpkgs-regression"
+
"nixpkgs-23-11": [
+
"devenv"
+
],
+
"nixpkgs-regression": [
+
"devenv"
+
]
},
"locked": {
-
"lastModified": 1676545802,
-
"narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=",
-
"owner": "domenkozar",
+
"lastModified": 1758763079,
+
"narHash": "sha256-Bx1A+lShhOWwMuy3uDzZQvYiBKBFcKwy6G6NEohhv6A=",
+
"owner": "cachix",
"repo": "nix",
-
"rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f",
+
"rev": "6f0140527c2b0346df4afad7497baa08decb929f",
"type": "github"
},
"original": {
-
"owner": "domenkozar",
-
"ref": "relaxed-flakes",
+
"owner": "cachix",
+
"ref": "devenv-2.30.5",
"repo": "nix",
"type": "github"
}
},
"nixpkgs": {
"locked": {
-
"lastModified": 1678875422,
-
"narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
-
"owner": "NixOS",
-
"repo": "nixpkgs",
-
"rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
+
"lastModified": 1758532697,
+
"narHash": "sha256-bhop0bR3u7DCw9/PtLCwr7GwEWDlBSxHp+eVQhCW9t4=",
+
"owner": "cachix",
+
"repo": "devenv-nixpkgs",
+
"rev": "207a4cb0e1253c7658c6736becc6eb9cace1f25f",
"type": "github"
},
"original": {
-
"owner": "NixOS",
-
"ref": "nixpkgs-unstable",
-
"repo": "nixpkgs",
+
"owner": "cachix",
+
"ref": "rolling",
+
"repo": "devenv-nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
-
"dir": "lib",
-
"lastModified": 1706550542,
-
"narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=",
-
"owner": "NixOS",
-
"repo": "nixpkgs",
-
"rev": "97b17f32362e475016f942bbdfda4a4a72a8a652",
+
"lastModified": 1754788789,
+
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
+
"owner": "nix-community",
+
"repo": "nixpkgs.lib",
+
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"type": "github"
},
"original": {
-
"dir": "lib",
-
"owner": "NixOS",
-
"ref": "nixos-unstable",
-
"repo": "nixpkgs",
+
"owner": "nix-community",
+
"repo": "nixpkgs.lib",
"type": "github"
}
},
-
"nixpkgs-regression": {
+
"nixpkgs_2": {
"locked": {
-
"lastModified": 1643052045,
-
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
+
"lastModified": 1759133924,
+
"narHash": "sha256-eegjF6fo080481S/ZHyDENjeGG1ZgW2v86O9UZQxLJ8=",
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
+
"rev": "9547cfd27b5158eb612a6812dfc5c7b3d118b996",
"type": "github"
},
"original": {
"owner": "NixOS",
+
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
-
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
-
"type": "github"
-
}
-
},
-
"nixpkgs-stable": {
-
"locked": {
-
"lastModified": 1685801374,
-
"narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
-
"owner": "NixOS",
-
"repo": "nixpkgs",
-
"rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
-
"type": "github"
-
},
-
"original": {
-
"owner": "NixOS",
-
"ref": "nixos-23.05",
-
"repo": "nixpkgs",
-
"type": "github"
-
}
-
},
-
"nixpkgs_2": {
-
"locked": {
-
"lastModified": 1706173671,
-
"narHash": "sha256-lciR7kQUK2FCAYuszyd7zyRRmTaXVeoZsCyK6QFpGdk=",
-
"path": "/nix/store/ildml01gk7v91fba35whklllfi343lvq-source",
-
"rev": "4fddc9be4eaf195d631333908f2a454b03628ee5",
-
"type": "path"
-
},
-
"original": {
-
"id": "nixpkgs",
-
"type": "indirect"
-
}
-
},
-
"pre-commit-hooks": {
-
"inputs": {
-
"flake-compat": [
-
"devenv",
-
"flake-compat"
-
],
-
"flake-utils": "flake-utils",
-
"gitignore": "gitignore",
-
"nixpkgs": [
-
"devenv",
-
"nixpkgs"
-
],
-
"nixpkgs-stable": "nixpkgs-stable"
-
},
-
"locked": {
-
"lastModified": 1704725188,
-
"narHash": "sha256-qq8NbkhRZF1vVYQFt1s8Mbgo8knj+83+QlL5LBnYGpI=",
-
"owner": "cachix",
-
"repo": "pre-commit-hooks.nix",
-
"rev": "ea96f0c05924341c551a797aaba8126334c505d2",
-
"type": "github"
-
},
-
"original": {
-
"owner": "cachix",
-
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
-
"flake-parts": "flake-parts",
+
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2"
-
}
-
},
-
"systems": {
-
"locked": {
-
"lastModified": 1681028828,
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-
"owner": "nix-systems",
-
"repo": "default",
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-systems",
-
"repo": "default",
-
"type": "github"
}
}
},
+3
flake.lock.license
···
+
SPDX-FileCopyrightText: 2025 Łukasz Niemier <#@hauleth.dev>
+
+
SPDX-License-Identifier: EUPL-1.2
+12 -10
flake.nix
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
{
description = "Description for the project";
inputs = {
flake-parts.url = "github:hercules-ci/flake-parts";
-
nixpkgs.url = "flake:nixpkgs";
+
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
devenv.url = "github:cachix/devenv";
};
···
};
devenv.shells.default = {
-
languages.rust.enable = true;
+
languages.rust = {
+
enable = true;
+
};
+
+
git-hooks.hooks = {
+
rustfmt.enable = true;
+
};
packages =
[
···
pkgs.cargo-nextest
pkgs.cargo-outdated
pkgs.reuse
-
]
-
++ pkgs.lib.lists.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk; [
-
frameworks.Foundation
-
frameworks.CoreFoundation
-
frameworks.SystemConfiguration
-
frameworks.Security
-
pkgs.libiconv
-
]);
+
];
};
};
};
+6 -1
keys.toml
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
[[entry]]
name = "hauleth"
keys = [
{ github = "hauleth" },
-
{ sourcehut = "~hauleth" }
+
{ sourcehut = "~hauleth" },
+
{ tangled = "@hauleth.dev" }
]
[[entry]]
+17 -10
nix/fuk.nix
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
{
lib,
rustPlatform,
···
darwin,
libiconv,
scdoc,
+
pkg-config,
+
openssl,
}:
rustPlatform.buildRustPackage {
pname = "fuk";
···
src = ./..;
-
cargoHash = "sha256-jdiaV4B22GHKrHpuPv+eKsAt2jMv5AazLJmoEYfdUlE=";
+
cargoHash = "sha256-a8fK+EBNrv/S7tl3b8f+/01naboI4lcHzEEk6I/35M4=";
-
nativeBuildInputs = [ scdoc ];
+
nativeBuildInputs = [scdoc pkg-config];
preInstall = ''
-
OUT=$out/man cargo xtask
+
OUT=$out/man cargo xtask
'';
-
buildInputs = lib.lists.optionals stdenv.isDarwin (with darwin.apple_sdk; [
-
frameworks.Foundation
-
frameworks.CoreFoundation
-
frameworks.SystemConfiguration
-
frameworks.Security
-
libiconv
-
]);
+
buildInputs =
+
[openssl]
+
++ lib.lists.optionals stdenv.isDarwin (with darwin.apple_sdk; [
+
frameworks.Foundation
+
frameworks.CoreFoundation
+
frameworks.SystemConfiguration
+
frameworks.Security
+
libiconv
+
]);
meta = with lib; {
description = "Simple tool for fetching SSH keys from various sources";
+5 -2
xtask/Cargo.toml
···
+
# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
#
+
# SPDX-License-Identifier: EUPL-1.2
+
[package]
name = "xtask"
-
version = "0.1.0"
-
edition = "2021"
+
edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+7 -1
xtask/src/main.rs
···
+
// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
+
//
+
// SPDX-License-Identifier: EUPL-1.2
+
use std::fs;
use std::path::Path;
···
let entry = entry?;
let file_name = entry.file_name();
let file_name = Path::new(&file_name);
-
if file_name.extension() != Some(std::ffi::OsStr::new("scd")) { continue }
+
if file_name.extension() != Some(std::ffi::OsStr::new("scd")) {
+
continue;
+
}
let outname = Path::file_stem(file_name).unwrap();
let page = Path::new(outname).extension().unwrap().to_str().unwrap();