这是个平台无关的库,装个VS2017,把它编译运行起来,单步跟踪、goto definition什么的都很方便。
protobuf 大概分成两部分:compiler 和 runtime 。
compiler 的前端是手写的递归下降 parser ,如果你学过编译原理,很容易读懂。这个编译器的后端是各个目标语言的代码生成器,可以选你熟悉的来读。前后端通过 descriptor 联系起来,非常清晰,也便于扩展。
runtime 主要功能是序列化和反序列化。每个目标语言各有一套,可以根据需要来读,一般要结合生成的代码一起读。
作者:陈硕