github.com/annwntech/go-micro/v2@v2.9.5/store/service/proto/store.proto (about) 1 syntax = "proto3"; 2 3 package go.micro.store; 4 5 service Store { 6 rpc Read(ReadRequest) returns (ReadResponse) {}; 7 rpc Write(WriteRequest) returns (WriteResponse) {}; 8 rpc Delete(DeleteRequest) returns (DeleteResponse) {}; 9 rpc List(ListRequest) returns (stream ListResponse) {}; 10 rpc Databases(DatabasesRequest) returns (DatabasesResponse) {}; 11 rpc Tables(TablesRequest) returns (TablesResponse) {}; 12 } 13 14 message Field { 15 // type of value e.g string, int, int64, bool, float64 16 string type = 1; 17 // the actual value 18 string value = 2; 19 } 20 21 message Record { 22 // key of the record 23 string key = 1; 24 // value in the record 25 bytes value = 2; 26 // time.Duration (signed int64 nanoseconds) 27 int64 expiry = 3; 28 // the associated metadata 29 map<string,Field> metadata = 4; 30 } 31 32 message ReadOptions { 33 string database = 1; 34 string table = 2; 35 bool prefix = 3; 36 bool suffix = 4; 37 uint64 limit = 5; 38 uint64 offset = 6; 39 } 40 41 message ReadRequest { 42 string key = 1; 43 ReadOptions options = 2; 44 } 45 46 message ReadResponse { 47 repeated Record records = 1; 48 } 49 50 message WriteOptions { 51 string database = 1; 52 string table = 2; 53 // time.Time 54 int64 expiry = 3; 55 // time.Duration 56 int64 ttl = 4; 57 } 58 59 message WriteRequest { 60 Record record = 1; 61 WriteOptions options = 2; 62 } 63 64 message WriteResponse {} 65 66 message DeleteOptions { 67 string database = 1; 68 string table = 2; 69 } 70 71 message DeleteRequest { 72 string key = 1; 73 DeleteOptions options = 2; 74 } 75 76 message DeleteResponse {} 77 78 message ListOptions { 79 string database = 1; 80 string table = 2; 81 string prefix = 3; 82 string suffix = 4; 83 uint64 limit = 5; 84 uint64 offset = 6; 85 } 86 87 88 message ListRequest { 89 ListOptions options = 1; 90 } 91 92 message ListResponse { 93 reserved 1; //repeated Record records = 1; 94 repeated string keys = 2; 95 } 96 97 message DatabasesRequest {} 98 99 message DatabasesResponse { 100 repeated string databases = 1; 101 } 102 103 message TablesRequest { 104 string database = 1; 105 } 106 107 message TablesResponse { 108 repeated string tables = 1; 109 }