Add gRPC for communication interface
nomukaiki last edited by
It would be great to have an interface with Duet using gRPC.
Building other services to communicate with Duet would be much more simplified and efficient, leveraging http2 and a binary/compressed content, allowing streaming as well. More details here: https://cloud.google.com/blog/products/api-management/understanding-grpc-openapi-and-rest-and-when-to-use-them
As a developer, not having to deal with the semantics of the protocol and only focus on a remote operation and the data model, that is a huge value already. Then there is also the performance, version control, and.. streaming. What websockets simulate by masking a message from sender and unmasking on receiver, HTTP/2 does it natively and can have many streams (ws as well but need to be handled at application level).
Adding a gRPC interface on the RRF should be straightforward because the code generators for gRPC are very efficient and available for many (if not all) languages.