{"repo":"mwitkow/grpc-proxy","free":true,"listed":false,"github":"https://github.com/mwitkow/grpc-proxy","clone":"git clone https://github.com/mwitkow/grpc-proxy.git","description":"gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead.","language":"Go","stars":1048,"topics":["grpc","proxy","golang"],"license":"Apache-2.0","category":"networking-infra","readme_excerpt":"gRPC Proxy gRPC Go Proxy server Project Goal Build a transparent reverse proxy for gRPC targets that will make it easy to expose gRPC services over the internet. This includes: no needed knowledge of the semantics of requests exchanged in the call (independent rollouts) easy, declarative definition of backends and their mappings to frontends simple round-robin load balancing of inbound requests from a single connection to multiple backends The project now exists as a proof of concept , with the key piece being the proxy package that is a generic gRPC reverse proxy handler. Proxy Handler The package proxy contains a generic gRPC reverse proxy handler that allows a gRPC server to not know about registered handlers or their data types. Please consult the docs, here's an exaple usage. You can call proxy.NewProxy to create a grpc.Server that proxies requests. Then you need to register it with a grpc.Server . The server may have other handlers that will be served locally. Testing To make debugging a bit simpler, there are some helpers. testservice contains a method TestTestServiceServerImpl which performs a complete test against the reference implementation of the TestServiceServer . In proxy test.go , the test framework spins up a TestServiceServer that it tests the proxy against. To make debugging a bit simpler (eg. if the developer needs to step into google.golang.org/grpc methods), this TestServiceServer can be provided by a server by passing -test-backend=addr to go test . A s","default_branch":null,"files":null,"tree":[],"storefront":"/r/mwitkow","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mwitkow/grpc-proxy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}