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