Thrift Tutorial

Author: Mark Slee (mcslee@facebook.com)

Thrift is distributed under the Thrift open source software license.
Please see the included LICENSE file.

Tutorial
========

1) First things first, you'll need to install the Thrift compiler and the
   language libraries. Do that using the instructions in the top level
   README file.

2) Read tutorial.thrift to learn about the syntax of a Thrift file

3) Run tutorial.thrift to compile the code:

     ./tutorial.thrift

4) Take a look at the generated code.

5) Look in the language directories for sample client/server code.

6) That's about it for now. This tutorial is intentionally brief. It should be
   just enough to get you started and ready to build your own project.
