【发布时间】:2011-05-16 15:44:31
【问题描述】:
我已经使用 PB 有一段时间了,但是 Thrift 一直在我的脑海中。
在我看来,节俭的主要优点是:
- 本机集合(即向量、集合等)与 PB 重复提供的功能相似但不太相似(没有迭代器,除非您深入研究文档指出“在大多数情况下不需要”的 RepeatedField)。
- 提供了一个不错的 RPC 实现,而不仅仅是插入你自己的钩子。
- 更多官方支持的语言(PB 为 Java、C++、Python 提供“官方”支持)
Thrift 的缺点:
- RPC 实现意味着我无法在顶部插入自己的(例如)加密/身份验证层。
- Windows 支持似乎不是很好。
- PB 确实似乎有(如果不是更好的话)更易于访问的文档。
中性:
- Windows (Thrift) 上 .lib/.dll 的大小未知。
- Windows 上的大尺寸 .lib(PB,但它确实提供了一个小得多的 -lite)。
- 在速度方面,它们看起来很相似。
我还没有准备好冒险改用 Thrift,谁能给我更多的优点/缺点,或者选择哪种方式的理由?
谢谢!
【问题讨论】:
-
将更新放在单独的部分而不是覆盖原始问题被认为是一种很好的风格。 :)
-
您实际上可以添加自己的加密/身份验证层。您只需要编写一个替代的 TTransport 类。或者类似的东西..那里有一个 TSSLSocket 类。
-
老问题,我知道。只想提一下,自 2010 年以来,Thrift 对 Windows 的支持有了很大改进。
标签: c++ windows protocol-buffers thrift