Data Serialisation
Data serialisation allows an application to encode data so that it can be decoded by other applications written in the same or different languages. Data serialisation mechanisms usually make a trade off between speed, encoding/decoding speed, integrity, and human readability.
Avro: Avro is a binary data serialization system which is characterised by encoding the schema together with the message. This avoids the burden of stub/skeleton generation stages.
Protocol Buffers: Protocol Buffers is Google’s answer to the need for a binary data serialization system. It relies in a custom schema language and static generation of code from it to target languages such as C++, Java, C#, Python and so on. Its main goal is interoperability among all the supported languages.
Thrift: Thrift is Facebook’s answer to the need for binary data serialization system. Like Google’s Protocol Buffer, it relies on a schema and code generation paradigm. It is arguably distinguished by official support for a wider number of programming languages such as OCaml, Smalltalk, and Haskell.
Ernesto Garbarino