有没有一个良好的C实现Google Protocol Buffers?

21

谷歌官方提供了Google Protocol Buffers的C++实现,但我需要的是C语言实现。

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

我不需要任何RPC功能,只需要对Google Protocol Buffer消息进行编码和解码。

4个回答

19

使用protobuf-c(现在已经迁移到Github,成为protobuf-c)。

来自官方网站:

该软件包提供了一个代码生成器和运行时库,用于从纯C(非C ++)中使用协议缓冲区。

它使用名为 protoc-c 的修改版本的 protoc


但是根据我所了解的,他们正在专注于消息的编码和解码以外的某些方面。 - TimothyP
然而,消息的输入/输出是protobufs的基础。因此,他们必须实现它,您可以忽略其他功能甚至从运行时中删除它。 - Kuba hasn't forgotten Monica

16

还有更轻量级的Nanopb

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


5

1

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

upb根据.proto文件生成一个C API,用于创建、解析和序列化消息。upb非常依赖于基于arena的内存分配。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接