This module serves to define the protocol for sending and receiving messages containing control libraries data across any network.
The basis of the module is the Google Protocol Buffer, protobuf.
The protobuf directory contains the raw .proto message definitions as well as a set of bindings by language that are generated by the protobuf compiler (protoc). These bindings are not intended to be directly user-facing.
The clproto_cpp directory contains the actual user-facing library, with the translation between control libraries data and proto message formats hidden behind a neat header file. The API allows compatible objects to be easily encoded into a serialized binary string for transmitting across. Equivalently, well-formatted string messages can be decoded back into the equivalent objects.