Add a client stub implementation
To achieve minimum viability as a Google gRPC substitute, grpcxx needs a client stub implementation to accompany its server-only implementation.
It should:
- generate the stub code in the
.grpcxx.pb.hheader - have a base client implementation which uses coroutines
Relates to https://github.com/uatuko/grpcxx/discussions/35 and https://github.com/uatuko/grpcxx/issues/38.
Relates to #35 and #38.
For sure #35, not sure #38 is strongly linked.
An independent client implementation could always be used, I don't see it a hard dep for HTTP/3 support. Adding QUIC support to grpcxx shouldn't be extremely hard even right now, the main issue is the need to abstract code which uses TCP connections as QUIC is over UDP by default.
At that point, I would advise also supporting unix sockets for local IPC, since it makes sense to do the work only once.
#38 is related in the sense there aren't any HTTP/3 gRPC clients at the moment (at least not that I'm aware of), so if we implement HTTP/3 there must be a client to use it with.
Not saying we need to implement an HTTP/3 client in this issue, just wanted to keep related issues linked for future reference.
Yes, this would be very valuable in unit tests f.i.