Protobuf的编码原理
用了很久Protobuf,对它的一些设计很好奇。比如字段的序号是干嘛的?不同版本的消息类怎么兼容?
这一切的一切,都和Protobuf的序列化机制有关,也就是一个消息类是怎么变成二进制数据的,然后又是怎么从二进制数据还原回消息类的。
接下来我基于protobuf 3语法和c#语言进行讲解,大部分内容参考自protobuf官方文档。
varint编码
protobuf里很多地方都使用了varint...