我一直在研究Apache Thrift,ProtoBuf和Flatbuffers.我发现教程在链接中使用带有protobuf的gRPC,但我没有找到任何使用gRPC和Flatbuffers的文档.有人可以指点我的相关文件吗?我在谷歌和Stackoverflow上查了一下.任何帮助,将不胜感激.
自从首次提出这个问题以来,已经取得了进展:a)使GRPC codegen独立于protobuf(参见https://github.com/grpc/grpc/pull/6130),然后将该代码生成器集成到flatbuffers编译器中flatc
:https ://github.com/google/flatbuffers/commit/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70
这是一个非常基本的第一个实现,欢迎反馈.
gRPC协议与有效负载无关,但代码生成不是.由于FlatBuffers尚未生成代码,因此您需要手动执行一些操作.
细节因语言而异,但基本部分类似.例如,在Go中,您需要实现Codec并准备Invoke,NewClientStream和RegisterService所需的描述符.在Java中,您需要实现Marshaller并准备newCall和addService所需的描述符.如果您遇到问题,可以考虑在与Protobuf一起使用时查看生成的gRPC代码.