feat(tvix/store): add write_nar function
This adds a function that consumes a [proto::node::Node] pointing to the root of a (store) path, and writes the contents in NAR serialization to the passed [std::io::Write]. We need this in various places: - tvix-store's calculate_nar() RPC method needs to render a NAR stream to get the nar hash, which is necessary to give things imported in the store a "NAR-based" store path. - communication with (remote) Nix (via daemon protocol) needs a NAR representation. - Things like nar-bridge, exposing a NAR/NARInfo HTTP interface need a NAR representation. Change-Id: I7fb2e0bf01814a1c09094c0e35394d9d6b3e43b6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7956 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
This commit is contained in:
parent
a23b7e17c0
commit
0db73cb2bd
6 changed files with 351 additions and 22 deletions
|
@ -83,16 +83,6 @@ rec {
|
|||
# File a bug if you depend on any for non-debug work!
|
||||
debug = internal.debugCrate { inherit packageId; };
|
||||
};
|
||||
"tvix-nar" = rec {
|
||||
packageId = "tvix-nar";
|
||||
build = internal.buildRustCrateWithFeatures {
|
||||
packageId = "tvix-nar";
|
||||
};
|
||||
|
||||
# Debug support which might change between releases.
|
||||
# File a bug if you depend on any for non-debug work!
|
||||
debug = internal.debugCrate { inherit packageId; };
|
||||
};
|
||||
"tvix-serde" = rec {
|
||||
packageId = "tvix-serde";
|
||||
build = internal.buildRustCrateWithFeatures {
|
||||
|
@ -7971,18 +7961,6 @@ rec {
|
|||
}
|
||||
];
|
||||
|
||||
};
|
||||
"tvix-nar" = rec {
|
||||
crateName = "tvix-nar";
|
||||
version = "0.0.0";
|
||||
edition = "2021";
|
||||
# We can't filter paths with references in Nix 2.4
|
||||
# See https://github.com/NixOS/nix/issues/5410
|
||||
src =
|
||||
if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
|
||||
then lib.cleanSourceWith { filter = sourceFilter; src = ./nar; }
|
||||
else ./nar;
|
||||
|
||||
};
|
||||
"tvix-serde" = rec {
|
||||
crateName = "tvix-serde";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue