Protocol buffers specify a data structure description language that can be compiled into classes and functions/methods for working with those data structures in a variety of languages in order to allow efficient binary serialization/deserialization of tho