91 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
syntax = "proto3";
 | 
						|
 | 
						|
package go.micro.store;
 | 
						|
 | 
						|
service Store {
 | 
						|
	rpc Read(ReadRequest) returns (ReadResponse) {};
 | 
						|
	rpc Write(WriteRequest) returns (WriteResponse) {};
 | 
						|
	rpc Delete(DeleteRequest) returns (DeleteResponse) {};
 | 
						|
	rpc List(ListRequest) returns (stream ListResponse) {};
 | 
						|
	rpc Databases(DatabasesRequest) returns (DatabasesResponse) {};
 | 
						|
	rpc Tables(TablesRequest) returns (TablesResponse) {};
 | 
						|
}
 | 
						|
 | 
						|
message Record {
 | 
						|
	// key of the record
 | 
						|
	string key = 1;
 | 
						|
	// value in the record
 | 
						|
	bytes value = 2;
 | 
						|
	// time.Duration (signed int64 nanoseconds)
 | 
						|
	int64 expiry = 3;
 | 
						|
}
 | 
						|
 | 
						|
message ReadOptions {
 | 
						|
	bool prefix   = 1;
 | 
						|
	bool suffix   = 2;
 | 
						|
	uint64 limit  = 3;
 | 
						|
	uint64 offset = 4;
 | 
						|
}
 | 
						|
 | 
						|
message ReadRequest {
 | 
						|
	string key          = 1;
 | 
						|
	ReadOptions options = 2;
 | 
						|
}
 | 
						|
 | 
						|
message ReadResponse {
 | 
						|
	repeated Record records = 1;
 | 
						|
}
 | 
						|
 | 
						|
message WriteOptions {
 | 
						|
	// time.Time
 | 
						|
	int64 expiry = 1;
 | 
						|
	// time.Duration
 | 
						|
	int64 ttl = 2;
 | 
						|
}
 | 
						|
 | 
						|
message WriteRequest {
 | 
						|
	Record record        = 1;
 | 
						|
	WriteOptions options = 2;
 | 
						|
}
 | 
						|
 | 
						|
message WriteResponse {}
 | 
						|
 | 
						|
message DeleteOptions {}
 | 
						|
 | 
						|
message DeleteRequest {
 | 
						|
	string key            = 1;
 | 
						|
	DeleteOptions options = 2;
 | 
						|
}
 | 
						|
 | 
						|
message DeleteResponse {}
 | 
						|
 | 
						|
message ListOptions {
 | 
						|
	string prefix = 1;
 | 
						|
	string suffix = 2;
 | 
						|
	uint64 limit  = 3;
 | 
						|
	uint64 offset = 4;
 | 
						|
}
 | 
						|
 | 
						|
message ListRequest {
 | 
						|
	ListOptions options = 1;
 | 
						|
}
 | 
						|
 | 
						|
message ListResponse {
 | 
						|
	reserved 1; //repeated Record records = 1;
 | 
						|
	repeated string keys = 2;
 | 
						|
}
 | 
						|
 | 
						|
message DatabasesRequest {}
 | 
						|
 | 
						|
message DatabasesResponse {
 | 
						|
	repeated string databases = 1;
 | 
						|
}
 | 
						|
 | 
						|
message TablesRequest {
 | 
						|
	string database = 1;
 | 
						|
}
 | 
						|
 | 
						|
message TablesResponse {
 | 
						|
	repeated string tables = 1;
 | 
						|
}
 |