Add StreamRPC library code
Part of gitlab-com/gl-infra/scalability#1125 (closed).
In gitlab-com/gl-infra&463 (closed), we are adding a new RPC protocol called StreamRPC to Gitaly for the benefit of the RPC's that handle git fetch
over HTTP: PostUploadPack
and PackObjectsHook
. This MR adds code that can:
- handle a new connection on the server and route it to an RPC handler function:
streamrpc.Server.Handle
- make a call to a specific endpoint:
streamrpc.Call
- gRPC middleware support in both of these methods so we can re-use the Gitaly middleware stack
It does not yet add the capability for Gitaly to accept StreamRPC calls (this is blocked by !3593 (merged)) nor any RPC's that use StreamRPC.
Edited by Jacob Vosmaer