作为主题,我想使用thrift rpc函数,而使用protobuf进行序列化,是否有任何项目已经完成此操作? 我不想使用thrift序列化的原因是在我看到生成的cpp文件之后,我发现它没有_in_place函数,这意味着它必须复制构造每个成员,而对于我的情况,我把所有的char *等都分配给了其他地方。
答案 0 :(得分:3)
你可以这样做的唯一方法是声明一个包含大字节blob的Thrift消息,然后你将其解析为Protobuf。但是,这需要额外的副本,这会使你失去目的。
请注意,Google刚刚发布了GRPC,这是Protobufs的RPC协议。如果您要开始一个新项目并且想要使用Protobuf RPC,请使用它。
您可能也对Cap'n Proto感兴趣,{{3}}是一个专门避免复制的序列化和RPC系统。
(披露:我是Cap'n Proto的作者,以及Google的大部分开源Protobuf代码,但我与GRPC无关。)