C++ Thrift还是协议缓冲区作为跨语言序列化解决方案?

C++ Thrift还是协议缓冲区作为跨语言序列化解决方案?,c++,protocol-buffers,thrift,C++,Protocol Buffers,Thrift,我已经选择在项目中使用thrift作为RPC框架。此项目有很多序列化/反序列化操作(例如,将数据存储到磁盘)。序列化的格式应该至少对C++/Java/Python是可访问的。thrift的序列化解决方案似乎比Protobuf更复杂(例如,它需要在序列化对象之前创建一个协议) 所以我的问题是:即使thrift能够完成这个任务,在序列化/反序列化部分使用Protobuf是否值得 我同意Thrift是跨语言RPC比Protobuf RPC更好的选择(请参阅)。如果您已经在使用thrift,那么很难证明

我已经选择在项目中使用thrift作为RPC框架。此项目有很多序列化/反序列化操作(例如,将数据存储到磁盘)。序列化的格式应该至少对C++/Java/Python是可访问的。thrift的序列化解决方案似乎比Protobuf更复杂(例如,它需要在序列化对象之前创建一个协议)


所以我的问题是:即使thrift能够完成这个任务,在序列化/反序列化部分使用Protobuf是否值得

我同意Thrift是跨语言RPC比Protobuf RPC更好的选择(请参阅)。如果您已经在使用thrift,那么很难证明使用不同的“库”对文件/存储进行序列化是合理的。您需要编写无休止的映射代码。这两个库都有不同的维护周期,您需要独立维护,这将为将来提供额外的工作。编写一行或两行以上的代码、节省一个或两个字节的空间或节省一微秒的CPU时间的成本与您的额外努力相比将是微不足道的。

我无法回答这个问题,但我认为Protobuf有更多的可用工具()如果您热衷于磁盘,这可能会很有用。我主要关心的是开发的开销。两种解决方案的效率对我来说都很好。