If you want to develop a Cocoa/Objective-C application with Thrift support, I should note that there are some limitations in the current version (0.9.0):
Thrift’s protocols describe “what” is transmitted, and transports are the “how”.
- Only binary protocol is implemented (TBinaryProtocol).
- TBinaryProtocol creates a binary data which doesn’t have length field. If you want to use Thrift as a serializer only, you should append some bytes which are length of your binary data.
- You can use TMemoryBuffer as Transport interface to build binary data of your messages in the memory. It returns the binary data of your message with getBuffer() function.
As a binary transport protocol, Google Protocol Buffers is more efficient, but it doesn’t have official support for Objective-C.
Of course, you can use C++ generated sources of Google Protocol Buffers in your Objective-C project, but you have to convert all your files into Objective-C++ files (.mm), and you should mix C++ and Objective-C code which is error prone in my opinion.
The lack of documentation is another problem of Thrift. If you cannot find good resources about Thrift usage, please also check below links: