Что такое gRPC

«Что такое gRPC» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

gRPC — это современный фреймворк для удалённого вызова процедур (RPC), разработанный Google. Он использует HTTP/2 для транспорта и Protocol Buffers (protobuf) как язык описания интерфейсов и формат сериализации данных.

Преимущества:

  • Высокая производительность (бинарный протокол, мультиплексирование через HTTP/2).
  • Поддержка потоковой передачи (unary, server-streaming, client-streaming, bidirectional).
  • Кросс-языковая совместимость (генерирует код для многих языков).

Пример proto-файла:

service UserService {
  rpc GetUser (UserRequest) returns (UserResponse);
}

message UserRequest {
  int32 id = 1;
}

message UserResponse {
  string name = 1;
  string email = 2;
}

В Android используется с библиотекой grpc-kotlin или grpc-java. Подходит для микросервисов, чатов и других сценариев с низкими задержками.