是否存在Google协议缓冲区的良好C实现

Tim*_*hyP 15 c protocol-buffers

Google官方提供了Google协议缓冲区的C++实现,但我正在寻找C实现.

我不会自己使用它,但我希望我可以使用这个工具为我们的Google协议缓冲区定义生成C代码,然后我可以将它交给C开发人员.

我不是在寻找任何RPC功能,只是编码和解码Google Protocol Buffer消息.

Joh*_*ood 14

使用protobuf-c(现在在Github上作为protobuf-c).

从他们的官方网站:

该软件包提供了一个代码生成器和运行时库,可以使用纯C(而不是C++)的Protocol Buffers.

它使用protoc被调用的修改版本protoc-c.


Ste*_*ter 14

还有Nanopb,它更轻盈.

例如,它不会在代码中存储消息和字段名称,因此无法进行内省(按名称搜索字段).


Eri*_*ist 5

pbtools是另一种选择。它生成快速的 C 源代码来编码和解码 protobuf 消息。

此外,这里还有更多 C 实现的列表: https: //github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md