summaryrefslogtreecommitdiff
path: root/Protocol Buffers - protobuf.dev.md
blob: 9bd83c6b34bb53e36b70cb42918c5a974fde2558 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Protocol buffer messages are often loaded in to memory completely. So large data is not a good fit. Usually not more than a few MBs.

The same data can have many different forms of binary serialization when it is serialized, therefore serialized data (messages) cannot be compared.

Messages are not compressed. They can be compresses with zip/gzip but to obtain maximum compression use specialized compression algorithms such as ones used by JPEG/PNG.

Protocol buffers are not maximally efficient for large multi-dimensional arrays or floating point numbers.

Not well supported in non-object oriented languages.

Protocol buffer messages require their schema to be interpreted correctly.


---

# Workflow
1. Write .proto schema
2. Generate code using `protoc` compiler
3. Compile generated protobuf code together with project
4. Use Protobuff classes to serialize, share and deserialize data