difftreelog
feat add progress bar
in: trunk
10 files changed
Cargo.lockdiffbeforeafterboth273 packageslockfile v3
Might be heavy and slow!
aead
0.5.2crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0depends onaes
0.8.2crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241depends onused byaes-gcm
0.10.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447cused byage
0.9.1crates.io↘ 29↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9e4dfef09bebad6d85efa8b6e1b2f7a809c4419d7135ab573c4fd133c0e8eaddepends on- aes
0.8.2 - aes-gcm
0.10.1 - age-core
0.9.0 - base64
0.13.1 - bcrypt-pbkdf
0.9.0 - bech32
0.9.1 - cbc
0.1.2 - chacha20poly1305
0.10.1 - cipher
0.4.4 - cookie-factory
0.3.2 - ctr
0.9.2 - curve25519-dalek
3.2.0 - hkdf
0.12.3 - hmac
0.12.1 - i18n-embed
0.13.8 - i18n-embed-fl
0.6.6 - lazy_static
1.4.0 - nom
7.1.3 - num-traits
0.2.15 - pin-project
1.0.12 - rand
0.7.3 - rand
0.8.5 - rsa
0.7.2 - rust-embed
6.6.1 - scrypt
0.10.0 - sha2
0.10.6 - subtle
2.4.1 - x25519-dalek
1.1.1 - zeroize
1.6.0
- aes
age-core
0.9.0crates.io↘ 9↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume3d2e815ac879dc23c1139e720d21c6cd4d1276345c772587285d965a69b8f32depends onused byaho-corasick
1.0.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04depends onused byalejandra
3.0.0github.com/kamadorueda/alejandra↘ 3↖ 1sourcegit+https://github.com/kamadorueda/alejandra#d00d03f0b45d2d1d6e0ae2d110c821b497d8fb09depends onused byandroid_system_properties
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311depends onused byanstream
0.3.1crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6342bd4f5a1205d7f41e94a41a901f5647c938cdfa96036338e8533c9d6c2450depends onused byanstyle
1.0.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7danstyle-parse
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57eedepends onused byanstyle-query
1.0.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494bdepends onused byanstyle-wincon
1.0.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188depends onused byanyhow
1.0.71crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8arc-swap
1.6.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6used byasync-trait
0.1.68crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842depends onused byautocfg
1.1.0crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fabase64
0.13.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8base64
0.21.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6aused bybcrypt-pbkdf
0.9.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3806a8db60cf56efee531616a34a6aaa9a114d6da2add861b0fa4a188881b2c7depends onused bybitflags
1.3.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718ablock-buffer
0.10.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71depends onused byblock-padding
0.3.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93depends onused byblowfish
0.9.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7depends onused bybumpalo
3.12.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8used bybyteorder
1.4.3crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610bytes
1.4.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70beused bycbc
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6depends onused bycbitset
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum29b6ad25ae296159fb0da12b970b2fe179b234584d7cd294c891e2bbb284466bdepends onused bycc
1.0.79crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91fcfg-if
1.0.0crates.io↘ 0↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fdchacha20
0.9.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818depends onused bychacha20poly1305
0.10.1crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35used bychrono
0.4.24crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673bdepends onused bycipher
0.4.4crates.io↘ 3↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3daddepends onclap
4.2.5crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8a1f23fa97e1d1641371b51f35535cb26959b8e27ab50d167a8b996b5bada819clap_builder
4.2.5crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0fdc5d93c358224b4d6867ef1356d740de2303e9892edc06c5340daeccd96babdepends onused byclap_derive
4.2.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4used byclap_lex
0.4.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1used bycodespan-reporting
0.11.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6edepends onused bycolorchoice
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumacbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7used byconst-oid
0.9.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913used bycookie-factory
0.3.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126bused bycore-foundation-sys
0.8.4crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efaused bycountme
2.0.4crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum328b822bdcba4d4e402be8d9adb6eebf269f969f8eadef977a553ff3c4fbcb58used bycpufeatures
0.2.7crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58depends oncrypto-common
0.1.6crates.io↘ 3↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3ctr
0.9.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835depends onused bycurve25519-dalek
3.2.0crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61used bycxx
1.0.94crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93used bycxx-build
1.0.94crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07bdepends onused bycxxbridge-flags
1.0.94crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bbused bycxxbridge-macro
1.0.94crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5depends onused bydashmap
5.4.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edcused byder
0.6.1crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4dedepends ondigest
0.9.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066depends onused bydigest
0.10.6crates.io↘ 4↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76fdisplaydoc
0.2.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886depends onused byenv_logger
0.10.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0used byerrno
0.3.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73aused byerrno-dragonfly
0.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bfdepends onused byfastrand
1.9.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501bedepends onused byfind-crate
0.6.3crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2depends onfleet
0.1.0workspace↘ 21↖ 0fleet-install-secrets
0.1.0workspace↘ 10↖ 0fluent
0.16.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7depends onfluent-bundle
0.15.2crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffddepends onused byfluent-langneg
0.13.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94depends onfluent-syntax
0.11.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78depends onfutures
0.3.28crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40depends onused byfutures-channel
0.3.28crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2depends onfutures-core
0.3.28crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8cfutures-executor
0.3.28crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0used byfutures-io
0.3.28crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964futures-macro
0.3.28crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72depends onused byfutures-sink
0.3.28crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6efutures-task
0.3.28crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65futures-util
0.3.28crates.io↘ 10↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533depends ongeneric-array
0.14.7crates.io↘ 2↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9adepends ongetrandom
0.1.16crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fceused bygetrandom
0.2.9crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4used byghash
0.5.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40depends onused byhashbrown
0.9.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04used byhashbrown
0.12.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888used byheck
0.4.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8used byhermit-abi
0.2.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7depends onused byhermit-abi
0.3.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286hkdf
0.12.3crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437depends onused byhmac
0.12.1crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5edepends onhostname
0.3.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867depends onused byhumantime
2.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4used byi18n-config
0.4.3crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3d9f93ceee6543011739bc81699b5e0cf1f23f3a80364649b6d80de8636bc8dfi18n-embed
0.13.8crates.io↘ 13↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2653dd1a8be0726315603f1c180b29f90e5b2a58f8b943d949d5170d9ad81101depends onused byi18n-embed-fl
0.6.6crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4b5809e2295beeb55013705c3b947cbbe83b8cadf3c73a1e6dca06381927212adepends onused byi18n-embed-impl
0.8.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0db2330e035808eb064afb67e6743ddce353763af3e0f2bdfc2476e00ce76136used byiana-time-zone
0.1.56crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37cdepends onused byiana-time-zone-haiku
0.1.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dcadepends onused byinout
0.1.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5depends onused byinstant
0.1.12crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2cdepends onused byintl_pluralrules
7.0.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972depends onused byintl-memoizer
0.5.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66fdepends onio_tee
0.1.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304used byio-lifetimes
1.0.10crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220is-terminal
0.4.7crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumadcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1fitoa
1.0.6crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6used byjs-sys
0.3.61crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730depends onlazy_static
1.4.0crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646depends onlibc
0.2.142crates.io↘ 0↖ 21sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317used by- android_system_properties
0.1.5 - cpufeatures
0.2.7 - errno
0.3.1 - errno-dragonfly
0.1.2 - getrandom
0.1.16 - getrandom
0.2.9 - hermit-abi
0.2.6 - hostname
0.3.1 - io-lifetimes
1.0.10 - libmimalloc-sys
0.1.33 - mio
0.8.6 - nix
0.26.2 - num_cpus
1.15.0 - parking_lot_core
0.9.7 - rand
0.7.3 - rand
0.8.5 - rustix
0.37.18 - signal-hook-registry
1.4.1 - socket2
0.4.9 - time
0.1.45 - tokio
1.28.0
- android_system_properties
libm
0.2.6crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffblibmimalloc-sys
0.1.33crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4ac0e912c8ef1b735e92369695618dc5b1819f5a7bf3f167301a3ba1cea515edepends onused bylink-cplusplus
1.0.8crates.io↘ 1↖ 1linked-hash-map
0.5.6crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770fused bylinux-raw-sys
0.3.6crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4cused bylock_api
0.4.9crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4dfdepends onlog
0.4.17crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumabb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382edepends onmatch_cfg
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4used bymatchers
0.1.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558depends onused bymemchr
2.5.0crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566dmemoffset
0.6.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79cedepends onused bymemoffset
0.7.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4depends onused bymimalloc
0.1.37crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e2894987a3459f3ffb755608bd82188f8ed00d0ae077f1edea29c068d639d98depends onused byminimal-lexical
0.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79aused bymio
0.8.6crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9used bynix
0.26.2crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1aused bynixlike
0.1.0workspace↘ 9↖ 1nom
7.1.3crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4adepends onused bynu-ansi-term
0.46.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84depends onused bynum_cpus
1.15.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593bdepends onused bynum-bigint-dig
0.8.2crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905depends onused bynum-integer
0.1.45crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9depends onnum-iter
0.1.43crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252used bynum-traits
0.2.15crates.io↘ 2↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcddepends ononce_cell
1.17.1crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3opaque-debug
0.3.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5overload
0.1.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39used byparking_lot
0.12.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228fdepends onused byparking_lot_core
0.9.7crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521pbkdf2
0.11.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917depends onpeg
0.8.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma07f2cafdc3babeebc087e499118343442b742cc7c31b4d054682cc598508554depends onused bypeg-macros
0.8.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4a90084dc05cf0428428e3d12399f39faad19b0909f64fb9170c9fdd6d9cd49bused bypeg-runtime
0.8.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9fa00462b37ead6d11a82c9d568b26682d78e0477dc02d1966c013af80969739used bypin-project
1.0.12crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6eccdepends onused bypin-project-internal
1.0.12crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55depends onused bypin-project-lite
0.2.9crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116pin-utils
0.1.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184used bypkcs1
0.4.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumeff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719depends onused bypkcs8
0.9.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4baused bypoly1305
0.8.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abfused bypolyval
0.6.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6used byppv-lite86
0.2.17crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6deproc-macro-error
1.0.4crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumda25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38cused byproc-macro-error-attr
1.0.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869used byproc-macro2
1.0.56crates.io↘ 1↖ 23sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435depends onused by- async-trait
0.1.68 - clap_derive
4.2.0 - cxx-build
1.0.94 - cxxbridge-macro
1.0.94 - displaydoc
0.2.3 - futures-macro
0.3.28 - i18n-embed-fl
0.6.6 - i18n-embed-impl
0.8.0 - peg-macros
0.8.1 - pin-project-internal
1.0.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
1.0.4 - quote
1.0.26 - rust-embed-impl
6.5.0 - serde_derive
1.0.160 - syn
1.0.109 - syn
2.0.15 - thiserror-impl
1.0.40 - tokio-macros
2.1.0 - tracing-attributes
0.1.24 - wasm-bindgen-backend
0.2.84 - wasm-bindgen-macro-support
0.2.84 - zeroize_derive
1.4.2
- async-trait
quote
1.0.26crates.io↘ 1↖ 23sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fcdepends onused by- async-trait
0.1.68 - clap_derive
4.2.0 - cxx-build
1.0.94 - cxxbridge-macro
1.0.94 - displaydoc
0.2.3 - futures-macro
0.3.28 - i18n-embed-fl
0.6.6 - i18n-embed-impl
0.8.0 - peg-macros
0.8.1 - pin-project-internal
1.0.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
1.0.4 - rust-embed-impl
6.5.0 - serde_derive
1.0.160 - syn
1.0.109 - syn
2.0.15 - thiserror-impl
1.0.40 - tokio-macros
2.1.0 - tracing-attributes
0.1.24 - wasm-bindgen-backend
0.2.84 - wasm-bindgen-macro
0.2.84 - wasm-bindgen-macro-support
0.2.84 - zeroize_derive
1.4.2
- async-trait
rand
0.7.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03used byrand
0.8.5crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404rand_chacha
0.2.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402depends onused byrand_chacha
0.3.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88depends onused byrand_core
0.5.1crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19depends onrand_core
0.6.4crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922cdepends onrand_hc
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613cdepends onused byredox_syscall
0.2.16crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519adepends onused byredox_syscall
0.3.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29depends onused byregex
1.8.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaf83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370regex-automata
0.1.10crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132depends onused byregex-syntax
0.6.29crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1used byregex-syntax
0.7.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3cused byrnix
0.10.2crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8024a523e8836f1a5d051203dc00d833357fee94e351b51348dfaeca5364daa9depends onused byron
0.8.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bffdepends onused byrowan
0.12.6crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1b36e449f3702f3b0c821411db1cbdf30fb451726a9456dce5dabcd44420043used byrsa
0.7.2crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099cdepends onused byrust-embed
6.6.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1b68543d5527e158213414a92832d2aab11a84d2571a5eb021ebe22c43aab066used byrust-embed-impl
6.5.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4d4e0f0ced47ded9a68374ac145edd65a6c1fa13a96447b873660b2a568a0fd7used byrust-embed-utils
7.5.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum512b0ab6853f7e14e3c8754acb43d6f748bb9ced66aa5915a6553ac8213f7731depends onrustc-hash
1.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2rustix
0.37.18crates.io↘ 6↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8bbfc1d1c7c40c01715f47d71444744a81669ca84e8b63e25a55e169b1f86433ryu
1.0.13crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041used bysalsa20
0.10.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213depends onused bysame-file
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502depends onused byscopeguard
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cdused byscratch
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1used byscrypt
0.10.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45dused bysecrecy
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91edepends onused byself_cell
0.10.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8afused byserde
1.0.160crates.io↘ 1↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216cdepends onserde_derive
1.0.160crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77dfdepends onused byserde_json
1.0.96crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1depends onserde-transcode
1.1.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2depends onused bysha2
0.10.6crates.io↘ 3↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0depends onsharded-slab
0.1.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31depends onused bysignal-hook-registry
1.4.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1depends onused bysignature
1.6.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7cdepends onused byslab
0.4.8crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2ddepends onused bysmallvec
1.10.0crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0smol_str
0.1.24crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfad6c857cbab2627dcf01ec85a623ca4e7dcb5691cbaa3d7fb7653671f0d09c9depends onused bysocket2
0.4.9crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662depends onused byspin
0.5.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042dused byspki
0.6.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212bdepends onused bystatic_assertions
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543fused bystrsim
0.10.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623subtle
2.4.1crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601syn
1.0.109crates.io↘ 3↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237syn
2.0.15crates.io↘ 3↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822tempfile
3.5.0crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998termcolor
1.2.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbe55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6depends onterminal_size
0.2.6crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237depends onused bytext-size
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum288cb548dbe72b652243ea797201f3d481a0609a967980fcc5b2315ea811560aused bythiserror
1.0.40crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebacdepends onthiserror-impl
1.0.40crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569fdepends onused bythread_local
1.1.7crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152depends onused bytime
0.1.45crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805aused bytime
0.3.20crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890used bytime-core
0.1.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fdused bytime-macros
0.2.8crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36depends onused bytinystr
0.7.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5efdepends onused bytokio
1.28.0crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136fdepends onused bytokio-macros
2.1.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675edepends onused bytokio-util
0.7.8crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7ddepends onused bytoml
0.5.11crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234depends ontracing
0.1.37crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8tracing-attributes
0.1.24crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74depends onused bytracing-core
0.1.30crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213adepends ontracing-log
0.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922used bytracing-subscriber
0.3.17crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77depends onused bytype-map
0.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46depends onused bytypenum
1.16.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bbaunic-langid
0.9.1crates.io↘ 1↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2fdepends onunic-langid-impl
0.9.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ffdepends onused byunicase
2.6.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6depends onused byunicode-ident
1.0.8crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4unicode-width
0.1.10crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8buniversal-hash
0.5.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5depends onused byutf8parse
0.2.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370avaluable
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6dused byversion_check
0.9.4crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483fwalkdir
2.3.3crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698depends onwasi
0.9.0+wasi-snapshot-preview1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519used bywasi
0.10.0+wasi-snapshot-preview1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31fused bywasi
0.11.0+wasi-snapshot-preview1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423used bywasm-bindgen
0.2.84crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53bdepends onwasm-bindgen-backend
0.2.84crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9depends onwasm-bindgen-macro
0.2.84crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5used bywasm-bindgen-macro-support
0.2.84crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6used bywinapi
0.3.9crates.io↘ 2↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419winapi-i686-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6used bywinapi-util
0.1.5crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178depends onwinapi-x86_64-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183fused bywindows
0.48.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700fdepends onused bywindows_aarch64_gnullvm
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8used bywindows_aarch64_gnullvm
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bcused bywindows_aarch64_msvc
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43used bywindows_aarch64_msvc
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3used bywindows_i686_gnu
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84fused bywindows_i686_gnu
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241used bywindows_i686_msvc
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060used bywindows_i686_msvc
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00used bywindows_x86_64_gnu
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36used bywindows_x86_64_gnu
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1used bywindows_x86_64_gnullvm
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3used bywindows_x86_64_gnullvm
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953used bywindows_x86_64_msvc
0.42.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0used bywindows_x86_64_msvc
0.48.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378aused bywindows-sys
0.45.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0depends onwindows-sys
0.48.0crates.io↘ 1↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9depends onwindows-targets
0.42.2crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071depends onused bywindows-targets
0.48.0crates.io↘ 7↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5depends onx25519-dalek
1.1.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4fused byz85
3.0.5crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2a599daf1b507819c1121f0bf87fa37eb19daac6aff3aefefd4e6e2e0f2020fczeroize
1.6.0crates.io↘ 1↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9depends onzeroize_derive
1.4.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69depends onused by
README.mddiffbeforeafterboth--- a/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# fleet
-
-Early prototype stage
-
-## Advantages over existing configuration systems (NixOps/Morph)
-
-- Modules can configure multiple hosts at once (I.e for wireguard/kubernetes installation)
-- Secrets can be securely stored in Git (No one except target hosts can decrypt them)
cmds/fleet/Cargo.tomldiffbeforeafterboth--- a/cmds/fleet/Cargo.toml
+++ b/cmds/fleet/Cargo.toml
@@ -27,8 +27,10 @@
"unicode",
] }
tokio = { version = "1.14.0", features = ["full"] }
-tracing = "0.1.29"
-tracing-subscriber = { version = "0.3.3", features = ["fmt", "env-filter"] }
+tracing = "0.1"
+tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
tokio-util = { version = "0.7.0", features = ["codec"] }
async-trait = "0.1.52"
futures = "0.3.17"
+tracing-indicatif = "0.3.5"
+indicatif = "0.17.7"
cmds/fleet/src/cmds/secrets/mod.rsdiffbeforeafterboth--- a/cmds/fleet/src/cmds/secrets/mod.rs
+++ b/cmds/fleet/src/cmds/secrets/mod.rs
@@ -11,7 +11,7 @@
path::PathBuf,
};
use tokio::fs::read_to_string;
-use tracing::{info, warn, error};
+use tracing::{error, info, warn};
#[derive(Parser)]
pub enum Secrets {
@@ -281,8 +281,8 @@
secret.owners.first()
};
let Some(identity_holder) = identity_holder else {
- bail!("no available holder found");
- };
+ bail!("no available holder found");
+ };
let target_recipients = futures::stream::iter(&target_machines)
.then(|m| async { config.key(m).await })
.collect::<Vec<_>>()
@@ -365,7 +365,9 @@
data.owners = expected_owners;
config.replace_shared(name.to_owned(), data);
} else if let Some(generator) = config
- .shared_config_attr::<Option<String>>(&format!("sharedSecrets.\"{name}\".generator"))
+ .shared_config_attr::<Option<String>>(&format!(
+ "sharedSecrets.\"{name}\".generator"
+ ))
.await?
{
todo!("regenerate secret {name} with {generator}");
cmds/fleet/src/command.rsdiffbeforeafterboth--- a/cmds/fleet/src/command.rs
+++ b/cmds/fleet/src/command.rs
@@ -1,7 +1,6 @@
-use std::{ffi::OsStr, process::Stdio, task::Poll};
+use std::{collections::HashMap, ffi::OsStr, process::Stdio, task::Poll};
use anyhow::{Context, Result};
-use async_trait::async_trait;
use futures::StreamExt;
use serde::{
de::{DeserializeOwned, Visitor},
@@ -9,7 +8,8 @@
};
use tokio::{io::AsyncRead, process::Command, select};
use tokio_util::codec::{BytesCodec, FramedRead, LinesCodec};
-use tracing::{info, warn};
+use tracing::{info, info_span, warn, Span};
+use tracing_indicatif::span_ext::IndicatifSpanExt;
fn escape_bash(input: &str, out: &mut String) {
const TO_ESCAPE: &str = "$ !\"#&'()*,;<>?[\\]^`{|}";
@@ -126,26 +126,15 @@
pub async fn run(self) -> Result<()> {
let str = self.clone().into_string();
- info!("running {str}");
- let mut cmd = self.into_command();
- cmd.inherit_stdio();
- let out = cmd.spawn()?.wait_with_output().await?;
- if !out.status.success() {
- anyhow::bail!("command '{}' failed with status {}", str, out.status);
- }
+ let cmd = self.into_command();
+ run_nix_inner(str, cmd, &mut PlainHandler).await?;
Ok(())
}
pub async fn run_string(self) -> Result<String> {
let str = self.clone().into_string();
- info!("running {str}");
- let mut cmd = self.into_command();
- cmd.inherit_stdio();
- cmd.stdout(Stdio::piped());
- let out = cmd.spawn()?.wait_with_output().await?;
- if !out.status.success() {
- anyhow::bail!("command '{}' failed with status {}", str, out.status);
- }
- Ok(String::from_utf8(out.stdout)?)
+ let cmd = self.into_command();
+ let v = run_nix_inner_stdout(str, cmd, &mut PlainHandler).await?;
+ Ok(v)
}
pub async fn run_nix_json<T: DeserializeOwned>(self) -> Result<T> {
let str = self.run_nix_string().await?;
@@ -154,17 +143,14 @@
pub async fn run_nix_string(self) -> Result<String> {
let str = self.clone().into_string();
- let mut cmd = self.into_command();
- cmd.stdout(Stdio::piped());
- run_nix_inner(str, cmd).await.map(|v| v.unwrap())
+ let cmd = self.into_command();
+ run_nix_inner_stdout(str, cmd, &mut NixHandler::default()).await
}
pub async fn run_nix(self) -> Result<()> {
let str = self.clone().into_string();
let mut cmd = self.into_command();
cmd.stdout(Stdio::inherit());
- run_nix_inner(str, cmd).await.map(|v| {
- assert!(v.is_none());
- })
+ run_nix_inner(str, cmd, &mut NixHandler::default()).await
}
}
@@ -179,101 +165,290 @@
}
}
-async fn run_nix_inner(str: String, mut cmd: Command) -> Result<Option<String>> {
+async fn run_nix_inner_stdout(
+ str: String,
+ cmd: Command,
+ handler: &mut dyn Handler,
+) -> Result<String> {
+ Ok(run_nix_inner_raw(str, cmd, true, handler)
+ .await?
+ .expect("has out"))
+}
+async fn run_nix_inner(str: String, cmd: Command, handler: &mut dyn Handler) -> Result<()> {
+ let v = run_nix_inner_raw(str, cmd, false, handler).await?;
+ assert!(v.is_none());
+ Ok(())
+}
+
+trait Handler {
+ fn handle_err(&mut self, e: &str);
+ fn handle_info(&mut self, e: &str);
+}
+
+struct PlainHandler;
+impl Handler for PlainHandler {
+ fn handle_err(&mut self, e: &str) {
+ info!(target: "log", "{e}");
+ }
+
+ fn handle_info(&mut self, e: &str) {
+ info!(target: "log", "{e}");
+ }
+}
+
+#[derive(Default)]
+struct NixHandler {
+ spans: HashMap<u64, Span>,
+}
+impl Handler for NixHandler {
+ fn handle_err(&mut self, e: &str) {
+ if let Some(e) = e.strip_prefix("@nix ") {
+ let log: NixLog = match serde_json::from_str(e) {
+ Ok(l) => l,
+ Err(err) => {
+ warn!("failed to parse nix log line {:?}: {}", e, err);
+ return;
+ }
+ };
+ match log {
+ NixLog::Msg { msg, raw_msg, .. } => {
+ if !(msg.starts_with("\u{1b}[35;1mwarning:\u{1b}[0m Git tree '") && msg.ends_with("' is dirty"))
+ && !msg.starts_with("\u{1b}[35;1mwarning:\u{1b}[0m not writing modified lock file of flake")
+ && msg != "\u{1b}[35;1mwarning:\u{1b}[0m \u{1b}[31;1merror:\u{1b}[0m SQLite database '\u{1b}[35;1m/nix/var/nix/db/db.sqlite\u{1b}[0m' is busy" {
+ if let Some(raw_msg) = raw_msg {
+ if !msg.is_empty() {
+ info!(target: "nix", "{}\n{}", raw_msg.trim_end(), msg.trim_end())
+ } else {
+ info!(target: "nix", "{}", raw_msg.trim_end())
+ }
+ } else {
+ info!(target: "nix", "{}", msg.trim_end())
+ }
+ }
+ }
+ NixLog::Start {
+ ref fields,
+ typ,
+ id,
+ ..
+ } if typ == 105 && !fields.is_empty() => {
+ if let [LogField::String(drv), ..] = &fields[..] {
+ let mut drv = drv.as_str();
+ if let Some(pkg) = drv.strip_prefix("/nix/store/") {
+ let mut it = pkg.splitn(2, '-');
+ it.next();
+ if let Some(pkg) = it.next() {
+ drv = pkg;
+ }
+ }
+ info!(target: "nix","building {}", drv);
+ let span = info_span!("build", drv);
+ span.pb_start();
+ self.spans.insert(id, span);
+ } else {
+ warn!("bad build log: {:?}", log)
+ }
+ }
+ NixLog::Start {
+ ref fields,
+ typ,
+ id,
+ ..
+ } if typ == 100 && fields.len() >= 3 => {
+ if let [LogField::String(drv), LogField::String(from), LogField::String(to), ..] =
+ &fields[..]
+ {
+ let mut drv = drv.as_str();
+
+ if let Some(pkg) = drv.strip_prefix("/nix/store/") {
+ let mut it = pkg.splitn(2, '-');
+ it.next();
+ if let Some(pkg) = it.next() {
+ drv = pkg;
+ }
+ }
+ info!(target: "nix","copying {} {} -> {}", drv, from, to);
+ let span = info_span!("copy", from, to, drv);
+ span.pb_start();
+ self.spans.insert(id, span);
+ } else {
+ warn!("bad copy log: {:?}", log)
+ }
+ }
+ NixLog::Start { text, typ, id, .. }
+ if typ == 0 || typ == 102 || typ == 103 || typ == 104 =>
+ {
+ if !text.is_empty()
+ && text != "querying info about missing paths"
+ && text != "copying 0 paths"
+ {
+ let span = info_span!("job");
+ span.pb_start();
+ span.pb_set_message(text.trim());
+ self.spans.insert(id, span);
+ info!(target: "nix", "{}", text);
+ }
+ }
+ NixLog::Start {
+ text,
+ level: 0,
+ typ: 108,
+ ..
+ } if text.is_empty() => {
+ // Cache lookup? Coupled with copy log
+ }
+ NixLog::Start {
+ text,
+ level: 4,
+ typ: 109,
+ ..
+ } if text.starts_with("querying info about ") => {
+ // Cache lookup
+ }
+ NixLog::Start {
+ text,
+ level: 4,
+ typ: 101,
+ ..
+ } if text.starts_with("downloading ") => {
+ // NAR downloading, coupled with copy log
+ }
+ NixLog::Start {
+ text,
+ level: 1,
+ typ: 111,
+ ..
+ } if text.starts_with("waiting for a machine to build ") => {
+ // Useless repeating notification about build
+ }
+ NixLog::Start {
+ text,
+ level: 3,
+ typ: 111,
+ ..
+ } if text.starts_with("resolved derivation: ") => {
+ // CA resolved
+ }
+ NixLog::Start {
+ text,
+ level: 1,
+ typ: 111,
+ id,
+ ..
+ } if text.starts_with("waiting for lock on ") => {
+ let mut drv = text.strip_prefix("waiting for lock on ").unwrap();
+ if let Some(txt) = drv.strip_prefix("\u{1b}[35;1m'") {
+ drv = txt;
+ }
+ if let Some(txt) = drv.strip_suffix("'\u{1b}[0m") {
+ drv = txt;
+ }
+ if let Some(txt) = drv.split("', '").next() {
+ drv = txt;
+ }
+ if let Some(pkg) = drv.strip_prefix("/nix/store/") {
+ let mut it = pkg.splitn(2, '-');
+ it.next();
+ if let Some(pkg) = it.next() {
+ drv = pkg;
+ }
+ }
+ let span = info_span!("waiting on drv", drv);
+ span.pb_start();
+ self.spans.insert(id, span);
+ // Concurrent build of the same message
+ }
+ NixLog::Stop { id, .. } => {
+ self.spans.remove(&id);
+ }
+ NixLog::Result { fields, id, typ } if typ == 101 && !fields.is_empty() => {
+ if let Some(span) = self.spans.get(&id) {
+ if let LogField::String(s) = &fields[0] {
+ span.pb_set_message(s.trim());
+ } else {
+ warn!("bad fields: {fields:?}");
+ }
+ } else {
+ warn!("unknown result id: {id} {typ} {fields:?}");
+ }
+ // dbg!(fields, id, typ);
+ }
+ NixLog::Result { fields, id, typ } if typ == 105 && fields.len() >= 4 => {
+ if let Some(span) = self.spans.get(&id) {
+ if let [LogField::Num(done), LogField::Num(expected), LogField::Num(_running), LogField::Num(_failed)] =
+ &fields[..4]
+ {
+ span.pb_set_length(*expected);
+ span.pb_set_position(*done);
+ } else {
+ warn!("bad fields: {fields:?}");
+ }
+ } else {
+ // warn!("unknown result id: {id} {typ} {fields:?}");
+ // Unaccounted progress.
+ }
+ // dbg!(fields, id, typ);
+ }
+ NixLog::Result { typ, .. } if typ == 104 || typ == 106 => {
+ // Set phase, expected
+ }
+ _ => warn!("unknown log: {:?}", log),
+ };
+ } else {
+ warn!(target = "nix", "unknown: {}", e.trim())
+ }
+ }
+ fn handle_info(&mut self, o: &str) {
+ self.handle_err(o)
+ }
+}
+
+async fn run_nix_inner_raw(
+ str: String,
+ mut cmd: Command,
+ want_stdout: bool,
+ handler: &mut dyn Handler,
+) -> Result<Option<String>> {
info!("running {str}");
cmd.arg("--log-format").arg("internal-json");
cmd.stderr(Stdio::piped());
+ cmd.stdout(Stdio::piped());
let mut child = cmd.spawn()?;
let mut stderr = child.stderr.take().unwrap();
- let stdout = child.stdout.take();
- let wants_stdout = stdout.is_some();
+ let stdout = child.stdout.take().unwrap();
let mut err = FramedRead::new(&mut stderr, LinesCodec::new());
- let mut out: Box<dyn AsyncRead + Unpin> = stdout
- .map(|s| Box::new(s) as Box<dyn AsyncRead + Unpin>)
+ let mut out: Option<Box<dyn AsyncRead + Unpin>> = Some(Box::new(stdout));
+ let mut ob = want_stdout
+ .then(|| out.take().unwrap())
+ .unwrap_or_else(|| Box::new(EmptyAsyncRead));
+ let mut ol = (!want_stdout)
+ .then(|| out.take().unwrap())
.unwrap_or_else(|| Box::new(EmptyAsyncRead));
- let mut out = FramedRead::new(&mut out, BytesCodec::new());
+ let mut ob = FramedRead::new(&mut ob, BytesCodec::new());
+ let mut ol = FramedRead::new(&mut ol, LinesCodec::new());
// while let Some(line) = read.next().await? {}
- let mut out_buf = if wants_stdout { Some(vec![]) } else { None };
+ let mut out_buf = if want_stdout { Some(vec![]) } else { None };
loop {
select! {
e = err.next() => {
if let Some(e) = e {
let e = e?;
- if let Some(e) = e.strip_prefix("@nix ") {
-
- let log: NixLog = match serde_json::from_str(e) {
- Ok(l) => l,
- Err(err) => {
- warn!("failed to parse nix log line {:?}: {}", e, err);
- continue;
- },
- };
- match log {
- NixLog::Msg { msg, raw_msg, .. } => {
- if !(msg.starts_with("\u{1b}[35;1mwarning:\u{1b}[0m Git tree '") && msg.ends_with("' is dirty"))
- && !msg.starts_with("\u{1b}[35;1mwarning:\u{1b}[0m not writing modified lock file of flake")
- && msg != "\u{1b}[35;1mwarning:\u{1b}[0m \u{1b}[31;1merror:\u{1b}[0m SQLite database '\u{1b}[35;1m/nix/var/nix/db/db.sqlite\u{1b}[0m' is busy" {
- if let Some(raw_msg) = raw_msg {
- info!(target: "nix", "{raw_msg}\n{msg}")
- }else {
- info!(target: "nix", "{msg}")
-
- }
- }
- },
- NixLog::Start { ref fields, typ, .. } if typ == 105 && !fields.is_empty() => {
- if let [LogField::String(drv), ..] = &fields[..] {
- info!(target: "nix","building {}", drv)
- } else {
- warn!("bad build log: {:?}", log)
- }
- },
- NixLog::Start { ref fields, typ, .. } if typ == 100 && fields.len() >= 3 => {
- if let [LogField::String(drv), LogField::String(from), LogField::String(to), ..] = &fields[..] {
- info!(target: "nix","copying {} {} -> {}", drv, from, to)
- } else {
- warn!("bad copy log: {:?}", log)
- }
- },
- NixLog::Start { text, typ, .. } if typ == 0 || typ == 102 || typ == 103 || typ == 104 => {
- if !text.is_empty() && text != "querying info about missing paths" && text != "copying 0 paths" {
- info!(target: "nix", "{}", text)
- }
- },
- NixLog::Start { text, level: 0, typ: 108, .. } if text.is_empty() => {
- // Cache lookup? Coupled with copy log
- },
- NixLog::Start { text, level: 4, typ: 109, .. } if text.starts_with("querying info about ") => {
- // Cache lookup
- }
- NixLog::Start { text, level: 4, typ: 101, .. } if text.starts_with("downloading ") => {
- // NAR downloading, coupled with copy log
- }
- NixLog::Start { text, level: 1, typ: 111, .. } if text.starts_with("waiting for a machine to build ") => {
- // Useless repeating notification about build
- }
- NixLog::Start { text, level: 3, typ: 111, .. } if text.starts_with("resolved derivation: ") => {
- // CA resolved
- }
- NixLog::Start { text, level: 1, typ: 111, .. } if text.starts_with("waiting for lock on ") => {
- // Concurrent build of the same message
- }
- NixLog::Stop { .. } => {},
- NixLog::Result { .. } => {},
- _ => warn!("unknown log: {:?}", log)
- };
- } else {
- warn!(target="nix","unknown: {}", e)
- }
+ handler.handle_err(&e);
}
},
- o = out.next() => {
+ o = ob.next() => {
if let Some(o) = o {
out_buf.as_mut().expect("stdout == wants_stdout").extend_from_slice(&o?);
}
},
+ o = ol.next() => {
+ if let Some(o) = o {
+ let o = o?;
+ handler.handle_info(&o);
+ }
+ },
code = child.wait() => {
let code = code?;
if !code.success() {
@@ -285,17 +460,6 @@
}
Ok(out_buf.map(String::from_utf8).transpose()?)
-}
-
-#[async_trait]
-pub trait CommandExt {
- // async fn run_nix(&mut self) -> Result<()>;
- // async fn run_nix_json<T: DeserializeOwned>(&mut self) -> Result<T>;
- // async fn run_nix_string(&mut self) -> Result<String>;
- // async fn run(&mut self) -> Result<()>;
- // async fn run_json<T: DeserializeOwned>(&mut self) -> Result<T>;
- // async fn run_string(&mut self) -> Result<String>;
- fn inherit_stdio(&mut self) -> &mut Self;
}
#[derive(Debug)]
@@ -361,14 +525,7 @@
id: u64,
#[serde(rename = "type")]
typ: u32,
+ #[serde(default)]
+ fields: Vec<LogField>,
},
-}
-
-#[async_trait]
-impl CommandExt for Command {
- fn inherit_stdio(&mut self) -> &mut Self {
- self.stderr(Stdio::inherit());
- self.stdout(Stdio::inherit());
- self
- }
}
cmds/fleet/src/host.rsdiffbeforeafterboth--- a/cmds/fleet/src/host.rs
+++ b/cmds/fleet/src/host.rs
@@ -8,7 +8,7 @@
sync::Arc,
};
-use anyhow::{Result, bail, Context};
+use anyhow::{bail, Context, Result};
use clap::{ArgGroup, Parser};
use serde::de::DeserializeOwned;
use tempfile::NamedTempFile;
@@ -61,7 +61,12 @@
command.run().await
}
#[must_use]
- pub async fn run_string_on(&self, host: &str, mut command: MyCommand, sudo: bool) -> Result<String> {
+ pub async fn run_string_on(
+ &self,
+ host: &str,
+ mut command: MyCommand,
+ sudo: bool,
+ ) -> Result<String> {
if sudo {
command = command.sudo();
}
@@ -87,8 +92,7 @@
.arg(self.configuration_attr_name("configuredHosts"))
.args(["--apply", "builtins.attrNames", "--json", "--show-trace"])
.args(&self.nix_args);
- cmd.run_nix_json()
- .await
+ cmd.run_nix_json().await
}
pub async fn shared_config_attr<T: DeserializeOwned>(&self, attr: &str) -> Result<T> {
let mut cmd = MyCommand::new("nix");
@@ -96,8 +100,7 @@
.arg(self.configuration_attr_name(&format!("configUnchecked.{}", attr)))
.args(["--json", "--show-trace"])
.args(&self.nix_args);
- cmd.run_nix_json()
- .await
+ cmd.run_nix_json().await
}
pub async fn shared_config_attr_names(&self, attr: &str) -> Result<Vec<String>> {
let mut cmd = MyCommand::new("nix");
@@ -106,8 +109,7 @@
.args(["--apply", "builtins.attrNames"])
.args(["--json", "--show-trace"])
.args(&self.nix_args);
- cmd.run_nix_json()
- .await
+ cmd.run_nix_json().await
}
pub async fn config_attr<T: DeserializeOwned>(&self, host: &str, attr: &str) -> Result<T> {
let mut cmd = MyCommand::new("nix");
@@ -120,8 +122,7 @@
)
.args(["--json", "--show-trace"])
.args(&self.nix_args);
- cmd.run_nix_json()
- .await
+ cmd.run_nix_json().await
}
pub(super) fn data(&self) -> Ref<FleetData> {
@@ -151,14 +152,14 @@
pub fn list_secrets(&self, host: &str) -> Vec<String> {
let data = self.data();
let Some(host_secrets) = data.host_secrets.get(host) else {
- return Vec::new();
+ return Vec::new();
};
host_secrets.keys().cloned().collect()
}
pub fn has_secret(&self, host: &str, secret: &str) -> bool {
let data = self.data();
let Some(host_secrets) = data.host_secrets.get(host) else {
- return false;
+ return false;
};
host_secrets.contains_key(secret)
}
@@ -168,23 +169,38 @@
host_secrets.insert(secret, value);
}
- pub async fn decrypt_on_host(&self, host: &str, data: Vec<u8>) -> Result<Vec<u8>>{
+ pub async fn decrypt_on_host(&self, host: &str, data: Vec<u8>) -> Result<Vec<u8>> {
let data = z85::encode(&data);
let mut cmd = MyCommand::new("fleet-install-secrets");
cmd.arg("decrypt").eqarg("--secret", data);
cmd = cmd.sudo().ssh(host);
- let encoded = cmd.run_string().await.context("failed to call remote host for decrypt")?.trim().to_owned();
+ let encoded = cmd
+ .run_string()
+ .await
+ .context("failed to call remote host for decrypt")?
+ .trim()
+ .to_owned();
Ok(z85::decode(encoded).context("bad encoded data? outdated host?")?)
}
- pub async fn reencrypt_on_host(&self, host: &str, data: Vec<u8>, targets: Vec<String>) -> Result<Vec<u8>>{
+ pub async fn reencrypt_on_host(
+ &self,
+ host: &str,
+ data: Vec<u8>,
+ targets: Vec<String>,
+ ) -> Result<Vec<u8>> {
let data = z85::encode(&data);
let mut recmd = MyCommand::new("fleet-install-secrets");
- recmd.arg("reencrypt").eqarg("--secret",data);
+ recmd.arg("reencrypt").eqarg("--secret", data);
for target in targets {
recmd.eqarg("--targets", target);
}
recmd = recmd.sudo().ssh(host);
- let encoded = recmd.run_string().await.context("failed to call remote host for decrypt")?.trim().to_owned();
+ let encoded = recmd
+ .run_string()
+ .await
+ .context("failed to call remote host for decrypt")?
+ .trim()
+ .to_owned();
Ok(z85::decode(encoded).context("bad encoded data? outdated host?")?)
}
@@ -192,11 +208,11 @@
pub fn host_secret(&self, host: &str, secret: &str) -> Result<FleetSecret> {
let data = self.data();
let Some(host_secrets) = data.host_secrets.get(host) else {
- bail!("no secrets for machine {host}");
- };
+ bail!("no secrets for machine {host}");
+ };
let Some(secret) = host_secrets.get(secret) else {
- bail!("machine {host} has no secret {secret}");
- };
+ bail!("machine {host} has no secret {secret}");
+ };
Ok(secret.clone())
}
#[must_use]
cmds/fleet/src/main.rsdiffbeforeafterboth--- a/cmds/fleet/src/main.rs
+++ b/cmds/fleet/src/main.rs
@@ -7,16 +7,19 @@
use std::ffi::OsString;
use std::io;
+use std::time::Duration;
use anyhow::{anyhow, bail, Result};
use clap::Parser;
use cmds::{build_systems::BuildSystems, info::Info, secrets::Secrets};
use host::{Config, FleetOpts};
+use indicatif::{ProgressState, ProgressStyle};
use tokio::fs;
use tokio::process::Command;
use tracing::{info, metadata::LevelFilter};
-use tracing_subscriber::EnvFilter;
+use tracing_indicatif::IndicatifLayer;
+use tracing_subscriber::{prelude::*, EnvFilter};
#[derive(Parser)]
struct Prefetch {}
@@ -77,21 +80,53 @@
};
Ok(())
}
+fn elapsed_subsec(state: &ProgressState, writer: &mut dyn std::fmt::Write) {
+ let _ = writer.write_str(&format!("{:?}", state.elapsed()));
+}
#[tokio::main]
async fn main() -> Result<()> {
+ let indicatif_layer = IndicatifLayer::new().with_progress_style(
+ ProgressStyle::with_template(
+ "{color_start}{span_child_prefix} {span_name}{{{span_fields}}}{color_end} {wide_msg} {color_start}{pos:>7}/{len:7}{elapsed}{color_end}",
+ )
+ .unwrap()
+ .with_key(
+ "color_start",
+ |state: &ProgressState, writer: &mut dyn std::fmt::Write| {
+ let elapsed = state.elapsed();
+
+ if elapsed > Duration::from_secs(60) {
+ // Red
+ let _ = write!(writer, "\x1b[{}m", 1 + 30);
+ } else if elapsed > Duration::from_secs(30) {
+ // Yellow
+ let _ = write!(writer, "\x1b[{}m", 3 + 30);
+ }
+ },
+ )
+ .with_key(
+ "color_end",
+ |state: &ProgressState, writer: &mut dyn std::fmt::Write| {
+ if state.elapsed() > Duration::from_secs(30) {
+ let _ = write!(writer, "\x1b[0m");
+ }
+ },
+ ),
+ );
+
let filter = EnvFilter::from_default_env().add_directive(LevelFilter::INFO.into());
- tracing_subscriber::FmtSubscriber::builder()
- .with_env_filter(filter)
- .without_time()
- .with_target(false)
- .with_writer(|| {
- // eprintln!("Line");
- io::stderr()
- })
- .try_init()
- .map_err(|e| anyhow!("Failed to initialize logger: {}", e))?;
+ tracing_subscriber::registry()
+ .with(
+ tracing_subscriber::fmt::layer()
+ .without_time()
+ .with_target(false)
+ .with_writer(indicatif_layer.get_stderr_writer())
+ .with_filter(filter), // .withou,
+ )
+ .with(indicatif_layer)
+ .init();
info!("Starting");
let mut os_args = std::env::args_os();
let opts = RootOpts::parse_from((&mut os_args).take_while(|v| v != "--"));
flake.lockdiffbeforeafterboth--- a/flake.lock
+++ b/flake.lock
@@ -1,12 +1,15 @@
{
"nodes": {
"flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
"locked": {
- "lastModified": 1667395993,
- "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
+ "lastModified": 1694529238,
+ "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
+ "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@@ -16,12 +19,15 @@
}
},
"flake-utils_2": {
+ "inputs": {
+ "systems": "systems_2"
+ },
"locked": {
- "lastModified": 1659877975,
- "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
+ "lastModified": 1681202837,
+ "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
+ "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
@@ -32,11 +38,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1670700221,
- "narHash": "sha256-+Fy/Wu8qeAppA14R4gLSlxmD0jGNVWYrgAJUaL23qkI=",
+ "lastModified": 1696884899,
+ "narHash": "sha256-SZILkoh8KZxjvFHO3yzOUw7n1Mf9WqMdUqoxf8eKPM4=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "ccf0f09e2e6744dcd721860a44c633e8708fde2b",
+ "rev": "ba10489eae3b2b2f665947b516e7043594a235c8",
"type": "github"
},
"original": {
@@ -61,11 +67,11 @@
]
},
"locked": {
- "lastModified": 1670639101,
- "narHash": "sha256-UvPSgbtaOk9WcgVqywnvQXOEEHx6OXdG+QXIwnbyvCw=",
+ "lastModified": 1696817516,
+ "narHash": "sha256-Xt9OY4Wnk9/vuUfA0OHFtmSlaen5GyiS9msgwOz3okI=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "d00c488cb455c21fea731167bf8c1b8da605aac3",
+ "rev": "c0df7f2a856b5ff27a3ce314f6d7aacf5fda546f",
"type": "github"
},
"original": {
@@ -73,6 +79,36 @@
"repo": "rust-overlay",
"type": "github"
}
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
}
},
"root": "root",
flake.nixdiffbeforeafterboth--- a/flake.nix
+++ b/flake.nix
@@ -15,7 +15,7 @@
inherit system; overlays = [ (import rust-overlay) ];
};
llvmPkgs = pkgs.buildPackages.llvmPackages_11;
- rust = (pkgs.rustChannelOf { date = "2022-12-02"; channel = "nightly"; }).default.override { extensions = [ "rust-src" "rust-analyzer" ]; };
+ rust = (pkgs.rustChannelOf { date = "2023-10-05"; channel = "nightly"; }).default.override { extensions = [ "rust-src" "rust-analyzer" ]; };
rustPlatform = pkgs.makeRustPlatform { cargo = rust; rustc = rust; };
in
{
@@ -27,7 +27,7 @@
cargo-udeps
cargo-fuzz
- pkgconfig
+ pkg-config
openssl
];
};
pkgs/fleet-install-secrets.nixdiffbeforeafterboth--- a/pkgs/fleet-install-secrets.nix
+++ b/pkgs/fleet-install-secrets.nix
@@ -10,7 +10,7 @@
cargoLock = {
lockFile = ../Cargo.lock;
outputHashes = {
- "alejandra-3.0.0" = "sha256-YSdHsJ73G7TEFzbmpZ2peuMefIa9/vNB2g+xdiyma3U=";
+ "alejandra-3.0.0" = "sha256-lStDIPizbJipd1JpNKX1olBKzyIosyC2U/mVFwJPcZE=";
};
};
}