From 5392d73816509aadd37df62cc8ce93d8053d3e36 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Fri, 28 Oct 2022 16:26:13 +0200 Subject: feat(tvix/proto): add castore.proto This is 0d4906cbabb183caa96e763671810fb39bd0c935:ripple/fossil/src/store.proto, from https://src.unfathomable.blue. It is not pulled in as a subtree, as some of the commits in there break index-pack: ``` remote: error: object 2f487c3bf7cd8efd64f1d217edac732db98ff1c0: badDateOverflow: invalid author/committer line - date causes integer overflow remote: fatal: fsck error in packed object error: remote unpack failed: index-pack abnormal exit ``` Co-authored-by: edef Change-Id: I3369044090a3192e2322775a335887c37536a942 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7126 Tested-by: BuildkiteCI Reviewed-by: edef --- tvix/proto/castore.proto | 40 ++++++++++++++++++++++++++++++++++++++++ tvix/proto/default.nix | 1 + 2 files changed, 41 insertions(+) create mode 100644 tvix/proto/castore.proto (limited to 'tvix/proto') diff --git a/tvix/proto/castore.proto b/tvix/proto/castore.proto new file mode 100644 index 000000000000..14a689ea5ba2 --- /dev/null +++ b/tvix/proto/castore.proto @@ -0,0 +1,40 @@ +// SPDX-FileCopyrightText: edef +// SPDX-License-Identifier: OSL-3.0 OR MIT OR Apache-2.0 + +syntax = "proto3"; + +package fossil.store; + +message Directory { + repeated DirectoryNode directories = 1; + repeated FileNode files = 2; + repeated LinkNode links = 3; +} + +message DirectoryNode { + string name = 1; + bytes ref = 2; + uint32 size = 3; +} + +message FileNode { + string name = 1; + bytes ref = 2; + uint32 size = 3; + bool executable = 4; +} + +message LinkNode { + string name = 1; + string target = 2; +} + +message Blob { + bytes bao_inline = 3; + repeated Chunk chunks = 4; +} + +message Chunk { + uint64 offset = 1; + uint32 length = 2; +} diff --git a/tvix/proto/default.nix b/tvix/proto/default.nix index 35e2eba7fed4..26673cdf747f 100644 --- a/tvix/proto/default.nix +++ b/tvix/proto/default.nix @@ -5,5 +5,6 @@ pkgs.runCommand "tvix-cc-proto" { } '' mkdir $out + ${pkgs.protobuf}/bin/protoc -I ${./.} castore.proto --cpp_out=$out ${pkgs.protobuf}/bin/protoc -I ${./.} evaluator.proto --cpp_out=$out '' -- cgit 1.4.1