Схема описується у .proto-файлі, з якого генерується код клієнта і сервера будь-якою підтримуваною мовою. Бінарний формат — компактніший і швидший за JSON.
message User {
int32 id = 1;
string name = 2;
}
service UserService {
rpc GetUser (UserRequest) returns (User);
}gRPC погано підходить для публічних API (браузери не підтримують без grpc-web proxy). Ідеальний для внутрішньої комунікації між мікросервісами.