...
- Binary (as opposed to text, like JSON, for performance reasons)
- Supports nested object graphs
- Supports primitives, not only objects (for example, integer or Guid value can be serialized independently)
- Schemaless: any object of any type can be written without prior set up
- Can work without classes ("binary mode" in terms of 2.x): servers should be able to inspect the structure in serialized form
- Extensible (can add custom types)
- Well-supported implementations in all languages of interest (Java, C#, C++, Python, JavaScript, PHP)
- Fast and compact
Comparison
Name | Comments | License |
---|
MessagePack |
|
|
Protobuf |
|
|
Avro |
|
|
Thrift |
|
|
...
{"serverDuration": 165, "requestCorrelationId": "ea9e51369b79be0c"}