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

时间:2010-09-08 19:34:09

标签: c protocol-buffers

Google正式提供Google协议缓冲区的C ++实现, 但我正在寻找C实现。

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

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

4 个答案:

答案 0 :(得分:13)

还有Nanopb更轻量级。

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

答案 1 :(得分:12)

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

从他们的官方网站:

  

此包提供了要使用的代码生成器和运行时库   协议缓冲区来自纯C(非C ++)。

     

它使用protoc的修改版protoc-c

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

μpb 是一个用 C 编写的小型 protobuf 实现。

upb 生成一个 C API,用于创建、解析和序列化 .proto 文件中声明的消息。 upb 主要基于竞技场