Jump to content

gRPC

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Monkbot (talk | contribs) at 00:39, 27 January 2021 (Task 18 (cosmetic): eval 8 templates: hyphenate params (1×);). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

gRPC
Developer(s)Google
Initial releaseAugust 2016; 8 years ago (2016-08)
Stable release
1.35.0
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[1]) is an open source remote procedure call (RPC) system initially developed at Google in 2015.[2] 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 microservices style architecture and connect mobile devices, browser clients to backend services.[3]

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

Authentication

gRPC supports the usage of TLS and token based authentication. Connection to Google services must use TLS. There are two types of credentials: channel credentials and call credentials.[5]

Encoding

gRPC uses protocol buffers to encode the data. Contrary to HTTP APIs with JSON, they have a more strict specification. Due to having a single specification, gRPC eliminates debate and saves developer time because gRPC is consistent across platforms and implementations.[6]

Adoption

A number of different organizations have adopted gRPC, such as Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks,[7] Spotify,[8] and Dropbox.[9]

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

See also

References

  1. ^ https://grpc.io/faq#what-does-grpc-stand-for
  2. ^ Introducing gRPC, a new open source HTTP/2 RPC Framework
  3. ^ https://grpc.io/about/
  4. ^ "The state of gRPC in the browser". gRPC.
  5. ^ "gRPC". grpc.io. Retrieved 2020-02-24.
  6. ^ JamesNK. "Compare gRPC services with HTTP APIs". docs.microsoft.com. Retrieved 2020-02-24.
  7. ^ "gRPC". grpc.io. Retrieved 2020-02-24.
  8. ^ "gRPC at Spotify" (PDF). jfokus.se. Retrieved 2020-05-12.
  9. ^ "How we migrated Dropbox from Nginx to Envoy". Dropbox.Tech. Retrieved 2020-10-30.
  10. ^ "u-bmc". GitHub.com.
  11. ^ Nigmatullin, Ruslan; Ivanov, Alexey (2019-01-08). "Courier: Dropbox migration to gRPC". Retrieved 2019-01-09.