2

作为主题,我想使用 thrift rpc 函数,而使用 protobuf 进行序列化,是否有任何项目可以做到这一点?我不想使用 thrift 序列化的原因是在我查看生成的 cpp 文件之后,我发现它没有 _in_place 函数,这意味着它必须复制构造每个成员,而对于我来说,我有char* 等已经分配在其他地方。

4

1 回答 1

3

您可能这样做的唯一方法是声明一个包含大字节 blob 的 Thrift 消息,然后您将其解析为 Protobuf。但是,这将需要一个额外的副本,这会破坏您的目的。

请注意,Google 刚刚发布了GRPC,这是一种用于 Protobufs 的 RPC 协议。如果您正在开始一个新项目并且想要使用 Protobuf RPC,请使用它。

您可能还对Cap'n Proto感兴趣,这是一个专门用于避免复制的序列化和 RPC 系统。

(披露:我是 Cap'n Proto 的作者,也是谷歌大部分开源 Protobuf 代码的作者,但我与 GRPC 无关。)

于 2015-03-07T21:04:32.057 回答