# gRPC

C++ based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

Repository: https://github.com/grpc/grpc
Canonical: https://ross.abutalabs.com/products/grpc
Homepage: https://grpc.io
Language: C++
License: Apache-2.0
License Family: permissive
Last push: 2026-08-26T23:10:58+00:00
Link (homepage): https://grpc.io
Link (site_page): https://grpc.io/about
Link (site_page): https://grpc.io/docs
Link (site_page): https://grpc.io/docs/guides
Link (site_page): https://grpc.io/docs/what-is-grpc/introduction

## Health v2 (maintenance only)
Score: 97/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 94, longevity 100
- inputs: {"age_days": 4286, "days_push": 7, "days_rel": 42, "gap_med": 16.0, "n_releases_24m": 31}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 45264, forks 11365 (observed 2026-08-28T04:12:09.531841+00:00)

## What it is
gRPC is a high-performance, open-source universal RPC framework that lets client and server applications communicate transparently across languages and platforms using Protocol Buffers as its IDL and HTTP/2-based transport. It supports bi-directional streaming, pluggable authentication, load balancing, tracing, and health checking, with idiomatic client libraries in many languages.

## Use cases
- build microservices that communicate across languages
- generate client and server stubs from a proto file
- stream data bidirectionally between services
- connect mobile apps and browsers to backend services
- replace REST APIs with efficient binary RPC
- implement service-to-service auth and health checking
- build polyglot distributed systems with deadlines and retries

## When to choose
- you need high-throughput, low-latency service-to-service communication
- your system spans multiple programming languages and you want generated stubs
- you need streaming RPCs or HTTP/2 multiplexing
- you want a typed contract (proto) shared between client and server
- you are building microservices at scale and need load balancing and health checking built in

## When to avoid
- you need simple browser-facing APIs without a proxy (gRPC-Web has limitations)
- your consumers prefer human-readable JSON and easy curl debugging
- you want a lightweight single-language project where a plain HTTP API suffices
- your team cannot manage protobuf code generation tooling
- you need loose coupling with third-party clients unfamiliar with proto contracts

## Facets
- artifact type: framework
- maturity: stable
- function: rpc, serialization, middleware, http-server, http-client, sdk
- domain: microservices, apis, backend, developer-tools
- platform: cross-platform, windows, browser, python, go, jvm, dotnet, cpp, rust, cli
- tags: grpc, protocol-buffers, protobuf, http2, streaming, idl, code-generation, polyglot, cncf, microservices-communication, linux, macos, android, ios, nodejs, web-server

## Member repositories
- grpc/grpc (main) score 97
- grpc/grpc-go (sdk) score 99
- grpc/grpc-java (sdk) score 99
- grpc/grpc-web (sdk) score 99
- grpc/grpc-node (sdk) score 89
- grpc/grpc-dotnet (sdk) score 89
- grpc/grpc-swift (sdk) score 91
- grpc/grpc-kotlin (sdk) score 52

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:12:09.531841+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:21:45.811005+00:00, confidence not recorded.
  - readme: https://github.com/grpc/grpc (fetched 2026-08-28T04:12:09.531841+00:00, sha 6732cd6113cd)
  - homepage: https://grpc.io (fetched 2026-08-29T07:45:35.818331+00:00, sha 4f937908a290)
  - site_page: https://grpc.io/docs/languages/rust/quickstart (fetched 2026-08-29T07:45:35.835390+00:00, sha 3fbffa8b7630)
  - site_page: https://grpc.io/about (fetched 2026-08-29T07:45:35.821079+00:00, sha 91c00373d7d1)
  - site_page: https://grpc.io/docs (fetched 2026-08-29T07:45:35.823467+00:00, sha 882e6f77fc0c)
  - site_page: https://grpc.io/docs/guides (fetched 2026-08-29T07:45:35.825524+00:00, sha 95d80376ba22)
  - site_page: https://grpc.io/docs/what-is-grpc/introduction (fetched 2026-08-29T07:45:35.827469+00:00, sha e59866b3e09f)
  - site_page: https://grpc.io/docs/languages/go/quickstart (fetched 2026-08-29T07:45:35.829529+00:00, sha d2cb0e5c4431)
  - site_page: https://grpc.io/docs/languages/cpp/quickstart (fetched 2026-08-29T07:45:35.831510+00:00, sha d8c106620d98)
  - site_page: https://grpc.io/docs/languages/java/quickstart (fetched 2026-08-29T07:45:35.833269+00:00, sha a7cd374daeec)
- Data as of 2026-08-30T08:39:29.467469+00:00.
