我已经使用PB很长一段时间了,但是,Thrift一直在我的脑海里.
正如我所看到的那样,节俭的主要优点是:
- 本地集合(即向量,集等)与PB重复提供类似但不完全相似的功能(除非你深入研究文档声明"在大多数情况下不需要"的RepeatedField),否则没有迭代器.
- 提供了一个不错的RPC实现,而不是只是挂钩插入自己的.
- 更多官方支持的语言(PB为Java,C++,Python提供"官方"支持)
Thrift的缺点:
- RPC实现意味着我无法在顶部插入我自己的(例如)加密/认证层.
- Windows支持看起来不是很好.
- PB肯定似乎有更容易获得的文档,如果不是更好的话.
中性:
- Windows(Thrift)上.lib/.dll的未知大小.
- Windows上大尺寸的.lib(PB,但确实提供了明显更小的-lite).
- 速度明智,他们似乎都很相似.
我还没有准备好冒险尝试切换到Thrift,有人可以给我更多的优点/缺点,或者有理由去某种方式吗?
谢谢!