README: update overview of project and provide usage

Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
Stephen J Day 2017-11-14 13:12:30 -08:00
parent 42ff40f1f1
commit 538d13ce1b
No known key found for this signature in database
GPG Key ID: 67B3DED84EDC823F

View File

@ -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.