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 = truepijul-config.workspace = trueanyhow.workspace = truelog.workspace = truerlimit.workspace = truetoml.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 = truepijul-config.workspace = truepijul-identity.workspace = truepijul-interaction.workspace = truepijul-repository.workspace = trueanyhow.workspace = trueasync-trait.workspace = truebyteorder.workspace = truebytes.workspace = truedirs-next.workspace = truefutures-util.workspace = truefutures.workspace = truekeyring.workspace = truelazy_static.workspace = truelog.workspace = trueregex.workspace = truereqwest.workspace = truesanakirja.workspace = trueserde_derive.workspace = trueserde_json.workspace = trueserde.workspace = truethrussh-config.workspace = truethrussh-keys.workspace = truethrussh.workspace = truetokio.workspace = trueurl.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 = truepijul-config.workspace = truepijul-interaction.workspace = truepijul-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 = truechrono.workspace = truedateparser.workspace = truedirs-next.workspace = truekeyring.workspace = truelog.workspace = trueserde_json.workspace = trueserde.workspace = truethiserror.workspace = truethrussh-keys.workspace = truetoml.workspace = truevalidator.workspace = truewhoami.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 = truedialoguer = { workspace = true, features = ["editor"] }dirs-next.workspace = trueedit.workspace = truelog.workspace = trueserde_derive.workspace = trueserde.workspace = truetoml.workspace = truewhoami.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 = truepijul-identity.workspace = truepijul-interaction.workspace = truepijul-remote.workspace = truepijul-repository.workspace = trueanyhow.workspace = trueasync-trait.workspace = trueatty.workspace = truebyteorder.workspace = truebytes.workspace = truecanonical-path.workspace = truechrono.workspace = trueclap = { workspace = true, features = ["derive", "cargo"] }clap_complete.workspace = truectrlc.workspace = truedata-encoding.workspace = truedateparser.workspace = truedirs-next.workspace = trueedit.workspace = trueenv_logger.workspace = truefutures-util.workspace = truefutures.workspace = truegit2 = { workspace = true, optional = true }human-panic.workspace = truehyper = { workspace = true, features = ["server"] }ignore.workspace = truekeyring.workspace = truelazy_static.workspace = truelog.workspace = trueopen.workspace = truepath-slash.workspace = trueptree.workspace = truerand.workspace = trueregex.workspace = truereqwest.workspace = truesanakirja.workspace = trueserde_derive.workspace = trueserde_json.workspace = trueserde.workspace = truetempfile.workspace = truetermcolor.workspace = truethiserror.workspace = truethrussh-config.workspace = truethrussh-keys.workspace = truethrussh.workspace = truetokio.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 = truevalidator.workspace = truewhoami.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 = trueexpectrl.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 = truebincode.workspace = truebitflags.workspace = trueblake3.workspace = truebs58.workspace = truebyteorder.workspace = truecfg-if.workspace = truechardetng.workspace = truechrono.workspace = truecrossbeam-deque.workspace = truecurve25519-dalek = { workspace = true, features = ["serde"] }data-encoding.workspace = truediffs.workspace = trueed25519-dalek = { workspace = true, features = ["serde"] }encoding_rs.workspace = truegeneric-array.workspace = truehmac.workspace = truelazy_static.workspace = truelog.workspace = truememchr.workspace = truenom.workspace = trueparking_lot.workspace = truepbkdf2.workspace = truerand.workspace = trueregex.workspace = truesanakirja.workspace = trueserde_derive.workspace = trueserde_json.workspace = trueserde.workspace = truesha2.workspace = truethiserror.workspace = truetoml.workspace = truetwox-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 = truedetone.workspace = trueenv_logger.workspace = truequickcheck_macros.workspace = truequickcheck.workspace = truerand_chacha.workspace = truerand.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",]