As I’ve said as “Biggest differences of Thrift vs Protocol Buffers?” topic :
Referring to Thrift vs Protobuf vs JSON comparison :
- C++, Python, Java – in-box support in Protobuf and Thrift.
- Protobuf support for other languages (including Lua, Matlab, Ruby, Perl, R, Php, OCaml, Mercury, Erlang, Go, D, Lisp) is available as Third Party Addons (btw. Here is SWI-Prolog support).
- Protobuf has much better documentation and plenty of examples.
- Protobuf objects are smaller
- Protobuf is faster when unsing “optimize_for = SPEED”
- Thrift has integrated RPC implementation, while for Protobuf RPC solutions are separated, but available (like Zeroc ICE ).
- Protobuf is released under BSD-style license
- Thrift is released under Apache license
Additionally, there are plenty of interesting additional tools available for those solutions, which might decide. Here are examples for Protobuf: Protobuf-wireshark , protobufeditor.