gRPC (gRPC Remote Procedure Call) je moderní, vysoce výkonný open-source framework pro vzdálené volání procedur. Původně byl vyvinut společností Google a nyní spadá pod Cloud Native Computing Foundation (CNCF).
Umožňuje klientským a serverovým aplikacím komunikovat spolu tak transparentně, jako by volání vzdálené metody bylo lokální funkcí.
gRPC stojí na dvou pilířích, které mu zajišťují rychlost a efektivitu:
Na rozdíl od standardního RESTu, gRPC podporuje čtyři režimy přenosu:
1. Unary: Klasický model požadavek-odpověď. 2. Server streaming: Klient pošle jeden požadavek a server odpovídá proudem dat. 3. Client streaming: Klient posílá proud dat a server odpoví jednou zprávou. 4. Bidirectional streaming: Obě strany posílají proudy dat nezávisle na sobě (obousměrný duplex).
| Vlastnost | gRPC | REST |
|---|---|---|
| Formát dat | Binární (Protobuf) | Textový (JSON, XML) |
| Protokol | Striktně HTTP/2 | HTTP/1.1 nebo HTTP/2 |
| Typování | Silné (definované v .proto souboru) | Slabé (volitelně JSON Schema) |
| Rychlost | Velmi vysoká (nízká latence) | Nižší (režie textového formátu) |