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) Compile the code for the language of your choice:

     $ thrift
     $ thrift --gen cpp 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.
