3 ms·
> Everything is just inline, except when messages can be recursive (which should be rare for most protocols). Many messages are have lots of optional sub-messa
by haberman 6y ago
> Everything is just inline, except when messages can be recursive (which should be rare for most protocols).
Many messages are have lots of optional sub-message fields, and set only a few of them in any given message. These messages would be huge if everything is inline (especially if the same thing happens in those sub-messages).
I agree that inlining all sub-messages works great for dense schemas, but it assumes too much about the schema to be a good design for a general-purpose proto library I think. Also maps and repeated fields can never be inline.
- tijsvd 6y agoYes, this comes back to use case. So it's great that there are different implementations for different use cases. It helps that the wire format is simple and well-documented.