add caching to the ca store
This commit is contained in:
parent
b5fc511789
commit
42b1f82828
6 changed files with 883 additions and 12 deletions
206
Cargo.lock
generated
206
Cargo.lock
generated
|
@ -71,6 +71,48 @@ version = "0.7.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "async-channel"
|
||||||
|
version = "2.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
|
||||||
|
dependencies = [
|
||||||
|
"concurrent-queue",
|
||||||
|
"event-listener-strategy",
|
||||||
|
"futures-core",
|
||||||
|
"pin-project-lite",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "async-io"
|
||||||
|
version = "2.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059"
|
||||||
|
dependencies = [
|
||||||
|
"async-lock",
|
||||||
|
"cfg-if",
|
||||||
|
"concurrent-queue",
|
||||||
|
"futures-io",
|
||||||
|
"futures-lite",
|
||||||
|
"parking",
|
||||||
|
"polling",
|
||||||
|
"rustix",
|
||||||
|
"slab",
|
||||||
|
"tracing",
|
||||||
|
"windows-sys 0.59.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "async-lock"
|
||||||
|
version = "3.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
|
||||||
|
dependencies = [
|
||||||
|
"event-listener",
|
||||||
|
"event-listener-strategy",
|
||||||
|
"pin-project-lite",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-trait"
|
name = "async-trait"
|
||||||
version = "0.1.83"
|
version = "0.1.83"
|
||||||
|
@ -91,6 +133,15 @@ dependencies = [
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "atomic"
|
||||||
|
version = "0.6.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "atomic-waker"
|
name = "atomic-waker"
|
||||||
version = "1.1.2"
|
version = "1.1.2"
|
||||||
|
@ -709,6 +760,12 @@ version = "3.16.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck"
|
||||||
|
version = "1.20.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "byteorder"
|
name = "byteorder"
|
||||||
version = "1.5.0"
|
version = "1.5.0"
|
||||||
|
@ -795,6 +852,7 @@ dependencies = [
|
||||||
"chir-rs-misc",
|
"chir-rs-misc",
|
||||||
"educe",
|
"educe",
|
||||||
"eyre",
|
"eyre",
|
||||||
|
"stretto",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
@ -951,6 +1009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
|
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
|
"portable-atomic",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1023,6 +1082,15 @@ dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-channel"
|
||||||
|
version = "0.5.13"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-deque"
|
name = "crossbeam-deque"
|
||||||
version = "0.8.5"
|
version = "0.8.5"
|
||||||
|
@ -1273,6 +1341,18 @@ dependencies = [
|
||||||
"concurrent-queue",
|
"concurrent-queue",
|
||||||
"parking",
|
"parking",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
|
"portable-atomic",
|
||||||
|
"portable-atomic-util",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "event-listener-strategy"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
|
||||||
|
dependencies = [
|
||||||
|
"event-listener",
|
||||||
|
"pin-project-lite",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1351,6 +1431,21 @@ version = "1.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
|
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures"
|
||||||
|
version = "0.3.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
|
||||||
|
dependencies = [
|
||||||
|
"futures-channel",
|
||||||
|
"futures-core",
|
||||||
|
"futures-executor",
|
||||||
|
"futures-io",
|
||||||
|
"futures-sink",
|
||||||
|
"futures-task",
|
||||||
|
"futures-util",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-channel"
|
name = "futures-channel"
|
||||||
version = "0.3.31"
|
version = "0.3.31"
|
||||||
|
@ -1395,6 +1490,27 @@ version = "0.3.31"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
|
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures-lite"
|
||||||
|
version = "2.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1"
|
||||||
|
dependencies = [
|
||||||
|
"futures-core",
|
||||||
|
"pin-project-lite",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures-macro"
|
||||||
|
version = "0.3.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-sink"
|
name = "futures-sink"
|
||||||
version = "0.3.31"
|
version = "0.3.31"
|
||||||
|
@ -1413,8 +1529,10 @@ version = "0.3.31"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
|
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-io",
|
"futures-io",
|
||||||
|
"futures-macro",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
"futures-task",
|
"futures-task",
|
||||||
"memchr",
|
"memchr",
|
||||||
|
@ -1549,6 +1667,12 @@ version = "0.3.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hermit-abi"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hex"
|
name = "hex"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
|
@ -2248,7 +2372,7 @@ version = "1.16.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
|
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hermit-abi",
|
"hermit-abi 0.3.9",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2432,12 +2556,36 @@ version = "0.3.31"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
|
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "polling"
|
||||||
|
version = "3.7.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"concurrent-queue",
|
||||||
|
"hermit-abi 0.4.0",
|
||||||
|
"pin-project-lite",
|
||||||
|
"rustix",
|
||||||
|
"tracing",
|
||||||
|
"windows-sys 0.59.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "portable-atomic"
|
name = "portable-atomic"
|
||||||
version = "1.10.0"
|
version = "1.10.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"
|
checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "portable-atomic-util"
|
||||||
|
version = "0.2.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
|
||||||
|
dependencies = [
|
||||||
|
"portable-atomic",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "powerfmt"
|
name = "powerfmt"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
|
@ -2925,6 +3073,12 @@ dependencies = [
|
||||||
"untrusted",
|
"untrusted",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "seahash"
|
||||||
|
version = "4.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sec1"
|
name = "sec1"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
|
@ -3506,6 +3660,27 @@ version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "stretto"
|
||||||
|
version = "0.8.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "70a313e115c2cd9a88d99d60386bc88641c853d468b2c3bc454c294f385fc084"
|
||||||
|
dependencies = [
|
||||||
|
"async-channel",
|
||||||
|
"async-io",
|
||||||
|
"atomic",
|
||||||
|
"crossbeam-channel",
|
||||||
|
"futures",
|
||||||
|
"getrandom",
|
||||||
|
"parking_lot",
|
||||||
|
"rand",
|
||||||
|
"seahash",
|
||||||
|
"thiserror 1.0.69",
|
||||||
|
"tracing",
|
||||||
|
"wg",
|
||||||
|
"xxhash-rust",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "stringprep"
|
name = "stringprep"
|
||||||
version = "0.1.5"
|
version = "0.1.5"
|
||||||
|
@ -3942,6 +4117,16 @@ dependencies = [
|
||||||
"tracing-serde",
|
"tracing-serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "triomphe"
|
||||||
|
version = "0.1.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
"stable_deref_trait",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "try-lock"
|
name = "try-lock"
|
||||||
version = "0.2.5"
|
version = "0.2.5"
|
||||||
|
@ -4204,6 +4389,19 @@ dependencies = [
|
||||||
"rustls-pki-types",
|
"rustls-pki-types",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wg"
|
||||||
|
version = "0.9.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7aafc5e81e847f05d6770e074faf7b1cd4a5dec9a0e88eac5d55e20fdfebee9a"
|
||||||
|
dependencies = [
|
||||||
|
"event-listener",
|
||||||
|
"futures-core",
|
||||||
|
"parking_lot",
|
||||||
|
"pin-project-lite",
|
||||||
|
"triomphe",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "which"
|
name = "which"
|
||||||
version = "4.4.2"
|
version = "4.4.2"
|
||||||
|
@ -4472,6 +4670,12 @@ version = "0.13.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
|
checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "xxhash-rust"
|
||||||
|
version = "0.8.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "yoke"
|
name = "yoke"
|
||||||
version = "0.7.5"
|
version = "0.7.5"
|
||||||
|
|
619
Cargo.nix
619
Cargo.nix
|
@ -31,7 +31,7 @@ args@{
|
||||||
ignoreLockHash,
|
ignoreLockHash,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
nixifiedLockHash = "b74868cc2f3f13a8548b99e3b993b2252a39400f0f9048a93634a9bf4eb8fcc2";
|
nixifiedLockHash = "49bdb0babe3183dc7c6fb02633d1bd7e6b558833b0bcf158f3c28f862fdb2cc1";
|
||||||
workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc;
|
workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc;
|
||||||
currentLockHash = builtins.hashFile "sha256" (workspaceSrc + /Cargo.lock);
|
currentLockHash = builtins.hashFile "sha256" (workspaceSrc + /Cargo.lock);
|
||||||
lockHashIgnored =
|
lockHashIgnored =
|
||||||
|
@ -263,6 +263,130 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".async-channel."2.3.1" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "async-channel";
|
||||||
|
version = "2.3.1";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "std" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
concurrent_queue =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".concurrent-queue."2.5.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
event_listener_strategy =
|
||||||
|
(
|
||||||
|
rustPackages."registry+https://github.com/rust-lang/crates.io-index".event-listener-strategy."0.5.2"
|
||||||
|
{ inherit profileName; }
|
||||||
|
).out;
|
||||||
|
futures_core =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
pin_project_lite =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".async-io."2.4.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "async-io";
|
||||||
|
version = "2.4.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059";
|
||||||
|
};
|
||||||
|
dependencies = {
|
||||||
|
async_lock =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".async-lock."3.4.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
cfg_if =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
concurrent_queue =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".concurrent-queue."2.5.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_io =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_lite =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-lite."2.5.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
parking =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking."2.2.1" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
polling =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".polling."3.7.4" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
rustix =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.41" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
slab =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".slab."0.4.9" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
tracing =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${if hostPlatform.isWindows then "windows_sys" else null} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".async-lock."3.4.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "async-lock";
|
||||||
|
version = "3.4.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "std" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
event_listener =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".event-listener."5.3.1" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
event_listener_strategy =
|
||||||
|
(
|
||||||
|
rustPackages."registry+https://github.com/rust-lang/crates.io-index".event-listener-strategy."0.5.2"
|
||||||
|
{ inherit profileName; }
|
||||||
|
).out;
|
||||||
|
pin_project_lite =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".async-trait."0.1.83" =
|
"registry+https://github.com/rust-lang/crates.io-index".async-trait."0.1.83" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -311,6 +435,28 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".atomic."0.6.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "atomic";
|
||||||
|
version = "0.6.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "fallback" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
bytemuck =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytemuck."1.20.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".atomic-waker."1.1.2" =
|
"registry+https://github.com/rust-lang/crates.io-index".atomic-waker."1.1.2" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -2349,6 +2495,18 @@ else
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".bytemuck."1.20.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "bytemuck";
|
||||||
|
version = "1.20.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".byteorder."1.5.0" =
|
"registry+https://github.com/rust-lang/crates.io-index".byteorder."1.5.0" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -2559,6 +2717,10 @@ else
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".eyre."0.6.12" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".eyre."0.6.12" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
}).out;
|
}).out;
|
||||||
|
stretto =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".stretto."0.8.4" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
tokio =
|
tokio =
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."1.41.1" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
|
@ -3029,6 +3191,8 @@ else
|
||||||
sha256 = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973";
|
sha256 = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973";
|
||||||
};
|
};
|
||||||
features = builtins.concatLists [
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "portable-atomic" ]
|
||||||
[ "std" ]
|
[ "std" ]
|
||||||
];
|
];
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
@ -3036,6 +3200,10 @@ else
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".crossbeam-utils."0.8.20" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".crossbeam-utils."0.8.20" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
}).out;
|
}).out;
|
||||||
|
portable_atomic =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -3203,6 +3371,28 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".crossbeam-channel."0.5.13" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "crossbeam-channel";
|
||||||
|
version = "0.5.13";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "std" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
crossbeam_utils =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".crossbeam-utils."0.8.20" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".crossbeam-deque."0.8.5" =
|
"registry+https://github.com/rust-lang/crates.io-index".crossbeam-deque."0.8.5" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -3881,6 +4071,9 @@ else
|
||||||
features = builtins.concatLists [
|
features = builtins.concatLists [
|
||||||
[ "default" ]
|
[ "default" ]
|
||||||
[ "parking" ]
|
[ "parking" ]
|
||||||
|
[ "portable-atomic" ]
|
||||||
|
[ "portable-atomic-util" ]
|
||||||
|
[ "portable_atomic_crate" ]
|
||||||
[ "std" ]
|
[ "std" ]
|
||||||
];
|
];
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
@ -3896,6 +4089,39 @@ else
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
}).out;
|
}).out;
|
||||||
|
portable_atomic_crate =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
portable_atomic_util =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic-util."0.2.4" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".event-listener-strategy."0.5.2" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "event-listener-strategy";
|
||||||
|
version = "0.5.2";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "std" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
event_listener =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".event-listener."5.3.1" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
pin_project_lite =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -4096,6 +4322,56 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".futures."0.3.31" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "futures";
|
||||||
|
version = "0.3.31";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "alloc" ]
|
||||||
|
[ "async-await" ]
|
||||||
|
[ "default" ]
|
||||||
|
[ "executor" ]
|
||||||
|
[ "futures-executor" ]
|
||||||
|
[ "std" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
futures_channel =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_core =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_executor =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-executor."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_io =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_sink =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_task =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_util =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.31" =
|
"registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.31" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -4220,6 +4496,54 @@ else
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".futures-lite."2.5.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "futures-lite";
|
||||||
|
version = "2.5.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1";
|
||||||
|
};
|
||||||
|
dependencies = {
|
||||||
|
futures_core =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
pin_project_lite =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".futures-macro."0.3.31" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "futures-macro";
|
||||||
|
version = "0.3.31";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650";
|
||||||
|
};
|
||||||
|
dependencies = {
|
||||||
|
proc_macro2 =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.92" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
quote =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.37" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
syn =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.90" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.31" =
|
"registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.31" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -4265,7 +4589,12 @@ else
|
||||||
};
|
};
|
||||||
features = builtins.concatLists [
|
features = builtins.concatLists [
|
||||||
[ "alloc" ]
|
[ "alloc" ]
|
||||||
|
[ "async-await" ]
|
||||||
|
[ "async-await-macro" ]
|
||||||
|
[ "channel" ]
|
||||||
|
[ "futures-channel" ]
|
||||||
[ "futures-io" ]
|
[ "futures-io" ]
|
||||||
|
[ "futures-macro" ]
|
||||||
[ "futures-sink" ]
|
[ "futures-sink" ]
|
||||||
[ "io" ]
|
[ "io" ]
|
||||||
[ "memchr" ]
|
[ "memchr" ]
|
||||||
|
@ -4274,6 +4603,10 @@ else
|
||||||
[ "std" ]
|
[ "std" ]
|
||||||
];
|
];
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
futures_channel =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
futures_core =
|
futures_core =
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.31" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.31" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
|
@ -4282,6 +4615,10 @@ else
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.31" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.31" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
}).out;
|
}).out;
|
||||||
|
futures_macro =
|
||||||
|
(buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-macro."0.3.31" {
|
||||||
|
profileName = "__noProfile";
|
||||||
|
}).out;
|
||||||
futures_sink =
|
futures_sink =
|
||||||
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.31" {
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.31" {
|
||||||
inherit profileName;
|
inherit profileName;
|
||||||
|
@ -4670,6 +5007,21 @@ else
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".hermit-abi."0.4.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "hermit-abi";
|
||||||
|
version = "0.4.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" =
|
"registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -6012,8 +6364,13 @@ else
|
||||||
[ "elf" ]
|
[ "elf" ]
|
||||||
[ "errno" ]
|
[ "errno" ]
|
||||||
[ "general" ]
|
[ "general" ]
|
||||||
|
[ "if_ether" ]
|
||||||
[ "ioctl" ]
|
[ "ioctl" ]
|
||||||
|
[ "net" ]
|
||||||
|
[ "netlink" ]
|
||||||
[ "no_std" ]
|
[ "no_std" ]
|
||||||
|
[ "prctl" ]
|
||||||
|
[ "xdp" ]
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -7076,6 +7433,57 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".polling."3.7.4" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "polling";
|
||||||
|
version = "3.7.4";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f";
|
||||||
|
};
|
||||||
|
dependencies = {
|
||||||
|
cfg_if =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${if hostPlatform.isWindows then "concurrent_queue" else null} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".concurrent-queue."2.5.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${if hostPlatform.parsed.kernel.name == "hermit" then "hermit_abi" else null} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".hermit-abi."0.4.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${if hostPlatform.isWindows then "pin_project_lite" else null} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${
|
||||||
|
if
|
||||||
|
hostPlatform.isUnix
|
||||||
|
|| hostPlatform.parsed.kernel.name == "fuchsia"
|
||||||
|
|| hostPlatform.parsed.kernel.name == "vxworks"
|
||||||
|
then
|
||||||
|
"rustix"
|
||||||
|
else
|
||||||
|
null
|
||||||
|
} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.41" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
tracing =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${if hostPlatform.isWindows then "windows_sys" else null} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" =
|
"registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -7088,9 +7496,31 @@ else
|
||||||
};
|
};
|
||||||
features = builtins.concatLists [
|
features = builtins.concatLists [
|
||||||
[ "fallback" ]
|
[ "fallback" ]
|
||||||
|
[ "require-cas" ]
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".portable-atomic-util."0.2.4" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "portable-atomic-util";
|
||||||
|
version = "0.2.4";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "alloc" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
portable_atomic =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" =
|
"registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -8168,9 +8598,14 @@ else
|
||||||
features = builtins.concatLists [
|
features = builtins.concatLists [
|
||||||
[ "alloc" ]
|
[ "alloc" ]
|
||||||
[ "default" ]
|
[ "default" ]
|
||||||
|
[ "event" ]
|
||||||
[ "fs" ]
|
[ "fs" ]
|
||||||
[ "libc-extra-traits" ]
|
[ "libc-extra-traits" ]
|
||||||
|
[ "net" ]
|
||||||
|
[ "pipe" ]
|
||||||
|
[ "process" ]
|
||||||
[ "std" ]
|
[ "std" ]
|
||||||
|
[ "time" ]
|
||||||
[ "use-libc-auxv" ]
|
[ "use-libc-auxv" ]
|
||||||
];
|
];
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
@ -8675,6 +9110,21 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".seahash."4.1.0" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "seahash";
|
||||||
|
version = "4.1.0";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".sec1."0.3.0" =
|
"registry+https://github.com/rust-lang/crates.io-index".sec1."0.3.0" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -10485,6 +10935,81 @@ else
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".stretto."0.8.4" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "stretto";
|
||||||
|
version = "0.8.4";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "70a313e115c2cd9a88d99d60386bc88641c853d468b2c3bc454c294f385fc084";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "async" ]
|
||||||
|
[ "async-channel" ]
|
||||||
|
[ "async-io" ]
|
||||||
|
[ "crossbeam-channel" ]
|
||||||
|
[ "default" ]
|
||||||
|
[ "futures" ]
|
||||||
|
[ "sync" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
async_channel =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".async-channel."2.3.1" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
async_io =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".async-io."2.4.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
atomic =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".atomic."0.6.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
crossbeam_channel =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".crossbeam-channel."0.5.13" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
${if false then "getrandom" else null} =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".getrandom."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
parking_lot =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
rand =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".rand."0.8.5" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
seahash =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".seahash."4.1.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
thiserror =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."1.0.69" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
tracing =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
wg =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".wg."0.9.2" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
xxhash_rust =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".xxhash-rust."0.8.12" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".stringprep."0.1.5" =
|
"registry+https://github.com/rust-lang/crates.io-index".stringprep."0.1.5" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -11717,6 +12242,34 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".triomphe."0.1.14" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "triomphe";
|
||||||
|
version = "0.1.14";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "serde" ]
|
||||||
|
[ "stable_deref_trait" ]
|
||||||
|
[ "std" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
serde =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.215" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
stable_deref_trait =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".try-lock."0.2.5" =
|
"registry+https://github.com/rust-lang/crates.io-index".try-lock."0.2.5" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -12391,6 +12944,49 @@ else
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".wg."0.9.2" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "wg";
|
||||||
|
version = "0.9.2";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "7aafc5e81e847f05d6770e074faf7b1cd4a5dec9a0e88eac5d55e20fdfebee9a";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "default" ]
|
||||||
|
[ "event-listener" ]
|
||||||
|
[ "future" ]
|
||||||
|
[ "parking_lot" ]
|
||||||
|
[ "pin-project-lite" ]
|
||||||
|
[ "std" ]
|
||||||
|
[ "triomphe" ]
|
||||||
|
];
|
||||||
|
dependencies = {
|
||||||
|
event_listener =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".event-listener."5.3.1" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
futures_core =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.31" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
parking_lot =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
pin_project_lite =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.15" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
triomphe =
|
||||||
|
(rustPackages."registry+https://github.com/rust-lang/crates.io-index".triomphe."0.1.14" {
|
||||||
|
inherit profileName;
|
||||||
|
}).out;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".which."4.4.2" =
|
"registry+https://github.com/rust-lang/crates.io-index".which."4.4.2" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
@ -12727,6 +13323,10 @@ else
|
||||||
sha256 = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b";
|
sha256 = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b";
|
||||||
};
|
};
|
||||||
features = builtins.concatLists [
|
features = builtins.concatLists [
|
||||||
|
[ "Wdk" ]
|
||||||
|
[ "Wdk_Foundation" ]
|
||||||
|
[ "Wdk_Storage" ]
|
||||||
|
[ "Wdk_Storage_FileSystem" ]
|
||||||
[ "Win32" ]
|
[ "Win32" ]
|
||||||
[ "Win32_Foundation" ]
|
[ "Win32_Foundation" ]
|
||||||
[ "Win32_Networking" ]
|
[ "Win32_Networking" ]
|
||||||
|
@ -12745,6 +13345,8 @@ else
|
||||||
[ "Win32_System_LibraryLoader" ]
|
[ "Win32_System_LibraryLoader" ]
|
||||||
[ "Win32_System_Memory" ]
|
[ "Win32_System_Memory" ]
|
||||||
[ "Win32_System_SystemInformation" ]
|
[ "Win32_System_SystemInformation" ]
|
||||||
|
[ "Win32_System_Threading" ]
|
||||||
|
[ "Win32_System_WindowsProgramming" ]
|
||||||
[ "default" ]
|
[ "default" ]
|
||||||
];
|
];
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
@ -13146,6 +13748,21 @@ else
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"registry+https://github.com/rust-lang/crates.io-index".xxhash-rust."0.8.12" =
|
||||||
|
overridableMkRustCrate
|
||||||
|
(profileName: rec {
|
||||||
|
name = "xxhash-rust";
|
||||||
|
version = "0.8.12";
|
||||||
|
registry = "registry+https://github.com/rust-lang/crates.io-index";
|
||||||
|
src = fetchCratesIo {
|
||||||
|
inherit name version;
|
||||||
|
sha256 = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984";
|
||||||
|
};
|
||||||
|
features = builtins.concatLists [
|
||||||
|
[ "xxh64" ]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" =
|
"registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" =
|
||||||
overridableMkRustCrate
|
overridableMkRustCrate
|
||||||
(profileName: rec {
|
(profileName: rec {
|
||||||
|
|
|
@ -12,6 +12,7 @@ chir-rs-config = { version = "0.1.0", path = "../chir-rs-config" }
|
||||||
chir-rs-misc = { version = "0.1.0", path = "../chir-rs-misc", features = ["id-generator", "base64"] }
|
chir-rs-misc = { version = "0.1.0", path = "../chir-rs-misc", features = ["id-generator", "base64"] }
|
||||||
educe = { version = "0.6.0", default-features = false, features = ["Debug"] }
|
educe = { version = "0.6.0", default-features = false, features = ["Debug"] }
|
||||||
eyre = "0.6.12"
|
eyre = "0.6.12"
|
||||||
|
stretto = { version = "0.8.4", features = ["async"] }
|
||||||
tokio = { version = "1.41.1", features = ["fs"] }
|
tokio = { version = "1.41.1", features = ["fs"] }
|
||||||
tracing = "0.1.41"
|
tracing = "0.1.41"
|
||||||
[lints.rust]
|
[lints.rust]
|
||||||
|
|
|
@ -9,12 +9,13 @@ use aws_sdk_s3::{
|
||||||
types::{CompletedMultipartUpload, CompletedPart},
|
types::{CompletedMultipartUpload, CompletedPart},
|
||||||
Client,
|
Client,
|
||||||
};
|
};
|
||||||
use blake3::Hasher;
|
use blake3::{Hash, Hasher};
|
||||||
use bytes::BytesMut;
|
use bytes::{Bytes, BytesMut};
|
||||||
use chir_rs_config::ChirRs;
|
use chir_rs_config::ChirRs;
|
||||||
use chir_rs_misc::{id_generator, lexicographic_base64};
|
use chir_rs_misc::{id_generator, lexicographic_base64};
|
||||||
use educe::Educe;
|
use educe::Educe;
|
||||||
use eyre::{Context as _, Result};
|
use eyre::{Context as _, Result};
|
||||||
|
use stretto::{AsyncCache, AsyncCacheBuilder};
|
||||||
use tokio::{
|
use tokio::{
|
||||||
fs::read_to_string,
|
fs::read_to_string,
|
||||||
io::{AsyncRead, AsyncReadExt},
|
io::{AsyncRead, AsyncReadExt},
|
||||||
|
@ -53,6 +54,9 @@ pub struct CaStore {
|
||||||
client: Arc<Client>,
|
client: Arc<Client>,
|
||||||
/// Bucket
|
/// Bucket
|
||||||
bucket: Arc<str>,
|
bucket: Arc<str>,
|
||||||
|
/// CA Value Cache
|
||||||
|
#[educe(Debug(ignore))]
|
||||||
|
cache: AsyncCache<Hash, Bytes>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CaStore {
|
impl CaStore {
|
||||||
|
@ -66,6 +70,16 @@ impl CaStore {
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
client: Arc::new(Client::new(&sdk_config)),
|
client: Arc::new(Client::new(&sdk_config)),
|
||||||
bucket: Arc::from(config.s3.bucket.as_ref()),
|
bucket: Arc::from(config.s3.bucket.as_ref()),
|
||||||
|
cache: AsyncCache::new(
|
||||||
|
(config.cache_max_size / 1_000)
|
||||||
|
.try_into()
|
||||||
|
.context("Cache size too large")?,
|
||||||
|
config
|
||||||
|
.cache_max_size
|
||||||
|
.try_into()
|
||||||
|
.context("Value too large")?,
|
||||||
|
tokio::spawn,
|
||||||
|
)?,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +89,7 @@ impl CaStore {
|
||||||
///
|
///
|
||||||
/// This function returns an error if reading the source stream fails, uploading the source stream fails, or moving the file to its correct content-addressed position fails.
|
/// This function returns an error if reading the source stream fails, uploading the source stream fails, or moving the file to its correct content-addressed position fails.
|
||||||
#[instrument(skip(reader))]
|
#[instrument(skip(reader))]
|
||||||
async fn upload_inner<R>(&self, reader: R, id: u128) -> Result<blake3::Hash>
|
async fn upload_inner<R>(&self, reader: R, id: u128) -> Result<Hash>
|
||||||
where
|
where
|
||||||
R: AsyncRead + AsyncReadExt + Send,
|
R: AsyncRead + AsyncReadExt + Send,
|
||||||
{
|
{
|
||||||
|
@ -178,11 +192,12 @@ impl CaStore {
|
||||||
/// # Errors
|
/// # Errors
|
||||||
///
|
///
|
||||||
/// This function returns an error if reading the source stream fails, uploading the source stream fails, or moving the file to its correct content-addressed position fails.
|
/// This function returns an error if reading the source stream fails, uploading the source stream fails, or moving the file to its correct content-addressed position fails.
|
||||||
pub async fn upload<R>(&self, reader: R) -> Result<blake3::Hash>
|
pub async fn upload<R>(&self, reader: R) -> Result<Hash>
|
||||||
where
|
where
|
||||||
R: AsyncRead + AsyncReadExt + Send,
|
R: AsyncRead + AsyncReadExt + Send,
|
||||||
{
|
{
|
||||||
let id = id_generator::generate();
|
let id = id_generator::generate();
|
||||||
|
|
||||||
self.upload_inner(reader, id).await
|
self.upload_inner(reader, id).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,10 +207,19 @@ impl CaStore {
|
||||||
///
|
///
|
||||||
/// This function returns an error if loading file matadata fails
|
/// This function returns an error if loading file matadata fails
|
||||||
#[instrument]
|
#[instrument]
|
||||||
pub async fn download_bytestream(
|
pub async fn download_bytestream(&self, hash: Hash) -> Result<(Option<i64>, ByteStream)> {
|
||||||
&self,
|
#[allow(
|
||||||
hash: blake3::Hash,
|
clippy::significant_drop_in_scrutinee,
|
||||||
) -> Result<(Option<i64>, ByteStream)> {
|
reason = "We are cloning like 1 arc lol"
|
||||||
|
)]
|
||||||
|
if let Some(v) = self.cache.get(&hash).await {
|
||||||
|
info!("{hash:?} found in cache. Returning");
|
||||||
|
let data = v.as_ref();
|
||||||
|
return Ok((
|
||||||
|
Some(data.len().try_into().context("Bad api design")?),
|
||||||
|
data.clone().into(),
|
||||||
|
));
|
||||||
|
}
|
||||||
let key = lexicographic_base64::encode(hash.as_bytes());
|
let key = lexicographic_base64::encode(hash.as_bytes());
|
||||||
let file = self
|
let file = self
|
||||||
.client
|
.client
|
||||||
|
@ -205,8 +229,28 @@ impl CaStore {
|
||||||
.send()
|
.send()
|
||||||
.await
|
.await
|
||||||
.with_context(|| format!("Downloading content-addressed file {key}"))?;
|
.with_context(|| format!("Downloading content-addressed file {key}"))?;
|
||||||
|
let file_size_hint = file.content_length.unwrap_or(i64::MAX);
|
||||||
|
let file_size_hint: u64 = file_size_hint.try_into().unwrap_or(u64::MAX);
|
||||||
|
if file_size_hint < 1_000_000 {
|
||||||
|
// Cache this
|
||||||
|
let data = file.body.collect().await?.into_bytes();
|
||||||
|
|
||||||
|
self.cache
|
||||||
|
.insert(
|
||||||
|
hash,
|
||||||
|
data.clone(),
|
||||||
|
data.len().try_into().context("Bad api design")?,
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
Ok((
|
||||||
|
Some(data.len().try_into().context("Bad api design")?),
|
||||||
|
data.into(),
|
||||||
|
))
|
||||||
|
} else {
|
||||||
Ok((file.content_length, file.body))
|
Ok((file.content_length, file.body))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Downloads a file from the CA store backend with its hash
|
/// Downloads a file from the CA store backend with its hash
|
||||||
///
|
///
|
||||||
|
@ -214,7 +258,7 @@ impl CaStore {
|
||||||
///
|
///
|
||||||
/// This function returns an error if loading file matadata fails
|
/// This function returns an error if loading file matadata fails
|
||||||
#[instrument]
|
#[instrument]
|
||||||
pub async fn download(&self, hash: blake3::Hash) -> Result<(Option<i64>, SdkBody)> {
|
pub async fn download(&self, hash: Hash) -> Result<(Option<i64>, SdkBody)> {
|
||||||
let (length, body) = self.download_bytestream(hash).await?;
|
let (length, body) = self.download_bytestream(hash).await?;
|
||||||
Ok((length, body.into_inner()))
|
Ok((length, body.into_inner()))
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,6 +216,8 @@ pub struct ChirRs {
|
||||||
pub database: Database,
|
pub database: Database,
|
||||||
/// S3 configuration
|
/// S3 configuration
|
||||||
pub s3: S3Config,
|
pub s3: S3Config,
|
||||||
|
/// Ca Cache max size in bytes
|
||||||
|
pub cache_max_size: u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ChirRs {
|
impl ChirRs {
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# Maximum size of the in-memory object cache.
|
||||||
|
cache_max_size = 32_000_000
|
||||||
|
|
||||||
[logging]
|
[logging]
|
||||||
#sentry_dsn = "…"
|
#sentry_dsn = "…"
|
||||||
log_level = "debug"
|
log_level = "debug"
|
||||||
|
|
Loading…
Reference in a new issue