about summary refs log tree commit diff
path: root/tvix/proto
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2022-10-28T14·26+0200
committerflokli <flokli@flokli.de>2022-11-02T11·48+0000
commit5392d73816509aadd37df62cc8ce93d8053d3e36 (patch)
treebb5271911ba82b1d07955315282656dbd79ffb13 /tvix/proto
parent10ad47371d2d4e98af43a824b6583e986f5d8498 (diff)
feat(tvix/proto): add castore.proto r/5230
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 <edef@unfathomable.blue>
Change-Id: I3369044090a3192e2322775a335887c37536a942
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7126
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Diffstat (limited to 'tvix/proto')
-rw-r--r--tvix/proto/castore.proto40
-rw-r--r--tvix/proto/default.nix1
2 files changed, 41 insertions, 0 deletions
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 <edef@unfathomable.blue>
+// 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
 ''