What is gRPC?

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...
gRPC is a tool in the Remote Procedure Call (RPC) category of a tech stack.
gRPC is an open source tool with 21.7K GitHub stars and 5K GitHub forks. Here’s a link to gRPC's open source repository on GitHub

Who uses gRPC?

Companies
50 companies use gRPC in their tech stacks, including 9GAG, Slack, and Tech Stack.

Developers
46 developers use gRPC.

gRPC Integrations

Ambassador, Continuous Delivery Service, BloomRPC, Cilium, and Beam are some of the popular tools that integrate with gRPC. Here's a list of all 5 tools that integrate with gRPC.

Why developers like gRPC?

Here’s a list of reasons why companies and developers use gRPC
Top Reasons
gRPC Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose gRPC in their tech stack.

Noah Zoschke
Noah Zoschke
Engineering Manager at Segment · | 28 upvotes · 49.8K views
atSegment
Datadog
TypeScript
Envoy
gRPC
Go
#Observability
#Reliability
#Security
#Json
#REST
#Framework

We just launched the Segment Config API (try it out for yourself here) — a set of public REST APIs that enable you to manage your Segment configuration. Behind the scenes the Config API is built with Go , GRPC and Envoy.

At Segment, we build new services in Go by default. The language is simple so new team members quickly ramp up on a codebase. The tool chain is fast so developers get immediate feedback when they break code, tests or integrations with other systems. The runtime is fast so it performs great at scale.

For the newest round of APIs we adopted the GRPC service #framework.

The Protocol Buffer service definition language makes it easy to design type-safe and consistent APIs, thanks to ecosystem tools like the Google API Design Guide for API standards, uber/prototool for formatting and linting .protos and lyft/protoc-gen-validate for defining field validations, and grpc-gateway for defining REST mapping.

With a well designed .proto, its easy to generate a Go server interface and a TypeScript client, providing type-safe RPC between languages.

For the API gateway and RPC we adopted the Envoy service proxy.

The internet-facing segmentapis.com endpoint is an Envoy front proxy that rate-limits and authenticates every request. It then transcodes a #REST / #JSON request to an upstream GRPC request. The upstream GRPC servers are running an Envoy sidecar configured for Datadog stats.

The result is API #security , #reliability and consistent #observability through Envoy configuration, not code.

We experimented with Swagger service definitions, but the spec is sprawling and the generated clients and server stubs leave a lot to be desired. GRPC and .proto and the Go implementation feels better designed and implemented. Thanks to the GRPC tooling and ecosystem you can generate Swagger from .protos, but it’s effectively impossible to go the other way.

See more
Omid Farhang
Omid Farhang
Sr. Full Stack Developer · | 4 upvotes · 6.6K views
Material Design for Angular
gRPC
TypeScript
Webpack
npm
Angular 2

I really enjoy my project when I use Angular 2 and above because I have full control over everything and easy I can make it #SSR and add everything I need using npm and let Webpack to bundle them all, Thanks to TypeScript for making it easy to write minimal and manageable code. It was so easy to integrate gRPC into our project. Since we have been using Material Design for Angular we spend all our time on writing Clean Code and not much time for UI.

See more
Naresh Kancharla
Naresh Kancharla
Staff Engineer at Nutanix · | 3 upvotes · 1.1K views
gRPC

I use gRPC because it is based on http/2 and provides advantages when used at scale. With protobuff grpc will be more efficient and easy to integrate. Grpc can give efficient way to talk to server it can open persistent connections and also asynchronous communication between client and server.

See more

gRPC's features

  • Simple service definition
  • Works across languages and platforms
  • Start quickly and scale
  • Works across languages and platforms
  • Bi-directional streaming and integrated auth

gRPC Alternatives & Comparisons

What are some alternatives to gRPC?
GraphQL
GraphQL is a data query language and runtime designed and used at Facebook to request and deliver data to mobile and web apps since 2012.
RabbitMQ
RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
Kafka
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.

gRPC's Stats