You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current capnp-rust sends every message in 2 packets - a further minor slowdown
However we do need bi-directional RPC calls, so no simple server/client RPC would do.
Therefore it might be better to use different protocols for different interfaces:
For client, low latency is not critical while portability and ease of use are, so it may make sense to have a REST API (or gRPC). The monitoring javascript app already uses REST for information.
It would be nice to leverage serde-json for the messages
API can be specified with a tool to generate code stubs and verifiers (like Apiary?)
For server-worker communication, it would be ergonomic to use serde, tarpc or possibly even abomonation with some simple framing.
For worker-subworker communication, it would be best to have some multi-platform and simple and yet fast protocol. Here the solution is less clear, but the communication schema is simpler (even if ideally with bi-directional messages).
This issue is a basis for discussion of requirements and options. The transition from Capnp is not critical.
While it currently serves reasonably well, Capnp has several drawbacks for Rain:
finishpacket whenreturncarries no capabilities capnproto/capnproto#534).Therefore it might be better to use different protocols for different interfaces:
This issue is a basis for discussion of requirements and options. The transition from Capnp is not critical.