2008-07-10
Facebook: Thrift vs Google: Protocol Buffers
最近Googleが公開したProtocol Buffersと似てて一年前FacebookがThriftを公開した。 噂だけど、Google内部で先にProtocol Buffersが流行って、その後Facebookに転職した人がいて、 それでThriftが誕生したという。
ここであくまで個人的見た感想を述べてみようと。 (以下 T:Thrift P:Protocol Buffersと略す)
1、 T:沢山の言語をサポートしている:c++, java, python,ruby, csharp, haskell, ocmal, erlang, cocoa, php, squeakなどなど。 P:現在c++, java, pythonのみサポートする。
2、 T:簡易RPCフレームワークを提供している(実際簡易ではないけどね、block,nonblock等もあり) P:シリアライズ機能に絞っている。
3、 T:マルチプロトコルをサポートしている。専用のTProtocol,TTransport等、JSONと連携可能。 P:専用のプロトコルのみ提供、IOは標準のストリームを使用している。デバッグのため、 Text_Format機能があり、こちらのほうはnonbinaryフォーマットのため、ほかのプロトコルと 連携可能かもしれない。
4、 T:いくつか言語のCモジュールも提供している(パフォーマンス?) P:全てピュア言語で実現、速度速い
5、 T:まだWindowsで使用できない。(なぜ?Boostなどの化けもんあるしww) 「原文:The Thrift C++ runtime library does not currently work on Windows. This means that you’ll be able to compile ThriftIDL files to C++/Java/Python/etc., but you won’t be able to compile and run the generated C++ code under Windows.」 P:Windowsも利用可能、VSのプロジェクトファイルまで提供。
6、 T:重点的に言語依存しないRPCフレームワークの構造を提供している。 P:ストレージパフォーマンスで工夫し、言語記述が重点らしい。
結論: パフォーマンス重視ならProtocol Buffersがオススメ。 機能重視ならThriftがオススメ。
トラックバック - http://d.hatena.ne.jp/JiaLu/20080710/1215675696
リンク元
- 6 http://d.hatena.ne.jp/keyworddiary/Haskell
- 4 http://d.hatena.ne.jp/keyword/Haskell
- 2 http://d.hatena.ne.jp/keyword/C++
- 2 http://d.hatena.ne.jp/keyword/squeak
- 2 http://www.google.com/reader/view/
- 1 http://b.hatena.ne.jp/add?mode=confirm&title=Facebook: Thrift vs Google: Protocol Buffers - Grid Thinking&url=http://d.hatena.ne.jp/JiaLu/20080710/1215675696
- 1 http://beta.bloglines.com/b/view
- 1 http://d.hatena.ne.jp/keyword/boost
- 1 http://d.hatena.ne.jp/keyworddiary/C++
- 1 http://d.hatena.ne.jp/keyworddiary/Erlang
