-1

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.

JensG
  • 12,102
  • 4
  • 40
  • 51
Brent212
  • 1,505
  • 3
  • 15
  • 22
  • 1
    -1 The Apache Thrift website has a Documentation tab right at the top and it has a link to the Thrift whitepaper which can be read cover to cover in under 30 minutes. Complaining on SO is unlikely to get you anywhere. – BCG Sep 02 '14 at 19:37
  • 1
    It got me a bunch of links. Unfortunately none of them were very informative, but at least it confirmed that there isn't something good that's readily available that I was just missing. – Brent212 Dec 01 '15 at 18:39
  • Also, that whitepaper isn't exactly easy to find. Looking where you said, here -- https://thrift.apache.org/docs/ -- there's no mention of it. Checking various sections, you eventually find a link under types -- https://thrift.apache.org/docs/types. Though the whitepaper is again, fairly empty of useful details/examples. There's not even a mention of how to set or change a timeout on a client connection (which I've figured out, so no need to condescendingly point out that's it's so obvious it shouldn't be included). – Brent212 Dec 01 '15 at 18:45
  • If you nicely ask the original whitepaper author from 2008 they will probably include the information you need. The other changes is something you can do on your own - that's why this hot stuff is called **Open Source**! So [file a ticket, add a patch or send a PR with your proposed improvements](https://thrift.apache.org/docs/HowToContribute) and it will get reviewed and eventually committed. Or so. – JensG Feb 04 '16 at 22:50

2 Answers2

3

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:

user@thrift.apache.org

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.

Selali Adobor
  • 1,867
  • 14
  • 29
-1

There are plenty of ... resources.

First, we have this question right here on SO which gives a good starting point. On the Apache Thrift web page, we have a documentation section and we have the old wiki which is no longer updated but still contains valuable information not yet integrated elswehere. Aside from the mailing lists and the IRC channel you can ask questions on SO as well.

The community and the number of supported languages has grown steadily, and is still growing. Thrift is mature, it is used widely in production right now by plenty of users and a significant number of well-known products like Cassandra, Evernote and Tumblr, to name just a few.

Community
  • 1
  • 1
JensG
  • 12,102
  • 4
  • 40
  • 51
  • The documentation section has a bunch of links fairly useless links, and simply confirms that there isn't something good that's readily available that I was just missing. Even the whitepaper, which is stupidly hard to find (looking here -- thrift.apache.org/docs -- there's literally no mention of it -- drilling through the sections, you eventually find the link under "types" -- thrift.apache.org/docs/types), is empty of useful details/examples. There's not even a mention of how to set or change a timeout on a client connection (which I've figured out). – Brent212 Feb 04 '16 at 22:44
  • I've come to the conclusion that documentation for anything more useful that simply looking at the APIs in the code just doesn't exist. Only the most basic of usage examples and vague functionality descriptions. – Brent212 Feb 04 '16 at 22:46
  • And of course it's widely used in production -- my company has been using it for several years in a system that processes upwards of 70 million transactions/day. We wouldn't have switched to it if it hadn't have been proven effective. Just silly how so much basic info isn't available for it. I guess that's just the way with these things though... was recently looking for the differences between apache zookeeper jar file releases and, surprise, that info doesn't exist, and there's no sort of community for zookeeper either. – Brent212 Feb 04 '16 at 22:52
  • 17 (seventeen) months ago I pointed out where to contact the Thrift team if you run into questions. So [what was the last comment you made in JIRA](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=Brent212) or the last question asked on the [mailing lists](http://mail-archives.apache.org/mod_mbox//thrift-dev/201408.mbox/author?1) or IRC? More importantly, has your question been answered? – JensG Feb 04 '16 at 23:16