Rework the wire-level protocol of VSG for better safety
The wire-level protocol of VSG just writes raw C structs in UNIX sockets. While it is simple a major drawback is that it is easy to get nasty bugs in the implementation of any party of the protocol. The Rust implementation currently relies on the custom binser crate to get some safety while encoding and decoding protocol messages. This brings some complexity while other approaches could be more reliable:
-
(No change in the wire protocol) Check if the abomonation crate or some wrapper could provide the same safety guarantees in tansiv-client
-
Consider changing the wire protocol using a cross-language message-passing serialization framework, like: - Protocol Buffers (Rust implementation with crate protobuf)
- Cap'n Proto (Rust implementation with crates capnp*)
- FlatBuffers (features C, C++, Rust, Python... implementations)
Edited by RILLING Louis