The goal of this project is to implement a simple version of gRPC from scratch, using only the standard library of the Go programming language. This project is intended for educational purposes and to gain a deeper understanding of how gRPC works under the hood.
In a first step, I want to support all method types (unary, server streaming, client streaming, and bidirectional streaming) over HTTP/2.
In a second step, I want to implement my own version of Protocol Buffers for
serialization and deserialization of messages. I'm thinking of using Go structs
as the schema definition. Using struct tags and reflection.
The other option would be to use my own protoc compiler plugin to generate
the necessary code for serialization and deserialization for each message type,
similar to github.com/pquerna/ffjson.
Or maybe just provide some helper functions to make it easier to implement the
serialization and deserialization manually.