Uses Cargo's 'workspace dependencies' feature to consolidate dependencies into the top-level Cargo.toml
. This should reduce code duplication, decrease the amount of versions between dependencies, and make it easier to globally reason about which dependencies are used. Currently the only non-workspacae dependency is Pijul's dependency on an older version of edit
, which will be addressed in an upcoming change.
2MKP7CB7FKQUNEAV3YPEJ7FNFW75VGGQIYPQRI54BFXGCUOQESPAC
HWYGVLP5M3H46XDLLUPXI5H2K35LHJPILMR3SPD7QKOULN5OSAKQC
VCYKNPDKX2RNCXFM6EWYRBIGK7K4ZB5ND66WQD3BTEWX3RAU5DPQC
PBNQKKPEFRII3QC62XURYOOTCXMIO2TMV3RBIHRCBIG3SHSVE7PAC
JJQQWDC3DOTW4ILTYPJYPRF5GRS4FPNAQELNLQYUI2D55KQIKPBAC
KDGMOLN57KU67XBKRVKZ2GL4AZK6PWG6ID4KG2SKZEM5EL4WYM6AC
LREYM47HHUJSKAVMQI5TM655N34V764TBUVGAGY7MLBKAREMTLXAC
WCA7X6W633OI72GFB4QPQKAF3POVTBB5HO2NRSVBJRO5BUJL2ORQC
OYN2YVPAN6L3X6HZXJI6B2GYGL2W5AXRK6CVDJRWALS5OENNB5UAC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
DVBSW7SICQMTYIC4NOLA3CBRU5OWPAWX3MYEOZ7UWXF3IJLLJDYQC
ABPFWGKH24JK7TLAGDVENTA5VSVRANPBVRD555WCQMNW56BL7SZQC
JTELS6L36GEOOST2SUNCJIK5TBJDNLQWCF4IRF7QSHMMVCXSSESAC
SU3JX6SEW6MLREX6CCM4V3353YC3IQD4JOZW2KEIHYTHOI2AJKPQC
7UU3TV5W23QA7LLRBSBXEYPRMIVXPW4FNENEEE7ZEJYXDLXHVX4AC
YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC
SPA2OL5ITFMLB5P2WL342QAU2FXPKSFS4XHAMW6HYWOGSGLO2MJAC
FDPGJDXVMKCKHKJG2XWZ5JIUDOQDL37JLNNUCA34IL6KNG7J5N7AC
5RSZPNQRUWZFLQIV64CAP4D47BHY4UCBY2R57NB2VCZ5VZF5SBGQC
XF3FRWJ6MFZAMR2NFEBICRCG42QEPSKSWJSBOJYLA3LX2UYJ5FMQC
OFQY3GUUXYY5GTLHRH4NSZMLVXJRO67QK3TVDLNNOHZ7T66ZSRJAC
TEDGMEHFZK6QKSXVOHM3Z4MYZC26EDCWRURHWKOU2JLETWJIJPLQC
PIQCNEEBNHZDYOU2O7667XBB6D3V2MUALRRVJX6VO5BGYR7LTYRQC
ZDK3GNDBWXJ2OXFDYB72ZCEBGLBF4MKE5K3PVHDZATHJ7HJIDPRQC
4EN4MDBQC3DDMYWY7GNCOR2CUTNQJSKKBUSAH7OTJGNO6FBPY55QC
RPY5P6GWRZ7DBJFWLTAAB36JCOJ672VBNGJXLCOEJZOCDSWNYG2QC
V7FJ2EPWWDPJ2ROWMYP7JVGLCDPBWGILG53PKF2ECOI4YORKCMRQC
HKA66XOQ5LOF3E5DIQGVKPEZGZKCXLLYRVTKDK7SAD7Y5JZB5OUQC
TPEH2XNBS5RO4IEVKENVF6P65AH7IX64KK2JAYMSJT3J5GXO67EAC
JRENVH5DF2F4SOV7UNJENFA7VDI3H63XK76R3LFZK6QCW7JIBLSQC
I24UEJQLCH2SOXA4UHIYWTRDCHSOPU7AFTRUOTX7HZIAV4AZKYEQC
LZOGKBJXRQJKXHYNNENJFGNLP5SHIXGSV6HDB7UVOP7FSA5EUNCQC
A3RM526Y7LUXNYW4TL56YKQ5GVOK2R5D7JJVTSQ6TT5MEXIR6YAAC
PJ7T2VFLV5PYG3CV23GC2GIQETXKGC6CO74JBGREV3JC3LG5OXUAC
33SQMZYXPV2A3F7P6WBFKFO2BTQV6THSQXOLV3PCZASC6OTKVHTQC
RVAH6PXA7H7NUDTF7Q52I7EXGXVJVMGI2LTNN6L3MVEDEMAXVH4AC
RXNT67OTDNFTBYXS6ECDAZ26PRTDROASNYTR6IEXYQUO4K5YNXYQC
VAPBIG46QVLGCASUE2QLISQ6657CZRAMNEG2PRK7FKEKAYM7FS3QC
VKBJ6XB64MVCKJ4TWX2T4XUBEOKD55WW6CUF47DINVZQGSCVAXJAC
MFTN7GBWZNQAFHKER57MLZAJGVEAHV2GYAQN2QTDHTPCEURDVIGQC
A3DMBJJAPLS6ASSZ7JVVVULRQNZCF2WKYTRUD7EY7PKVYABSATFAC
ZBNKSYA6PW4DSPC3NCRUZLVHW2GNXMCSDSAGEIKHGHDGGZRBH7ZQC
2RXOCWUWOGHEKHT5W73LAHJSOZVRTOGS7BWLSIGEEEBJGMCZBXQAC
QWIYNMI5SOTLRPYE4O3AG7R75JXM2TB3ZADU646PG6ACPBGSYUYAC
CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC
GHO6DWPILBBTL6CVZKERJBTFL3EY6ZT4YM4E5R4S6YPGVFKFHCVAC
G3A7KDTO6QZXDBAZDQP3AIIH2BWJSF7DFW4CZJXIZAS4YHIRORYQC
BNPSVXIC72C3WT33YKCH766OBLLNCS7POX6U6JXZSQQPJF2M22MQC
ZRUPLBBTT4S6S7A3LOAHG4ONYEGPA5CFO4L2XBCNFKK45MWX3BDAC
OJZWJUF2TCGZ7RFVY6FPKBS5P3C4BGHZDPVH775OHVNVFMJICKNQC
ZHABNS3S6FSINO74FOI5KHYXYDTBPO4FQTTYTUS7NNKEVVNLYC4AC
X2MMGGXQEXJQKXV77LMQWY2BLMLOD6WRDGS3ZX3Z4NUDRAI5IDCAC
V435QOJRFHNKW3NKJHMVMFOGO3KGAZVSURLSGFUHVKOMHMF4Q2ZQC
SN7AGY6SLIWVKLBHQQ2MZ7VYY4BBFKROC5F3M6FVVFIGT25QNX7AC
TYAKEAJLABCZQDYAI4YBGIJNQ7HJS4DVULEGPCZOGJPJUYYNR6TAC
UMF6N7CZA4CTSPKQFZSZXA3VRHWQAKEA5GUNIEAAVRWC7FUSSKAAC
BNUBRZT5IPQ6WYKMS3CNZLKZM2PEA7EXYBJAZRJHLS5QXMOV7QQQC
4RV7T4SRYIQLBW3EZFWBO5G65QAVG2GHPI4KMDDZERCX65KQWSPQC
2K7JLB4Z7BS5VFNWD4DO3MKYU7VNPA5MTVHVSDI3FQZ5ICM6XM6QC
JUYSZJSHULJFR4HUJF72TEKKFMBPG4ZOGAGOJ2BX6P3D4DRZAU5QC
ABQDWHNGSBF2REQDCGXSBFAU4RUMXYAF2KHJ5O3D32M7Z3A3FEDAC
J2D66R2DQVRQVQAFFIR4F7RI3BHQFANY2HEGUFRBNUPFVUZAXUTQC
NABOB7CQIQNLFXHPR2LMOHTQLYXRB7WCBTF2CZQZURSS4E4SWV5QC
WQ2GJPJWZJ2GKYWCYRZ5AMDKGNTTT3IR2NA7JJZEZRUQRBSOXJYAC
RZ75BZCIWI2LYV5ZHTHV5ZPAQ25D537PNGPOQM7MW6CU77KROB7QC
CVS6BHXRJF4LZAMYB7B233DYSR57NUHFU45GDUKZLJO5HIPH22KAC
3T42CBTIS5AMRERQD4OTH5SFWE55FXHGHGR6JYIUOYZ4WK3BSLVQC
H565UUPCG3M3BQNQPC4DUYJN2GO3DYTODYSHQYIZ2FT6JVSHBE3AC
JACZWIJ6UEL5HWZRNOOXTFXUEG67XJDPC5D72LYUPCVVJ6WB7JQAC
G65S7FAW4OHBGC6ROVPPZ6PPACKOFEM4KSMAWMYKNQF5OLVDJR2QC
HDGRZISM2SS4TK5BMNGDIYG22SOXAZRTTC6YFIOPY4LSO53QDWZQC
B3QWIGDERNMB3M6P5WTWP5CN2DB3KCS7MVTEPC2XVJ237ZXVQGMAC
IIV3EL2XYI2X7HZWKXEXQFAE3R3KC2Q7SGOT3Q332HSENMYVF32QC
MDY344ZZLCKXHA7VGJJYLNPCLHPI3I3LFODUYBPBH32SQ3SOOFIAC
EEBKW7VTILH6AGGV57ZIJ3DJGYHDSYBWGU3C7Q4WWAKSVNUGIYMQC
FYUDBQ3C5GWIFKITBAKEXTK4AFZXZOH7DHI7QFXQOQ3HYUIYDEVAC
5FI6SBEZ6RERERUAIWQJVAY66BEZ7YQOYOUNK2DPOLRGS2X326RAC
AKARNWLHKVH4477BX2KZ6VY4YPTMXQFVPUSFCWHG4LZ4OCW2F5CQC
TNN56XYKX4QRHA4FWCF5F3JVG52FIAC76EEYYANDKEE4IAWQKPEQC
Y3I63NOYKXR7DRO2FLW24K4QEQSHIZQWHRYSXXSYHC7GIP6GUFYQC
RDQYEED2LELS3HDSZA23JBLTHE6L5YXIXOKXQF6LSGYQ3O47H63QC
YFIQQIODH2BYMPMHGAWONIWB34R24OPSXMFFVDLSCPS52GCA3GTQC
Z5RPHAV3O3HLVHEN7MIZDMACMYGG37SX2YWHOWVGJ4YLFDZFGPGQC
FINWDBLQNMWDKZRNNH5IF2QMV4XJEUWMOWBBIRBRFPRABTTKPYBQC
3QGE6HRDSMTV2SNEDC2AJUIR6GIHRU73KXQMZ3BGUYT4H4TAMETQC
SGXOEWHUET7RVS5HANSYE7QRQAG56NIKTC56MLPZ5XBCXODEWUXQC
H4IRHDJIVNQB4LB4SKMY3EN46POCVLTHJYZXWORKNPO3JXKIPZAQC
RIZ4IP76N4PNGXMMZSFPOQIUQICFMGSHJNJMYZGHM4WODM45QOHAC
FXEDPLRI7PXLDXV634ZA6D5Q3ZWG3ESTKJTMRPJ4MAHI7PKU3M6AC
V4T4SC7OL6WEZNV4XSFBSXY5HPB7VXPSXWSK4Z63QXKQD4JSFNCQC
EJ7TFFOWLM5EXYX57NJZZX3NLPBLLMRX7CGJYC75DJZ5LYXOQPJAC
PNJL5TPZLQ3VXAASTLUX7462RCRPO7TV3GKOTTHDZABDQCBMXPRQC
RH7NSV7FYXWA54NVOUGMFOINLY5OFTWK5AMR6IDBBEU3LWQ2HL3QC
STG7MO5MLMKFJYJQDAXL6YSUJE2BTXOMWUQHXBWFHDFJNNJRP5AQC
ND62U46THW72F6K32HFN6BEOKAXUM23L2ADIYEUXB3MHFAERWRCAC
anyhow = { version = "1.0", features = ["backtrace"] }
log = "0.4"
libpijul = { path = "../libpijul", version = "1.0.0-beta.10" }
pijul-config = { path = "../pijul-config", version = "0.0.1" }
rlimit = "0.9"
toml = { version = "0.7", features = ["preserve_order"] }
libpijul.workspace = true
pijul-config.workspace = true
anyhow.workspace = true
log.workspace = true
rlimit.workspace = true
toml.workspace = true
anyhow = { version = "1.0", features = ["backtrace"] }
async-trait = "0.1"
byteorder = "1.4"
bytes = "1.4"
dirs-next = "2.0"
futures = "0.3"
futures-util = "0.3"
lazy_static = "1.4"
libpijul = { path = "../libpijul", version = "1.0.0-beta.10", features = ["tarball"] }
log = "0.4"
pijul-config = { path = "../pijul-config", version = "0.0.1" }
pijul-identity = { path = "../pijul-identity", version = "0.0.1" }
pijul-interaction = { path = "../pijul-interaction", version = "0.0.1" }
pijul-repository = { path = "../pijul-repository", version = "0.0.1" }
sanakirja = { version = "1.3", default-features = false, features = ["crc32"] }
serde_json = "1.0"
reqwest = { version = "0.11", features = ["stream", "json"] }
thrussh = "0.34"
thrussh-keys = "0.22"
thrussh-config = "0.6"
tokio = { version = "1", features = [
"rt-multi-thread",
"macros",
"sync",
"fs",
] }
url = "2.4"
keyring = { version = "2.0", default_features = false, features = [
"linux-no-secret-service",
] }
regex = "1.8"
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
libpijul.workspace = true
pijul-config.workspace = true
pijul-identity.workspace = true
pijul-interaction.workspace = true
pijul-repository.workspace = true
anyhow.workspace = true
async-trait.workspace = true
byteorder.workspace = true
bytes.workspace = true
dirs-next.workspace = true
futures-util.workspace = true
futures.workspace = true
keyring.workspace = true
lazy_static.workspace = true
log.workspace = true
regex.workspace = true
reqwest.workspace = true
sanakirja.workspace = true
serde_derive.workspace = true
serde_json.workspace = true
serde.workspace = true
thrussh-config.workspace = true
thrussh-keys.workspace = true
thrussh.workspace = true
tokio.workspace = true
url.workspace = true
dialoguer = { version = "0.10.4", features = ["fuzzy-select"] }
duplicate = "1.0.0"
indicatif = { version = "0.17", features = ["improved_unicode"] }
lazy_static = "1.4"
log = "0.4.19"
thiserror = "1.0.43"
pijul-config.workspace = true
anyhow = { version = "1.0", features = ["backtrace"] }
chrono = "0.4"
dateparser = "0.1"
dirs-next = "2.0"
keyring = "2.0"
libpijul = { path = "../libpijul", version = "1.0.0-beta.10" }
log = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "1.0"
thrussh-keys = "0.21"
toml = { version = "0.7", features = ["preserve_order"] }
validator = { version = "0.15", default-features = false }
whoami = "1.4"
libpijul.workspace = true
pijul-config.workspace = true
pijul-interaction.workspace = true
pijul-repository.workspace = true
pijul-config = { path = "../pijul-config", version = "0.0.1" }
pijul-interaction = { path = "../pijul-interaction", version = "0.0.1" }
pijul-repository = { path = "../pijul-repository", version = "0.0.1" }
anyhow.workspace = true
chrono.workspace = true
dateparser.workspace = true
dirs-next.workspace = true
keyring.workspace = true
log.workspace = true
serde_json.workspace = true
serde.workspace = true
thiserror.workspace = true
thrussh-keys.workspace = true
toml.workspace = true
validator.workspace = true
whoami.workspace = true
anyhow = { version = "1.0", features = ["backtrace"] }
dialoguer = { version = "0.10", default-features = false, features = ["editor"] }
dirs-next = "2.0"
log = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
toml = { version = "0.5", features = ["preserve_order"] }
whoami = { version = "1.4", default-features = false }
edit = "0.1"
anyhow.workspace = true
dialoguer = { workspace = true, features = ["editor"] }
dirs-next.workspace = true
edit.workspace = true
log.workspace = true
serde_derive.workspace = true
serde.workspace = true
toml.workspace = true
whoami.workspace = true
human-panic = "1.1"
clap = { version = "4.3", features = [ "derive", "cargo" ] }
clap_complete = "4.3"
anyhow = "1.0"
libpijul = { path = "../libpijul", version = "1.0.0-beta.10", features = [ "tarball" ] }
chrono = { version = "0.4.27" }
ignore = "0.4"
env_logger = "0.8"
log = "0.4"
serde = "1.0"
serde_json = "1.0"
serde_derive = "1.0"
libpijul = { workspace = true, features = ["tarball"] }
pijul-config.workspace = true
pijul-identity.workspace = true
pijul-interaction.workspace = true
pijul-remote.workspace = true
pijul-repository.workspace = true
anyhow.workspace = true
async-trait.workspace = true
atty.workspace = true
byteorder.workspace = true
bytes.workspace = true
canonical-path.workspace = true
chrono.workspace = true
clap = { workspace = true, features = ["derive", "cargo"] }
clap_complete.workspace = true
ctrlc.workspace = true
data-encoding.workspace = true
dateparser.workspace = true
dirs-next.workspace = true
edit.workspace = true
env_logger.workspace = true
futures-util.workspace = true
futures.workspace = true
git2 = { workspace = true, optional = true }
human-panic.workspace = true
hyper = { workspace = true, features = ["server"] }
ignore.workspace = true
keyring.workspace = true
lazy_static.workspace = true
log.workspace = true
open.workspace = true
path-slash.workspace = true
ptree.workspace = true
rand.workspace = true
regex.workspace = true
reqwest.workspace = true
sanakirja.workspace = true
serde_derive.workspace = true
serde_json.workspace = true
serde.workspace = true
tempfile.workspace = true
termcolor.workspace = true
thiserror.workspace = true
thrussh-config.workspace = true
thrussh-keys.workspace = true
thrussh.workspace = true
tokio.workspace = true
tokio = { version = "1.29", features = [ "rt-multi-thread", "macros", "sync", "fs" ] }
thrussh = "0.33"
thrussh-keys = "0.21"
thrussh-config = "0.5"
hyper = { version = "0.14", features = [ "server" ] }
reqwest = { version = "0.11", features = [ "stream", "json" ] }
futures = "0.3"
dirs-next = "2.0"
lazy_static = "1.4"
regex = "1.9"
whoami = "1.4"
git2 = { version = "0.18.2", optional = true }
rand = "0.8"
edit = "0.1.3"
tempfile = "3.6"
data-encoding = "2.4"
futures-util = "0.3"
termcolor = "1.2"
atty = "0.2"
canonical-path = "2.0"
ctrlc = "=3.2.0"
url = "2.4"
path-slash = "0.1"
bytes = "1.4"
thiserror = "1.0"
dateparser = "0.1"
validator = { version = "0.15", default-features = false }
ptree = { version = "0.4", default-features = false, features = ["ansi"] }
keyring = "2.0"
open = "3"
async-trait = "0.1"
url.workspace = true
validator.workspace = true
whoami.workspace = true
pijul-config = { path = "../pijul-config", version = "0.0.1" }
pijul-identity = { path = "../pijul-identity", version = "0.0.1" }
pijul-interaction = { path = "../pijul-interaction", version = "0.0.1" }
pijul-remote = { path = "../pijul-remote", version = "1.0.0-beta.6" }
pijul-repository = { path = "../pijul-repository", version = "0.0.1" }
exitcode.workspace = true
expectrl.workspace = true
ondisk-repos = [ "mmap", "zstd", "ignore", "canonical-path", "lru-cache", "tempfile", "path-slash" ]
mmap = [ "sanakirja/mmap" ]
zstd = [ "zstd-seekable" ]
ondisk-repos = [
"mmap",
"zstd",
"ignore",
"canonical-path",
"lru-cache",
"tempfile",
"path-slash",
]
mmap = ["sanakirja/mmap"]
zstd = ["zstd-seekable"]
sanakirja = { version = "1.4.1", default-features = false, features = [ "crc32" ] }
byteorder = "1.4"
log = "0.4"
serde = "1.0"
serde_derive = "1.0"
bitflags = "1.3"
thiserror = "1.0"
chrono = { version = "0.4.27", features = ["serde"] }
pijul-macros = { path = "../pijul-macros", version = "0.5.0" }
bincode = "1.3"
data-encoding = "2.4"
diffs = "0.5"
toml = "0.5"
serde_json = "1.0"
lazy_static = "1.4"
twox-hash = "1.6"
crossbeam-deque = "0.8"
nom = "7"
pijul-macros.workspace = true
zstd-seekable = { version = "0.1", optional = true }
cfg-if = "1.0"
memchr = "2.5"
aes = { workspace = true, features = ["ctr"] }
canonical-path = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
ignore = { workspace = true, optional = true }
lru-cache = { workspace = true, optional = true }
path-slash = { workspace = true, optional = true }
tar = { workspace = true, optional = true }
tempfile = { workspace = true, optional = true }
zstd-seekable = { workspace = true, optional = true }
encoding_rs = "0.8"
regex = { version = "1.9" }
curve25519-dalek = { version = "3", features = [ "serde" ] }
ed25519-dalek = { version = "1.0", features = [ "serde" ] }
ignore = { version = "0.4", optional = true }
tar = { version = "0.4", optional = true }
flate2 = { version = "1.0", optional = true }
canonical-path = { version = "2.0", optional = true }
lru-cache = { version = "0.1", optional = true }
tempfile = { version = "3.6", optional = true }
path-slash = { version = "0.1", optional = true }
pbkdf2 = { version = "0.9", default-features = false }
aes = { version = "0.7", features = [ "ctr" ] }
generic-array = "0.14"
hmac = "0.11"
sha2 = "0.9"
rand = "0.8"
bs58 = "0.4"
adler32 = "1.2"
blake3 = "1.4"
parking_lot = "0.11"
adler32.workspace = true
bincode.workspace = true
bitflags.workspace = true
blake3.workspace = true
bs58.workspace = true
byteorder.workspace = true
cfg-if.workspace = true
chardetng.workspace = true
chrono.workspace = true
crossbeam-deque.workspace = true
curve25519-dalek = { workspace = true, features = ["serde"] }
data-encoding.workspace = true
diffs.workspace = true
ed25519-dalek = { workspace = true, features = ["serde"] }
encoding_rs.workspace = true
generic-array.workspace = true
hmac.workspace = true
lazy_static.workspace = true
log.workspace = true
memchr.workspace = true
nom.workspace = true
parking_lot.workspace = true
pbkdf2.workspace = true
rand.workspace = true
regex.workspace = true
sanakirja.workspace = true
serde_derive.workspace = true
serde_json.workspace = true
serde.workspace = true
sha2.workspace = true
thiserror.workspace = true
toml.workspace = true
twox-hash.workspace = true
getrandom = { version = "0.2", features = ["js" ]}
getrandom = { workspace = true, features = ["js"] }
env_logger = "0.8"
anyhow = "1.0"
detone = "1.0"
rand = "0.8"
rand_chacha = "0.3"
quickcheck = "1"
quickcheck_macros = "1"
anyhow.workspace = true
detone.workspace = true
env_logger.workspace = true
quickcheck_macros.workspace = true
quickcheck.workspace = true
rand_chacha.workspace = true
rand.workspace = true
[workspace.dependencies]
libpijul = { path = "libpijul", version = "1.0.0-beta.10" }
pijul-config = { path = "pijul-config", version = "0.0.1" }
pijul-identity = { path = "pijul-identity", version = "0.0.1" }
pijul-interaction = { path = "pijul-interaction", version = "0.0.1" }
pijul-macros = { path = "pijul-macros", version = "0.5.0" }
pijul-remote = { path = "pijul-remote", version = "1.0.0-beta.6" }
pijul-repository = { path = "pijul-repository", version = "0.0.1" }
adler32 = "1.2"
aes = "0.7"
anyhow = { version = "1.0", features = ["backtrace"] }
async-trait = "0.1"
atty = "0.2"
bincode = "1.3"
bitflags = "1.3"
blake3 = "1.4"
bs58 = "0.4"
byteorder = "1.4"
bytes = "1.4"
canonical-path = "2.0"
cfg-if = "1.0"
chardetng = "0.1.17"
chrono = { version = "0.4.27", features = ["serde"] }
clap = "4.3"
clap_complete = "4.3"
crossbeam-deque = "0.8"
ctrlc = "=3.2.0"
curve25519-dalek = "3"
data-encoding = "2.4"
dateparser = "0.1"
detone = "1.0"
dialoguer = { version = "0.10.4", default-features = false }
diffs = "0.5"
dirs-next = "2.0"
duplicate = "1.0.0"
ed25519-dalek = "1.0"
edit = "0.1.3"
encoding_rs = "0.8"
env_logger = "0.8"
exitcode = "1.1.2"
expectrl = "0.7"
flate2 = "1.0"
futures = "0.3"
futures-util = "0.3"
generic-array = "0.14"
getrandom = "0.2"
git2 = "0.18.2"
hmac = "0.11"
human-panic = "1.1"
hyper = "0.14"
ignore = "0.4"
indicatif = { version = "0.17", features = ["improved_unicode"] }
keyring = { version = "2.0", default-features = false, features = [
"linux-no-secret-service",
] }
lazy_static = "1.4"
log = "0.4"
lru-cache = "0.1"
memchr = "2.5"
nom = "7"
open = "3"
pager = "0.16"
parking_lot = "0.11"
path-slash = "0.1"
pbkdf2 = { version = "0.9", default-features = false }
proc-macro2 = "1.0"
ptree = { version = "0.4", default-features = false, features = ["ansi"] }
quickcheck = "1"
quickcheck_macros = "1"
quote = "1.0"
rand = "0.8"
rand_chacha = "0.3"
regex = "1.9"
reqwest = { version = "0.11", features = ["stream", "json"] }
rlimit = "0.9"
sanakirja = { version = "1.4.1", default-features = false, features = [
"crc32",
] }
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
serde_json = "1.0"
sha2 = "0.9"
syn = "1.0"
tar = "0.4"
tempfile = "3.6"
termcolor = "1.2"
thiserror = "1.0"
thrussh = "0.34"
thrussh-config = "0.6"
thrussh-keys = "0.22"
tokio = { version = "1", features = [
"rt-multi-thread",
"macros",
"sync",
"fs",
] }
toml = { version = "0.7", features = ["preserve_order"] }
twox-hash = "1.6"
url = "2.4"
validator = { version = "0.15", default-features = false }
whoami = { version = "1.4", default-features = false }
zstd-seekable = "0.1"
[[package]]
name = "async-broadcast"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
dependencies = [
"event-listener 2.5.3",
"futures-core",
]
[[package]]
name = "async-channel"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
dependencies = [
"concurrent-queue",
"event-listener 4.0.3",
"event-listener-strategy",
"futures-core",
"pin-project-lite",
]
[[package]]
name = "async-executor"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
dependencies = [
"async-lock 3.3.0",
"async-task",
"concurrent-queue",
"fastrand 2.0.1",
"futures-lite 2.2.0",
"slab",
]
[[package]]
name = "async-fs"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
dependencies = [
"async-lock 2.8.0",
"autocfg",
"blocking",
"futures-lite 1.13.0",
]
[[package]]
name = "async-io"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
"async-lock 2.8.0",
"autocfg",
"cfg-if",
"concurrent-queue",
"futures-lite 1.13.0",
"log",
"parking",
"polling 2.8.0",
"rustix 0.37.27",
"slab",
"socket2 0.4.10",
"waker-fn",
]
[[package]]
name = "async-io"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
dependencies = [
"async-lock 3.3.0",
"cfg-if",
"concurrent-queue",
"futures-io",
"futures-lite 2.2.0",
"parking",
"polling 3.4.0",
"rustix 0.38.31",
"slab",
"tracing",
"windows-sys 0.52.0",
]
[[package]]
name = "async-lock"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
"event-listener 2.5.3",
]
[[package]]
name = "async-lock"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
dependencies = [
"event-listener 4.0.3",
"event-listener-strategy",
"pin-project-lite",
]
[[package]]
name = "async-process"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
dependencies = [
"async-io 1.13.0",
"async-lock 2.8.0",
"async-signal",
"blocking",
"cfg-if",
"event-listener 3.1.0",
"futures-lite 1.13.0",
"rustix 0.38.31",
"windows-sys 0.48.0",
]
[[package]]
name = "async-recursion"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
]
[[package]]
name = "async-signal"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
dependencies = [
"async-io 2.3.1",
"async-lock 2.8.0",
"atomic-waker",
"cfg-if",
"futures-core",
"futures-io",
"rustix 0.38.31",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
]
[[package]]
name = "async-task"
version = "4.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
[[package]]
name = "atomic-waker"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c38c03b9506bd92bf1ef50665a81eda156f615438f7654bffba58907e6149d7"
dependencies = [
"blowfish 0.8.0",
"crypto-mac",
"pbkdf2 0.8.0",
"sha2 0.9.9",
"zeroize",
]
[[package]]
name = "bcrypt-pbkdf"
name = "blocking"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
dependencies = [
"async-channel",
"async-lock 3.3.0",
"async-task",
"fastrand 2.0.1",
"futures-io",
"futures-lite 2.2.0",
"piper",
"tracing",
]
[[package]]
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe3ff3fc1de48c1ac2e3341c4df38b0d1bfb8fdf04632a187c8b75aaa319a7ab"
dependencies = [
"byteorder",
"cipher 0.3.0",
"opaque-debug",
]
[[package]]
name = "blowfish"
[[package]]
name = "concurrent-queue"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
dependencies = [
"crossbeam-utils",
]
name = "derivative"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "enumflags2"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
dependencies = [
"enumflags2_derive",
"serde",
]
[[package]]
name = "enumflags2_derive"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
]
[[package]]
]
[[package]]
name = "event-listener"
version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "event-listener"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
dependencies = [
"concurrent-queue",
"parking",
"pin-project-lite",
]
[[package]]
name = "event-listener"
version = "4.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
dependencies = [
"concurrent-queue",
"parking",
"pin-project-lite",
[[package]]
name = "futures-lite"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
dependencies = [
"fastrand 1.9.0",
"futures-core",
"futures-io",
"memchr",
"parking",
"pin-project-lite",
"waker-fn",
]
[[package]]
name = "futures-lite"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
dependencies = [
"fastrand 2.0.1",
"futures-core",
"futures-io",
"parking",
"pin-project-lite",
]
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
name = "hex"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hkdf"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
dependencies = [
"hmac 0.12.1",
]
[[package]]
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown 0.12.3",
]
[[package]]
name = "indexmap"
]
[[package]]
name = "io-lifetimes"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
dependencies = [
"hermit-abi 0.3.5",
"libc",
"windows-sys 0.48.0",
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]]
name = "linux-raw-sys"
name = "memoffset"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
dependencies = [
"autocfg",
]
[[package]]
]
[[package]]
name = "num"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
dependencies = [
"num-bigint",
"num-complex",
"num-integer",
"num-iter",
"num-rational",
"num-traits",
"num-traits",
]
[[package]]
name = "num-complex"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
dependencies = [
name = "num-iter"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
dependencies = [
"autocfg",
"num-bigint",
"num-integer",
"num-traits",
]
[[package]]
name = "ordered-stream"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
dependencies = [
"futures-core",
"pin-project-lite",
]
[[package]]
[[package]]
name = "parking"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
name = "polling"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
dependencies = [
"autocfg",
"bitflags 1.3.2",
"cfg-if",
"concurrent-queue",
"libc",
"log",
"pin-project-lite",
"windows-sys 0.48.0",
]
[[package]]
name = "polling"
version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
dependencies = [
"cfg-if",
"concurrent-queue",
"pin-project-lite",
"rustix 0.38.31",
"tracing",
"windows-sys 0.52.0",
]
[[package]]
[[package]]
name = "proc-macro-crate"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
dependencies = [
"once_cell",
"toml_edit 0.19.15",
]
version = "0.37.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
dependencies = [
"bitflags 1.3.2",
"errno 0.3.8",
"io-lifetimes",
"libc",
"linux-raw-sys 0.3.8",
"windows-sys 0.48.0",
]
[[package]]
name = "rustix"
name = "secret-service"
version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95"
dependencies = [
"aes",
"block-modes",
"futures-util",
"generic-array",
"hkdf",
"num",
"once_cell",
"rand 0.8.5",
"serde",
"sha2 0.10.8",
"zbus",
]
[[package]]
]
[[package]]
name = "serde_repr"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
name = "sha1"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [
"cfg-if",
"cpufeatures",
"digest 0.10.7",
]
[[package]]
version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "socket2"
]
[[package]]
name = "thrussh"
version = "0.33.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e6540238a9adf83df6e66541c182a52acf892ab335595ca965c229ade8536f8"
dependencies = [
"bitflags 1.3.2",
"byteorder",
"cryptovec",
"digest 0.9.0",
"flate2",
"futures",
"generic-array",
"log",
"openssl",
"rand 0.8.5",
"sha2 0.9.9",
"thiserror",
"thrussh-keys 0.21.0",
"thrussh-libsodium",
"tokio",
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67c044d978aff4dfc0036a29ce10bfa190ab84381bb4551fd50fa0e0db2ef5f9"
dependencies = [
"dirs-next",
"futures",
"log",
"thiserror",
"tokio",
"whoami",
]
[[package]]
name = "thrussh-config"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a72cc51a2932b18d92f7289332d8564cec4a5014063722a9d3fdca52c5d8f5ab"
dependencies = [
"aes",
"bcrypt-pbkdf 0.6.2",
"bit-vec",
"block-modes",
"byteorder",
"cryptovec",
"data-encoding",
"dirs",
"futures",
"hmac 0.11.0",
"log",
"md5",
"num-bigint",
"num-integer",
"openssl",
"pbkdf2 0.8.0",
"rand 0.8.5",
"serde",
"serde_derive",
"sha2 0.9.9",
"thiserror",
"thrussh-libsodium",
"tokio",
"tokio-stream",
"yasna",
]
[[package]]
name = "thrussh-keys"
name = "tracing-attributes"
version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
]
[[package]]
name = "uds_windows"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
dependencies = [
"memoffset 0.9.0",
"tempfile",
"winapi",
]
[[package]]
name = "waker-fn"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
[[package]]
"linux-raw-sys 0.4.13",
"rustix 0.38.31",
]
[[package]]
name = "xdg-home"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
dependencies = [
"libc",
"winapi",
"linux-raw-sys",
"rustix",
]
[[package]]
name = "zbus"
version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
dependencies = [
"async-broadcast",
"async-executor",
"async-fs",
"async-io 1.13.0",
"async-lock 2.8.0",
"async-process",
"async-recursion",
"async-task",
"async-trait",
"blocking",
"byteorder",
"derivative",
"enumflags2",
"event-listener 2.5.3",
"futures-core",
"futures-sink",
"futures-util",
"hex",
"nix 0.26.4",
"once_cell",
"ordered-stream",
"rand 0.8.5",
"serde",
"serde_repr",
"sha1",
"static_assertions",
"tracing",
"uds_windows",
"winapi",
"xdg-home",
"zbus_macros",
"zbus_names",
"zvariant",
]
[[package]]
name = "zbus_macros"
version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"regex",
"syn 1.0.109",
"zvariant_utils",
name = "zbus_names"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
dependencies = [
"serde",
"static_assertions",
"zvariant",
]
[[package]]
[[package]]
name = "zvariant"
version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
dependencies = [
"byteorder",
"enumflags2",
"libc",
"serde",
"static_assertions",
"zvariant_derive",
]
[[package]]
name = "zvariant_derive"
version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 1.0.109",
"zvariant_utils",
]
[[package]]
name = "zvariant_utils"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]