3 ms·
> On the other side, if they wrote multiple projects and never noticed the behavior, how bad can it be ? Many projects will choose a standard encoding to give
by alexchamberlain 3y ago
> On the other side, if they wrote multiple projects and never noticed the behavior, how bad can it be ?
Many projects will choose a standard encoding to give them language independence, but start by using the same language and libraries on both ends of the pipe. Therefore,you might not notice the library is incompatible until quite late in a project's development when you try to replace a component with a seemingly compatible, alternative implementation.
- 0xDEAFBEAD 3y agoIt looks like Protobuf actually has a test suite to ensure compliance with the protocol: https://github.com/protocolbuffers/protobuf/tree/main/conformance#readme https://github.com/protocolbuffers/protobuf/tree/main/confor... Seems like a good idea for protocols in general to have an official test suite, as a way to address this problem
- sa46 3y agoThe conformance suite tests encode and decode for single messages; you wouldn’t run it for a custom framing implementation; The gRPC interop tests are closer to what you’d want. Framing appears higher up the stack, as an RPC transport, or structured storage like the recordio format referenced by the author. The article sounds like the client expected application/protobuf but the server sent application/custom-protobuf-framing.
- lifthrasiir 3y agoI think it is easy to confuse the serialization format from framing because many serialization formats do self-delimit. And the protobuf terminology of "message" may suggest framing...