From 538d13ce1b69c6e541ff83540683a519e6d4fa9a Mon Sep 17 00:00:00 2001 From: Stephen J Day Date: Tue, 14 Nov 2017 13:12:30 -0800 Subject: [PATCH] README: update overview of project and provide usage Signed-off-by: Stephen J Day --- README.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 01df572..9852ddb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,31 @@ # mgrpc -GRPC for low-memory environments + +GRPC for low-memory environments. + +The existing grpc-go project requires a lot of memory overhead for importing +packages and at runtime. While this is great for many services with low density +requirements, this can be a problem when running a large number of services on +a single machine or on a machine with a small amount of memory. + +This project reduces the binary size and protocol overhead when working with +GRPC. We do this by eliding the `net/http` and `net/http2` package used by grpc +with a lightweight framing protocol We do this by eliding the `net/http` and +`net/http2` package used by grpc with a lightweight framing protocol. + +Please note that while this project supports generating either end of the +protocol, the generated service definitions will be incompatible with regular +GRPC services, as they do not speak the same protocol. + +# Usage + +Create a gogo vanity binary (see +[`cmd/protoc-gen-gogomgrpc/main.go`](cmd/protoc-gen-gogomgrpc/main.go) for an +example with the mgrpc plugin enabled. + +It's recommended to use [`protobuild`](https://github.com/stevvooe/protobuild) +to build the protobufs for this project, but this will work with protoc +directly, if required. + +# Status + +Very new. YMMV.