Google正式提供Google协议缓冲区的C ++实现, 但我正在寻找C实现。
我不会自己使用它,但我希望我可以使用这个工具来生成 我们的Google协议缓冲区定义的C代码,然后我可以交给C开发人员。
我不是在寻找任何RPC功能,只是编码和解码Google Protocol Buffer消息。
答案 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 主要基于竞技场