2012-03-08 8 views

Odpowiedz

1

Wygląda na to, że odpowiedź brzmi "jeszcze nie". Jednym z problemów, przed którym staniesz, jest to, że oszczędzanie definiuje pełny system RPC z usługami i wywołaniami metod, podczas gdy protobuf naprawdę skupia się na typach danych i bitach serializacji. Model danych Thrift jest nieco bardziej ograniczony niż protobuf (bez struktur rekursywnych itp.), Ale nie powinno to stanowić problemu w oszczędzaniu -> kierunek protobuf.

Oczywiście można dość łatwo przekonwertować wszystkie typy danych oszczędzanych na definicje protobuf, ignorując całkowicie sekcję serwisową. Możesz nawet dodać coś takiego jako wbudowany generator w kompilatorze oszczędzania, jeśli chcesz.

Thrift i Protobuf nie są jednak zamienne. Spójrz na Biggest differences of Thrift vs Protocol Buffers?, aby zobaczyć kluczowe różnice. Co dokładnie próbujesz osiągnąć?

0

Nie sądzę, że istnieje. Jeśli masz zamiar napisać kod, możesz napisać generator języka, który utworzy dla Ciebie pliki .thrift.

Możesz napisać narzędzie w dowolnym języku (napisałem w C++ w protobuf-j2me [1] i zaadaptowałem protobuf-csharp-port code w [2]).

Można mieć protoc.exe nazwać to lubią:

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

Trzeba wymienić go jako protoc-gen-thrift.exe aby --thrift_out opcja dostępna.

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

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