Add gRPC for communication interface
-
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.