100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Web

gRPC

By Google

AdvancedProtocol12.2K learners

gRPC is a high-performance, open-source remote procedure call (RPC) framework, developed by Google, that uses Protocol Buffers for efficient, strongly typed service-to-service communication.

#GRPC#Web#Protocol#Advanced#GraphQL#Kubernetes#Go#Python#WebDevelopment#Glossary#SkillVeris

Definition

gRPC is a high-performance, open-source remote procedure call (RPC) framework, developed by Google, that uses Protocol Buffers for efficient, strongly typed service-to-service communication.

Overview

gRPC lets a client call a method on a remote server as if it were a local function, hiding the networking details behind generated client and server code. Services are defined in a `.proto` file using Protocol Buffers, a compact binary serialization format, from which gRPC generates strongly typed client and server code in many programming languages. Because it runs over HTTP/2, gRPC supports features that plain REST over HTTP/1.1 struggles with, including multiplexed requests over a single connection and multiple streaming modes: client streaming, server streaming, and full bidirectional streaming. Combined with Protocol Buffers' compact binary encoding, this typically makes gRPC faster and more bandwidth-efficient than JSON-based REST APIs for service-to-service traffic. These characteristics make gRPC especially popular for internal microservice-to-microservice communication inside systems built on Kubernetes, often written in languages like Go or Python, while public-facing APIs more often still use REST or GraphQL for broader client compatibility and easier debugging. The API Design & Best Practices course covers when gRPC is the right choice compared to these alternatives.

Specification

  • Protocol Buffers for compact, strongly typed binary serialization
  • Runs over HTTP/2 with multiplexed requests over one connection
  • Native support for client, server, and bidirectional streaming
  • Auto-generated client and server code across many languages
  • Strongly typed service contracts defined in .proto files
  • Built-in support for deadlines, cancellation, and retries
  • Widely used for internal microservice-to-microservice communication

Use Cases

High-performance communication between internal microservices
Streaming data between services in real time
Polyglot systems needing strongly typed cross-language contracts
Low-latency APIs for mobile or IoT clients
Service meshes and infrastructure requiring efficient RPC calls

History

gRPC is a high-performance remote procedure call (RPC) framework that Google developed from its internal system "Stubby" and open-sourced in 2015 — the same year it released HTTP/2, which gRPC uses as its transport. gRPC uses Protocol Buffers as its interface definition language and serialization format, generating client and server stubs across many languages, and supports features such as bidirectional streaming, flow control, deadlines, and cancellation. Its design targets efficient, strongly typed service-to-service communication in microservice architectures. gRPC is now a project of the Cloud Native Computing Foundation (CNCF), reflecting its central role in cloud-native infrastructure.

Sources

Frequently Asked Questions