Search code examples
thrift

Does a place exist where basic information about Apache Thrift is provided?


The lack of information on the internet about Thrift is fcking pathetic. The best way to learn about the product is to search through the Jira tickets for comments by developers regarding bugs and bug fixes.

Is there some sort of message board for asking questions about Thrift? You'd think there'd be one somewhere at apache.org, but if it's there, there's no intuitive way to find it. Asking technical questions about Thrift here rarely leads to any useful answers. Perhaps it's not widely used... I can't even find much info regarding that, so it's probably the case.

Anyway, it's frustrating that a google search for "apache thrift help" leads nowhere useful (aka, some sort of "community") if you've already figured out how to do use Thrift for the absolutely most basic applications.


Solution

  • I found the following sources useful for getting started:

    Thrift the Missing Guide:

    http://diwakergupta.github.io/thrift-missing-guide/

    The guide goes pretty deeply into the various aspects of the languages and some best practices

    The wiki:

    http://wiki.apache.org/thrift/FrontPage

    This has some overlap with the above guide, but it goes further into installation and setup for some languages.

    The test code:

    Included with the package.

    Each language has it's own test applications that are useful figuring out how to setup a basic service. The only thing to watch out for is it seems some language's tests have different default settings, so you might run into issues if you try to take them as-is and setup interconnects.

    Language specific code:

    Also included in package.

    I was using Thrift on Erlang and found the documentation pretty much non-existant for the platform (which was fairly suprising, since as I understand it, Thrift started at Facebook with Erlang, and Erlang is probably the language most suited for server applications).

    The test that was included helped a little, but the majority of the progress I made was from browsing through the source for the various transports. It's all very straightforward stuff that uses common features in each language (For example, in C# the socket transport uses a common TCPListener, and there's a server based on the ThreadPool. On Erlang the server uses 'gen_server', and both support the same thrift services).

    The mailing list:

    [email protected]

    I joined it when I started using Thrift, and it's very active. Although the focus seems to be on development, from my limited interaction they seem more than happy to help with problems with the software.

    The IRC Channel:

    irc://irc.us.freenode.net:6667/#thrift

    I was able to get help from users on here too.

    I listed quite a few sources here, but ironically, I also share your sentiment. It feels like Thrift's support stretched a little thin compared to, say Google's Protocol Buffers (Protocol Buffers and Thrift aren't "competing", but they're similar enough to compare them in this case).

    It's actually pushed me towards looking for another product while I use it, since I'm not too comfortable with where I feel the community is around it (not that it's not a good community, I just feel it might be lacking in numbers). That being said, the main reason why I don't see myself finding something else comes down to the fact that language support is a "first class member" in Thrift, or at least, more-so than some alternatives, where each language has a popular implementation that may or may not strictly conform to the standard.