diff options
Diffstat (limited to 'third_party/nix/src/proto')
-rw-r--r-- | third_party/nix/src/proto/worker.proto | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/third_party/nix/src/proto/worker.proto b/third_party/nix/src/proto/worker.proto new file mode 100644 index 000000000000..8db1a9e808d2 --- /dev/null +++ b/third_party/nix/src/proto/worker.proto @@ -0,0 +1,88 @@ +syntax = "proto3"; + +package nix.proto; + +// Service representing a worker used for building and interfacing +// with the Nix store. +service Worker { + // Validates whether the supplied path is a valid store path. + rpc IsValidPath (IsValidPathRequest) returns (IsValidPathResponse); + + // Checks whether any substitutes exist for the given path. + rpc HasSubstitutes (HasSubstitutesRequest) returns (HasSubstitutesResponse); + + // Query referrers for a given path. + rpc QueryReferrers (QueryReferrersRequest) returns (QueryReferrersResponse); + + // Add a NAR (I think?) to the store. The first stream request + // should be a message indicating metadata, the rest should be file + // chunks. + rpc AddToStore (stream AddToStoreRequest) returns (AddToStoreResponse); + + // Adds the supplied string to the store, as a text file. + rpc AddTextToStore (AddTextToStoreRequest) returns (AddTextToStoreResponse); +} + +enum HashType { + MD5 = 0; // TODO(tazjin): still needed? + SHA1 = 1; + SHA256 = 2; + SHA512 = 3; +} + +message IsValidPathRequest { + string path = 1; +} + +message IsValidPathResponse { + bool is_valid = 1; +} + +message HasSubstitutesRequest { + string path = 1; +} + +message HasSubstitutesResponse { + bool has_substitutes = 1; +} + +message QueryReferrersRequest { + string path = 1; +} + +message QueryReferrersResponse { + repeated string paths = 1; +} + +message AddToStoreRequest { + message Metadata { + bool fixed = 1; + bool recursive = 2; // TODO(tazjin): what is this? "obsolete" comment? + HashType hash_type = 3; + string base_name = 4; + } + + message Chunk { + bytes content = 1; + bool final = 2; + } + + oneof add_oneof { + Metadata meta = 1; + Chunk chunk = 2; + } +} + +message AddToStoreResponse { + string path = 1; +} + +message AddTextToStoreRequest { + string name = 1; + string content = 2; + repeated string references = 3; +} + +message AddTextToStoreResponse { + string path = 1; +} |