pijul nest
guest [sign in]

Fork channel

Create a new channel as a copy of main.

Rename channel

Rename main to:

Delete channel

Delete main? This cannot be undone.

elpegrpc.proto
syntax = "proto3";
package elpe;


message AddPathRequest {
  message File {
    string name = 1;
    int64 length = 2;
    int32 permissions = 3;
  }
  message FileContents {
    int64 start = 1;
    bytes content = 2;
  }
  message Directory {
    string name = 1;
    int32 permissions = 3;
  }

  oneof request {
    File file = 1;
    Directory directory = 2;
    FileContents contents = 3;
  }
}


enum Hash {
  blake3 = 0;
  sha256 = 1;
}

message AddUrlRequest {
  string url = 1;
  Hash hash_algorithm = 2;
  bytes hash = 3;
}

message DerivationRequest {
  string name = 1;
  string builder = 2;
  repeated string paths = 3;
  string target = 4;
  optional string output_hash = 5;
}

message PathPattern {
  string pattern = 1;
  repeated string matches = 2;
}

message DerivationResult {
  repeated string destdir = 1;
  repeated string paths = 2;
  repeated PathPattern path_patterns = 3;
}

message DerivationReply {
  oneof result {
    DerivationResult ok = 1;
    string error = 2;
    bytes stdout = 3;
    bytes stderr = 4;
    string loading = 5;
  }
}

enum Arch {
  amd64 = 0;
  aarch64 = 1;
}

enum Endianness {
  big = 0;
  little = 1;
}

message UbuntuReleaseRequest {
  string release = 1;
  Arch arch = 2;
  string repository = 3;
}

message LinkExtra {
  string pkg = 1;
  string dep = 2;
}

message UbuntuPackageRequest {
  repeated string index = 1;
  string name = 2;
  repeated LinkExtra link_extra = 3;
}

message PlatformReply {
  Arch arch = 1;
  Endianness endianness = 2;
  int32 pointer_width = 3;
}

message Empty {}

service Elpe {
  rpc Handshake (Empty) returns (PlatformReply);
  rpc Derivation (DerivationRequest) returns (stream DerivationReply);
  rpc AddPath (stream AddPathRequest) returns (DerivationReply);
  rpc AddUrl (AddUrlRequest) returns (DerivationReply);
  rpc UbuntuRelease (UbuntuReleaseRequest) returns (DerivationReply);
  rpc UbuntuPackage (UbuntuPackageRequest) returns (stream DerivationReply);
}