- Getting started
- How it works?
- Running tutorial
- Our own Hello World
- Additional resources
This website, nor it's author isn't in any form affiliated or endorsed by the Apache Software Foundation.
Opinions or suggestions included in this document are based on the author's knowledge of Apache Thrift, which is still work-in-progress.
Getting started with Apache Thrift
Please note: this webiste was created in 2011 and - in some places - may be out of date. If you wish to get the tutorial covering latest version of Apache Thrift (as of December 2015), along with lots of examples, advanced information, production hints, created especially for those who want to gain solid knowledge about this framework, consider buying my book Learning Apache Thrift from Amazon.com or publisher's website.
Apache Thrift is – as its official website states - "a software framework for scalable cross-language services development." In simpler words, it allows for easy exchange of data (variables, objects) between applications written in different languages. Thrift protocol offers cross language serialization with overhead slightly smaller than, ie. SOAP. Thrift tools can generate code for C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk and OCaml.
Apache Thrift was primarily developed and used by Facebook, and then was donated to the Apache Software Foundation. Now, Thrift is used not only by Facebook, but as well by some of the big websites – as last.fm or reCaptcha.
Apache Thrift lacks of any tutorials, even documentation. It may be troublesome for some people, who want to try it (as it was for me). Hence the idea of preparing this quick "getting started" tutorial answering some basic questions about how to start.
This tutorial covers following topics:
- installation of the Apache Thrift
- basic information on how Apache Thrift works
- quick start - running tutorial provided with Apache Thrift archive
- writing our own “Hello world” application
- links to other resources about Apache Thrift
My operating system is Linux Debian (lenny), and my languages of choise are Python and PHP.