feat(tvix/store): add NARCalculationService trait and impl

This adds a NARCalculationService trait, which will take a root node,
and provide a proto::CalculateNarResponse in return.

It also adds a NonCachingNARCalculationService implementation, that will
simply always render the NAR in memory to calculate the size and sha256,
without any caching.

Change-Id: Id1ffb18559212fa6001f70f2634bbc3dfd0aa343
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8096
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-02-13 16:47:22 +01:00 committed by flokli
parent ab02fc668c
commit 419f7d0f0c
5 changed files with 98 additions and 4 deletions

8
tvix/Cargo.lock generated
View file

@ -422,6 +422,12 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
[[package]]
name = "count-write"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ced507ab50aa0123e2c54db8b5f44fdfee04b1c93744d69e924307945fe57a85"
[[package]]
name = "countme"
version = "3.0.1"
@ -2770,12 +2776,14 @@ dependencies = [
"anyhow",
"blake3",
"clap 4.1.4",
"count-write",
"data-encoding",
"fastcdc",
"lazy_static",
"nix-compat",
"prost",
"prost-build",
"sha2 0.10.6",
"sled",
"tempfile",
"test-case",