Low level controller for the Hubo 2 and Hubo 2+ platforms designed by Daniel M. Lofaro. The system is based on the IPC called ACH by Neil Dantam and Mike Stilman.
Looking at the latest release, a field was added to the middle of hubo_state_t. This will break binary compatibility with applications compiled against the old header. The normal way to handle binary compatibility is with a library version number. However, since hubo-ach and its clients are separate processes, library versioning (alone) won't work for this.
What is a good way to handle message compatibility?
Some options:
Punt. Users must recompile.
Switch to a full-blow serialization library, e.g., protobuf.
Add version number to messages
Only append fields. Clients must be able to accept messages larger than what they were expecting, and must ignore the updated end of the message.
Looking at the latest release, a field was added to the middle of hubo_state_t. This will break binary compatibility with applications compiled against the old header. The normal way to handle binary compatibility is with a library version number. However, since hubo-ach and its clients are separate processes, library versioning (alone) won't work for this.
What is a good way to handle message compatibility?
Some options: