syntax = "proto3"; package chiraldb; service ChiralDb { rpc GetDescription(RequestDescription) returns (ReplyDescription) {} rpc QuerySimilarity(RequestSimilarity) returns (ReplySimilarity) {} rpc QuerySubstructure(RequestSubstructure) returns (ReplySubstructure) {} } /// /// Description of Data /// message RequestDescription {} message ReplyDescription { string desc = 1; } /// /// Molecule /// message Molecule { string smiles = 1; } message Fragment { string smarts = 1; } /// /// Similarity Search /// message RequestSimilarity { string doc_name = 1; Molecule mol = 2; float cutoff = 3; } message ReplySimilarity { map results = 1; } /// /// Substructure Search /// message RequestSubstructure { string doc_name = 1; Fragment frag = 2; } message MatchSubstructure { repeated int32 matches = 1; } message ReplySubstructure { map results = 1; }