2012-03-08 282 views

回答

1

看來答案是「還沒有」。您將面臨的一個問題是,thrift使用服務和方法調用來定義完整的RPC系統,而protobuf確實關注數據類型和序列化位。 Thrift的數據模型比protobuf(沒有遞歸結構等)有更多的限制,但這在thrift - > protobuf方向上不應該是個問題。

當然,你可以很容易地將所有的thrift數據類型轉換爲protobuf定義,而完全忽略服務部分。如果你願意的話,甚至可以在thrift編譯器中添加類似內置生成器的東西。

雖然Thrift和Protobuf不可互換。看看Biggest differences of Thrift vs Protocol Buffers?看到一些關鍵的區別。你究竟想要完成什麼?

0

我不認爲有。如果你要爲它編寫代碼,你可以編寫一個語言生成器爲你生成.thrift文件。你可以使用任何語言編寫工具(我在C++中用protobuf-j2me [1]編寫,並在[2]中編寫了protobuf-csharp-port代碼)。

您可以protoc.exe調用它像:

protoc.exe --plugin=protoc-gen-thrift.exe --thrift_out=. file.proto 

你需要將它命名爲protoc-gen-thrift.exe使可用--thrift_out選項。

[1] https://github.com/igorgatis/protobuf-j2me

[2] https://github.com/jskeet/protobuf-csharp-port/blob/6ac38bf84452f1f9bd3df59a276708725be2ed49/src/ProtoGen/ProtocGenCs.cs

相關問題