# mwitkow/grpc-proxy

gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead.

Repository: https://github.com/mwitkow/grpc-proxy
Canonical: https://ross.abutalabs.com/products/grpc-proxy
Language: Go
License: Apache-2.0
License Family: permissive
Topics: grpc, proxy, golang
Last push: 2026-03-18T21:32:48+00:00

## Health v2 (maintenance only)
Score: 65/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 72, release rhythm 35, longevity 100
- inputs: {"age_days": 3979, "days_push": 168, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1048, forks 226 (observed 2026-08-28T04:03:22.442683+00:00)

## What it is
A Go library providing a transparent gRPC reverse proxy handler that routes gRPC calls to backends without knowledge of their service semantics. It supports declarative backend mapping via a director function and simple round-robin load balancing.

## Use cases
- expose gRPC services over the internet through a reverse proxy
- route gRPC calls to different backends based on hostname or metadata
- load balance gRPC requests across multiple backend services
- block internal gRPC methods from external clients at a proxy layer
- proxy gRPC traffic without regenerating service stubs

## When to choose
- you need a transparent gRPC reverse proxy in Go with minimal overhead
- you want routing decisions based on :authority or metadata without knowing request payloads
- you need to mix locally-served handlers with proxied unknown services in one gRPC server

## When to avoid
- you need an HTTP/2 or general-purpose reverse proxy rather than gRPC-specific routing
- you need advanced features like retries, circuit breaking, or observability out of the box
- you want a maintained, feature-rich solution - the project is described as a proof of concept

## Facets
- artifact type: library
- maturity: maintenance
- function: proxy, rpc, routing, middleware
- domain: backend, microservices, networking, apis
- platform: go, windows, cross-platform
- tags: grpc, reverse-proxy, load-balancing, transparent-proxy, linux, macos

## Member repositories
- mwitkow/grpc-proxy (main) score 65

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:22.442683+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-30T07:00:48.331477+00:00, confidence not recorded.
  - readme: https://github.com/mwitkow/grpc-proxy (fetched 2026-08-28T04:03:22.442683+00:00, sha aa3c965b071a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
