OSS TanbouSign in with GitHub

define service contracts with Protocol Buffers and implement high-performance RPC over HTTP/2 across languages

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
45,361
Primary language
C++
License
Apache-2.0
Repository last updated
Oct 3, 2026
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.

Sources: [1][3]

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. [1]gRPC v1.84.0 README(2026-10-04)
  2. [2]gRPC v1.84.0 release(2026-10-04)
  3. [3]gRPC Python v1.84.0 package metadata(2026-10-04)
  4. [4]gRPC Python v1.84.0 version metadata(2026-10-04)
  5. [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. 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. 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. 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"))'
Check the official README

Growth

Growth trends · Last 30 days

45,361 Stars

Trend data is still being collected.

Built with

Categories and tags

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
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?