| Autor | |
|---|---|
| Pierwsze wydanie | 0.5.0 – 26 lutego 2015; około 11 lat temu |
| Aktualna wersja stabilna | 1.76.0 (20 października 2025) [±] |
| Język programowania | Android Java, C#, C++, Dart, Go, Java, Kotlin/JVM, Node.js, Objective-C, PHP, Python, Ruby |
| Platforma sprzętowa | wieloplatformowy |
| Rodzaj | protokół RPC |
| Licencja | Apache License 2.0 |
| Strona internetowa | |
gRPC (gRPC Remote Procedure Calls) – wieloplatformowy, otwartoźródłowy oraz wysokowydajny framework protokołu zdalnego wywołania procedury. Został napisany przez Google będąc wersją rozwojową ich wewnętrznego protokołu RPC o nazwie Stubby wykorzystywanego do komunikacji pomiędzy licznymi mikroserwisami działającymi w centrach danych od 2001 roku. W marcu 2015 roku zapadła decyzja o zastąpieniu Stubby nowym protokołem, który miał być tworzony jako otwarte oprogramowanie. Efektem tych prac było wydanie w 2016 roku pierwszej wersji gRPC.
gRPC wykorzystuje HTTP/2 jako protokół komunikacyjny oraz Protocol Buffers jako język opisu interfejsu, definiujący również format serializacji i kodowanie danych. W celu uwierzytelniania stosowany jest protokół kryptograficzny TLS. Obsługiwane są dwa typy list uwierzytelniających: kanałowa (ang. channel) oraz wywoławcza (ang. call). Do autoryzacji dostarczane są dwa typy przechwytywaczy: Service Interceptor oraz Client Interceptor.
Ze względu na silne oparcie się o HTTP/2 nie jest możliwa implementacja klienta gRPC w przeglądarce internetowej, w tym celu wymagane jest użycie odpowiedniego proxy.
gRPC wykorzystuje się głównie do komunikacji pomiędzy serwisami w architekturze mikroserwisów oraz komunikacji urządzeń mobilnych z serwisami backendowymi. Do swoich rozwiązań produkcyjnych został on zaadaptowany przez między innymi Uber, Block, Inc., Netflix, IBM, Docker, Arista Networks, Cisco Systems, Spotify, Dropbox oraz własnego autora Google.
Otwartoźródłowy project u-bmc wykorzystuje gRPC jako zastępstwo dla Intelligent Platform Management Interface.