On this page
Overview
gRPC is a framework for defining and executing RPCs between clients and servers. Protocol Buffer service definitions generate typed stubs, while HTTP/2 transport, streaming, deadlines, and metadata support cross-language service communication. This repository contains the shared C++ core and several language bindings.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Generate typed client and server APIs from service definitions
Protocol Buffer service and message definitions can generate client stubs and server interfaces for supported languages, keeping the RPC contract synchronized with code.
Sources: [1]
Use HTTP/2 as the basis for unary and streaming RPCs
The Python package metadata describes gRPC as an HTTP/2-based RPC framework, while language runtimes expose RPC APIs through each ecosystem's normal package manager.
Develop a shared C++ core alongside multiple language bindings
This repository includes the C++ core plus C++, Python, Ruby, PHP, Objective-C, and other bindings, while Java, Go, Node, .NET, and several other ecosystems live in separate repositories.
Sources: [1]
Best fit
Fits distributed systems that need strict contracts and low-latency service-to-service RPC
It is useful for microservices and backend systems that want generated APIs shared across languages together with streaming and metadata-capable communication.
Sources: [1]
Before adoption
Packages, repositories, and release cadence differ by language
gRPC is a multi-language ecosystem, but several runtimes such as Java and Go are maintained in separate repositories. Pin the runtime package, generator, and compatibility requirements for the language actually deployed.
Sources: [1]
Version 1.84.0 includes changes across xDS, subchannels, and Python runtime behavior
The 1.84.0 release includes Core changes for xDS, weighted round robin, connection scaling and proxy handling plus Python AsyncIO and metadata fixes. Review both language-specific and core release notes during upgrades.
Sources: [2]
Official sources
- [1]gRPC v1.84.0 README(2026-10-04)
- [2]gRPC v1.84.0 release(2026-10-04)
- [3]gRPC Python v1.84.0 package metadata(2026-10-04)
- [4]gRPC Python v1.84.0 version metadata(2026-10-04)
- [5]gRPC Apache 2.0 license(2026-10-04)
Supplemental curator note
Runtime repositories and packages differ by language. Do not assume this repository's release version is identical to Java, Go, Node, .NET, or other separately maintained runtimes.
Try it in 3 steps
- 1
Create a virtual environment for gRPC Python 1.84.0
Pin the Python runtime and Protocol Buffer generator to the same 1.84.0 release.
python3 -m venv grpc-demo && . grpc-demo/bin/activate && python -m pip install --upgrade pip && python -m pip install 'grpcio==1.84.0' 'grpcio-tools==1.84.0' - 2
Generate Python stubs from a minimal service definition
Generate message classes and a gRPC stub from the proto contract without starting a server.
mkdir -p grpc-demo/work && printf '%s\n' 'syntax = "proto3";' 'package demo;' 'service Greeter { rpc SayHello (HelloRequest) returns (HelloReply); }' 'message HelloRequest { string name = 1; }' 'message HelloReply { string message = 1; }' > grpc-demo/work/hello.proto && . grpc-demo/bin/activate && python -m grpc_tools.protoc -I grpc-demo/work --python_out=grpc-demo/work --grpc_python_out=grpc-demo/work grpc-demo/work/hello.proto - 3
Verify the runtime version and generated modules
Confirm the runtime and generated service/stub without opening a network connection.
. grpc-demo/bin/activate && PYTHONPATH=grpc-demo/work python -c 'import grpc, hello_pb2, hello_pb2_grpc; print(grpc.__version__); print(hello_pb2.DESCRIPTOR.services_by_name["Greeter"].full_name); print(hasattr(hello_pb2_grpc, "GreeterStub"))'
Growth
Growth trends · Last 30 days
45,361 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
- Stars
- 45,361
- Forks
- 11,382
- Watchers
- 45,361
- Open issues
- 1,355
- Owner type
- Organization
- Primary language
- C++
- License
- Apache-2.0
- Repository last updated
- Oct 3, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Godot Engine118,086 Stars
2 shared tag(s) · Same language
Build 2D and 3D games in one editor and export them to desktop, mobile, and the web
C++ - OpenCV91,053 Stars
2 shared tag(s) · Same language
a computer-vision foundation with major toolchain and API changes in 5.0
C++ - Bitcoin Core90,305 Stars
2 shared tag(s) · Same language
Fully validate Bitcoin peer-to-peer blocks and transactions yourself while optionally running wallet and RPC services on the same node
C++ - HTTPie CLI38,647 Stars
3 shared tag(s) · 1 shared category(s)
compose API requests with syntax optimized for human-readable terminal work
Python - OpenSearch13,804 Stars
3 shared tag(s)
Support distributed full-text, analytics, observability, and vector search
Java - Apache HttpClient1,535 Stars
2 shared tag(s) · 2 shared category(s)
build Java HTTP/1.1 and HTTP/2 clients with connection management, authentication, cookies, and caching
Java
Report incorrect information
Tell us if any listing information is incorrect or outdated.