Skip to content

Commit

Permalink
docs: update README
Browse files Browse the repository at this point in the history
Some clarifications, add a link to the slides.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
  • Loading branch information
smira authored and talos-bot committed Apr 23, 2021
1 parent fa6843a commit 82daca0
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,29 @@

[gRPC Go](https://github.com/grpc/grpc-go) Proxy server

This is a fork of awesome [mwitkow/grpc-proxy](https://github.com/mwitkow/grpc-proxy) with support
for one to many proxying added.

## Project Goal

Build a transparent reverse proxy for gRPC targets that will make it easy to expose gRPC services
over the internet.
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
* 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

## Proxying Modes

There are two proxying modes supported:

* one to one: in this mode data passed back and forth is transmitted as is without any modifications;
* one to many: one client connection is mapped into multiple upstream connections, results might be aggregated
(for unary calls), errors translated into response messages; this mode requires special layout of protobuf messages.
* one to many: one client connection gets mapped into multiple upstream connections, results might be aggregated
(for unary calls), errors translated into response messages; this mode requires a special layout of protobuf messages.

## Proxy Handler

The package [`proxy`](proxy/) contains a generic gRPC reverse proxy handler that allows a gRPC server to
not know about registered handlers or their data types.
The package [`proxy`](proxy/) contains a generic gRPC reverse proxy handler that allows a gRPC server not to
know about method names and their request/response data types.
Please consult the package documentation.
Here you can find an example usage.

Expand Down Expand Up @@ -100,6 +97,15 @@ concatenated to build a combined response from all the upstreams.
2. Response should contain common metadata fields which allow grpc-proxy to inject source information and error information
into response.

## Talks

* "Transparent gRPC proxy in Go" at [GopherCon Russia 2021](https://www.gophercon-russia.ru/) [slides](https://speakerdeck.com/smira/transparent-grpc-gateway-in-go)

## History

This is a fork of awesome [mwitkow/grpc-proxy](https://github.com/mwitkow/grpc-proxy) package with added support
for one to many proxying.

## License

`grpc-proxy` is released under the Apache 2.0 license.
Expand Down

0 comments on commit 82daca0

Please sign in to comment.