https://github.com/dogmatiq/protean
This is an alternative to gRPC.
Perhaps we could have a make variable that is a list of generators to use when a protocol buffers service definition is found. Default it to just grpc to keep the current behaviour. Both Protean and gRPC code can be generated from the same service definition.