gRPC это современный высокопроизводительный RPC фрймворк с открытым исходным кодом. Выпущен Google в 2016 году как продолжение внутреннего проекта под названием Stubby.
Он позволяет описать сервис и сгенерировать как код для клиентов, так и “заглушку” для сервера на популярных языках программирования.
Для описания сервиса используется Protobuf. Поддерживаются стандартные (унарные) “запросы-ответы” и потоки сообщений.
service HelloService {
rpc SayHello (HelloRequest) returns (HelloResponse);
}
message HelloRequest {
string greeting = 1;
}
message HelloResponse {
string reply = 1;
}
Может быть особенно полезен, где есть несколько внутренных сервисов, общающихся между собой. В виду особенностей использования HTTP/2, gRPC не поддерживается браузерами.