gRPC

gRPC
Developer(s)Google
Initial releaseAugust 2016; 7 years ago (2016-08)
Stable release
1.60.0 / November 29, 2023; 2 months ago (2023-11-29)
Repository
Written inAndroid Java, C#, C++, Dart, Go, Java, Kotlin/JVM, Node.js, Objective-C, PHP, Python, Ruby
TypeRemote procedure call framework
LicenseApache License 2.0
Websitegrpc.io

gRPC (gRPC Remote Procedure Calls) is a cross-platform open source high performance remote procedure call (RPC) framework. gRPC was initially created by Google, which used a single general-purpose RPC infrastructure called Stubby to connect the large number of microservices running within and across its data centers from about 2001. In March 2015, Google decided to build the next version of Stubby and make it open source. The result was gRPC, which is now used in many organizations aside from Google to power use cases from microservices to the "last mile" of computing (mobile, web, and Internet of Things). It uses HTTP/2 for transport, Protocol Buffers as the interface description language, and provides features such as authentication, bidirectional streaming and flow control, blocking or nonblocking bindings, and cancellation and timeouts. It generates cross-platform client and server bindings for many languages. Most common usage scenarios include connecting services in a microservices style architecture, or connecting mobile device clients to backend services.

gRPC's complex use of HTTP/2 makes it impossible to implement a gRPC client in the browser, instead requiring a proxy.

Authentication

gRPC supports the usage of Transport Layer Security (TLS) and token-based authentication. Connection to Google services must use TLS. There are two types of credentials: channel credentials and call credentials. For token-based authorization, gRPC provides Server Interceptor and a Client Interceptor.

Encoding

gRPC uses Protocol Buffers to encode data. Protocol buffers provide a serialization format and an Interface Definition Language.

Testing

Some of the software tools used for testing gRPC implementations include Postman, ezy, Insomnia, and Step CI.

Adoption

A number of different organizations have adopted gRPC, such as Uber, Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Arista Networks, Cisco, Juniper Networks, Spotify, Zalando, Dropbox, and Google as the original developer.

The open source project u-bmc uses gRPC to replace Intelligent Platform Management Interface (IPMI). On 8 January 2019, Dropbox announced that the next version of "Courier", their RPC framework at the core of their service-oriented architecture (SOA), would be migrated to be based on gRPC, primarily because it aligned well with their existing custom RPC frameworks.

Alternatives to gRPC

See also


This page was last updated at 2024-02-07 07:52 UTC. Update now. View original page.

All our content comes from Wikipedia and under the Creative Commons Attribution-ShareAlike License.


Top

If mathematical, chemical, physical and other formulas are not displayed correctly on this page, please useFirefox or Safari