gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.

The main usage scenarios:
  • Efficiently connecting polyglot services in microservices style architecture

  • Connecting mobile devices, browser clients to backend services

  • Generating efficient client libraries

Core Features that make it awesome:
  • Idiomatic client libraries in 10 languages

  • Highly efficient on wire and with a simple service definition framework

  • Bi-directional streaming with http/2 based transport

  • Pluggable auth, tracing, load balancing and health checking


Cases: Who’s using them and why?

Many companies are already using gRPC for connecting multiple services in their environments. The use case varies from connecting a handful of services to hundreds of services across various languages in on-prem or cloud environments. Below are details and quotes from some of our early adopters.

Check out what people are saying below:

Presentations & Talks

gRPC has been talked about in many conferences and sessions. Here are a few interesting ones:

Building microservices with gRPC and Kubernetes (Video)

Building a scalable Python gRPC service using kubernetes, 2015

Real time IOT with containers and gRPC (Video)

gRPC Talk at Gotham Go 2015

gRPC Design and Implementation, Stanford Platforms Lab, March 2016

gRPC Overview: Talk at Slack, Feb 2016

Google and Intel speak on NFV and SFC Service Delivery (Presentation)

Building Microservices with gRPC and Kubernetes, 2016 (Video)


Officially Supported Platforms
Language
Platform
Compiler
C/C++
Linux
  • GCC 4.4
  • GCC 4.6
  • GCC 5.3
  • Clang 3.5
  • Clang 3.6
  • Clang 3.7
C/C++
Windows 7+
Visual Studio 2013+
C#
  • Windows 7+
  • Linux
  • Mac
  • .NET Core, .NET 4.5+
  • .NET Core, Mono 4+
  • .NET Core, Mono 4+
Node.js
Windows/Linux/Mac
Node v4+
PHP *
Linux/Mac
PHP 5.5+ and PHP 7.0+
Ruby
Windows/Linux/Mac
Python
Windows/Linux/Mac
Python 2.7 and Python 3.4+
Go
Windows/Linux/Mac
Go 1.5+
Java
Windows/Linux/Mac
JDK 8 recommended. Gingerbread+ for Android
* still in beta

The story behind gRPC

Google has been using a single general-purpose RPC infrastructure called Stubby to connect the large number of microservices running within and across our data centers for over a decade. Our internal systems have long embraced the microservice architecture gaining popularity today. Stubby has powered all of Google’s microservices interconnect for over a decade and is the RPC backbone behind every Google service that you use today. In March 2015, we decided to build the next version of Stubby in the open so we can share our learnings with the industry and collaborate with them to build the next version of Stubby both for microservices inside and outside Google but also for last mile of computing (mobile, web and IOT).

For more background on why we created gRPC, read the gRPC Motivation and Design Principles blog