|
6 | 6 |
|
7 | 7 | [gRPC Go](https://github.com/grpc/grpc-go) Proxy server |
8 | 8 |
|
9 | | -This is a fork of awesome [mwitkow/grpc-proxy](https://github.com/mwitkow/grpc-proxy) with support |
10 | | -for one to many proxying added. |
11 | | - |
12 | 9 | ## Project Goal |
13 | 10 |
|
14 | 11 | Build a transparent reverse proxy for gRPC targets that will make it easy to expose gRPC services |
15 | | -over the internet. |
| 12 | +over the Internet. |
16 | 13 |
|
17 | 14 | This includes: |
18 | 15 |
|
19 | 16 | * no needed knowledge of the semantics of requests exchanged in the call (independent rollouts) |
20 | | -* easy, declarative definition of backends and their mappings to frontends |
| 17 | +* easy declarative definition of backends and their mappings to frontends |
21 | 18 | * simple round-robin load balancing of inbound requests from a single connection to multiple backends |
22 | 19 |
|
23 | 20 | ## Proxying Modes |
24 | 21 |
|
25 | 22 | There are two proxying modes supported: |
26 | 23 |
|
27 | 24 | * one to one: in this mode data passed back and forth is transmitted as is without any modifications; |
28 | | -* one to many: one client connection is mapped into multiple upstream connections, results might be aggregated |
29 | | - (for unary calls), errors translated into response messages; this mode requires special layout of protobuf messages. |
| 25 | +* one to many: one client connection gets mapped into multiple upstream connections, results might be aggregated |
| 26 | + (for unary calls), errors translated into response messages; this mode requires a special layout of protobuf messages. |
30 | 27 |
|
31 | 28 | ## Proxy Handler |
32 | 29 |
|
33 | | -The package [`proxy`](proxy/) contains a generic gRPC reverse proxy handler that allows a gRPC server to |
34 | | -not know about registered handlers or their data types. |
| 30 | +The package [`proxy`](proxy/) contains a generic gRPC reverse proxy handler that allows a gRPC server not to |
| 31 | +know about method names and their request/response data types. |
35 | 32 | Please consult the package documentation. |
36 | 33 | Here you can find an example usage. |
37 | 34 |
|
@@ -100,6 +97,15 @@ concatenated to build a combined response from all the upstreams. |
100 | 97 | 2. Response should contain common metadata fields which allow grpc-proxy to inject source information and error information |
101 | 98 | into response. |
102 | 99 |
|
| 100 | +## Talks |
| 101 | + |
| 102 | +* "Transparent gRPC proxy in Go" at [GopherCon Russia 2021](https://www.gophercon-russia.ru/) [slides](https://speakerdeck.com/smira/transparent-grpc-gateway-in-go) |
| 103 | + |
| 104 | +## History |
| 105 | + |
| 106 | +This is a fork of awesome [mwitkow/grpc-proxy](https://github.com/mwitkow/grpc-proxy) package with added support |
| 107 | +for one to many proxying. |
| 108 | + |
103 | 109 | ## License |
104 | 110 |
|
105 | 111 | `grpc-proxy` is released under the Apache 2.0 license. |
|
0 commit comments