about summary refs log tree commit diff
path: root/tvix/tools/crunch-v2/protos/flatstore.proto
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/tools/crunch-v2/protos/flatstore.proto')
-rw-r--r--tvix/tools/crunch-v2/protos/flatstore.proto38
1 files changed, 38 insertions, 0 deletions
diff --git a/tvix/tools/crunch-v2/protos/flatstore.proto b/tvix/tools/crunch-v2/protos/flatstore.proto
new file mode 100644
index 0000000000..2f2838fc75
--- /dev/null
+++ b/tvix/tools/crunch-v2/protos/flatstore.proto
@@ -0,0 +1,38 @@
+syntax = "proto3";
+
+package tvix.flatstore.v1;
+
+message Path {
+    bytes nar_hash = 1;
+
+    oneof node {
+        DirectoryNode directory = 2;
+        FileNode file = 3;
+        SymlinkNode symlink = 4;
+    }
+}
+
+message DirectoryNode {
+    bytes name = 1;
+    repeated DirectoryNode directories = 2;
+    repeated FileNode files = 3;
+    repeated SymlinkNode symlinks = 4;
+}
+
+message FileNode {
+    bytes name = 1;
+    bytes hash = 2;
+    repeated Chunk chunks = 3;
+    bool executable = 4;
+}
+
+message Chunk {
+    bytes hash = 1;
+    uint32 size = 2;
+    uint32 size_compressed = 3;
+}
+
+message SymlinkNode {
+    bytes name = 1;
+    bytes target = 2;
+}