But the main reason people use protobuf is it is compact, which this table does accurately show. Flatbuffers are always larger.
But the main reason people use protobuf is it is compact, which this table does accurately show. Flatbuffers are always larger.
From what I recall in the message format[1] protocol buffers require you to walk quite a few parts of the data structures where in flatbuffers you are just reading offset and traversal is significantly faster.
Flatbuffers also let's you control data layout into the packed buffer so you can guarantee cache locality which makes a huge difference when it comes to real-world traversal performance. Data oriented design and FlatBuffers go together really well(which isn't a surprise given some of the background of where FlatBuffers comes from).
[1] https://developers.google.com/protocol-buffers/docs/encoding...