我们如何将gRPC与Flatbuffers一起使用?

时间:2015-12-09 04:48:21

标签: grpc flatbuffers

我一直在研究Apache Thrift,ProtoBuf和Flatbuffers。我找到了在link使用带有protobuf的gRPC的教程,但我没有找到任何使用gRPC和Flatbuffers的文档。有人可以指点我的相关文件吗?我在谷歌和Stackoverflow上查了一下。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:10)

自从首次提出这个问题以来,已经取得了进展:a)使GRPC codegen独立于protobuf(参见https://github.com/grpc/grpc/pull/6130),然后将该代码生成器集成到flatbuffers编译器flatc中:{{3 }}

这是一个非常基本的第一个实现,反馈欢迎。

答案 1 :(得分:7)

gRPC协议与有效负载无关,但代码生成不是。由于FlatBuffers尚未生成代码,因此您需要手动执行一些操作。

细节因语言而异,但基本部分类似。例如,在Go中,您需要实现Codec并准备InvokeNewClientStreamRegisterService所需的描述符。在Java中,您需要实现Marshaller并准备newCalladdService所需的描述符。如果您遇到问题,可以考虑在与Protobuf一起使用时查看生成的gRPC代码。

答案 2 :(得分:0)

2017-08-17 以来,gRPC已对其博客https://grpc.io/blog/grpc-flatbuffers/#use-flatbuffers-as-an-idl提及的开箱即用的平面缓冲区支持

Flatbuffers最新版本 1.7 引入了对gRPC的真正零拷贝支持。

链接文章中的示例命令

flatc --cpp --grpc example.fbs