syntax = "proto3"; package grpc; service ProximityDB { rpc Search(SearchRequest) returns (stream SearchResponse) {} rpc Add(stream AddRequest) returns (AddResponse) {} rpc Delete(DeleteRequest) returns (DeleteResponse) {} // Meta information rpc List(ListRequest) returns (stream DescribeResponse) {} rpc Describe(DescribeRequest) returns (DescribeResponse) {} } message Point { repeated float coords = 1; } message AddRequest { string name = 1; repeated Point points = 2; } message AddResponse { uint64 total_added = 1; } message SearchRequest { string name = 1; float distance = 2; Point point = 3; } message SearchResponse { float distance = 1; Point point = 2; } message DeleteRequest { string name = 1; repeated Point points = 2; } message DeleteResponse { int32 deleted_count = 1; } // Meta information message ListRequest { string prefix = 1; } message DescribeRequest { string name = 1; } message DescribeResponse { string name = 1; uint64 dimensions = 2; uint64 count = 3; uint64 memory_size = 4; }