public
Description: A powersetly awesome thrift
Clone URL: git://github.com/mojombo/powerset_thrift.git
Search Repo:
name age message
folder .gitignore Tue Feb 12 19:12:35 -0800 2008 Add build/ dir for alterl bindings and remove t... [Todd Lipcon]
folder CONTRIBUTORS Mon Feb 04 13:29:55 -0800 2008 r1537@opsdev009 (orig r81091): dreiss | 2008-... [(no author)]
folder COPYING Wed Feb 06 14:20:14 -0800 2008 r1553@opsdev009 (orig r81662): dreiss | 2008-... [(no author)]
folder LICENSE Wed Feb 06 14:20:14 -0800 2008 r1553@opsdev009 (orig r81662): dreiss | 2008-... [(no author)]
folder Makefile.am Mon Feb 04 13:14:55 -0800 2008 r1535@opsdev009 (orig r81090): dreiss | 2008-... [(no author)]
folder NEWS Tue Sep 18 12:36:15 -0700 2007 r1212@dev030 (orig r60097): dreiss | 2007-09-... [(no author)]
folder README Tue Sep 18 12:36:15 -0700 2007 r1212@dev030 (orig r60097): dreiss | 2007-09-... [(no author)]
folder aclocal/ Thu Mar 20 14:51:01 -0700 2008 remove jikes as a java compiler option and fix ... [mojombo]
folder bootstrap.sh Sat Feb 23 13:57:49 -0800 2008 r1605@opsdev009 (orig r84491): dreiss | 2008-... [(no author)]
folder cleanup.sh Sat Feb 23 13:57:49 -0800 2008 r1605@opsdev009 (orig r84491): dreiss | 2008-... [(no author)]
folder compiler/ Thu Mar 06 01:16:29 -0800 2008 Merge commit 'origin/master' into new_erl [eugene letuchy]
folder configure.ac Tue Mar 04 13:14:20 -0800 2008 r1719@opsdev009 (orig r85967): dreiss | 2008-... [(no author)]
folder doc/ Wed Feb 06 14:20:14 -0800 2008 r1553@opsdev009 (orig r81662): dreiss | 2008-... [(no author)]
folder if/ Fri Dec 28 10:29:09 -0800 2007 r1437@opsdev009 (orig r75927): dreiss | 2007-... [(no author)]
folder lib/ Thu Mar 20 14:51:01 -0700 2008 remove jikes as a java compiler option and fix ... [mojombo]
folder test/ Tue Mar 04 21:56:32 -0800 2008 Merge commit 'origin/master' into new_erl [eugene letuchy]
folder thrift.bnf Sun Jul 08 00:14:31 -0700 2007 r458@peterm-macbook (orig r49612): mcslee | 2... [(no author)]
folder thrift.el Tue Feb 26 17:58:24 -0800 2008 r1639@opsdev009 (orig r84818): dreiss | 2008-... [(no author)]
folder thrift.vim Tue Feb 26 17:58:24 -0800 2008 r1639@opsdev009 (orig r84818): dreiss | 2008-... [(no author)]
folder tutorial/ Tue Feb 26 17:58:24 -0800 2008 r1639@opsdev009 (orig r84818): dreiss | 2008-... [(no author)]
README
Thrift (Thrift IDL and RPC tool)

Mark Slee (mcslee@facebook.com)
Marc Kwiatkowski (marc@facebook.com)
Aditya Agarwal (aditya@facebook.com)

Last Modified: 2007-Mar-06

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

Introduction
============

Thrift is a lightweight, language-independent software stack with an
associated code generation mechanism for RPC. Thrift provides clean
abstractions for data transport, data serialization, and application
level processing. The code generation system takes a simple definition
language as its input and generates code across programming languages that
uses the abstracted stack to build interoperable RPC clients and servers.

Thrift is specifically designed to support non-atomic version changes
across client and server code.

For more details on Thrift's design and implementation, take a gander at
the Thrift whitepaper included in this distribution or at the README files
in your particular subdirectory of interest.

Heirarchy
=========

thrift/

  compiler/
    Contains the Thrift compiler, implemented in C++.

  lib/
    Contains the Thrift software library implementation, subdivided by
    language of implementation.

    cpp/
    java/
    php/
    py/
    rb/

  test/

    Contains sample Thrift files and test code across the target programming
    languages.

  tutorial/

    Contains a basic tutorial that will teach you how to develop software
    using Thrift.

Requirements
============

Thrift requires boost shared pointers from boost-1.33.1 or greater, see:
http://www.boost.org/libs/smart_ptr/smart_ptr.htm

Some portions of Thrift also depend upon libevent, see:
http://monkey.org/~provos/libevent/

Some portions of Thrift also depend upon zlib, see:
http://www.zlib.net/

These libraries are open source and may be freely obtained, but they are not
provided as a part of this distribution.

Resources
=========

More information about Thrift can be obtained on the Thrift webpage at:

     http://developers.facebook.com/thrift

Acknowledgments
===============

Thrift was inspired by pillar, a lightweight RPC tool written by Adam D'Angelo.

Installation
============

If you are building from the first time out of the source repository, you will
need to generate the configure scripts.  (This is not necessary if you
downloaded a tarball.)  From the top directory, do:

  ./bootstrap.sh

Once the configure scripts are generated, thrift can be configured.
From the top directory, do:

  ./configure

You may need to specify the location of the boost files explicitly.
If you installed boost in /usr/local, you would run configure as follows:

  ./configure --with-boost=/usr/local

Note that by default the thrift C++ library is typically built with debugging
symbols included. If you want to customize these options you should use the
CXXFLAGS option in configure, as such:

        ./configure CXXFLAGS='-g -O2'
        ./configure CFLAGS='-g -O2'
        ./configure CPPFLAGS='-DDEBUG_MY_FEATURE'

Run ./configure --help to see other configuration options

Please be aware that the Python library will ignore the --prefix option
and just install wherever Python's distutils puts it (usually along
the lines of /usr/lib/pythonX.Y/site-packages/).  If you need to control
where the Python modules are installed, set the PY_PREFIX variable.
(DESTDIR is respected for Python and C++.)

Make thrift:

  make

From the top directory, become superuser and do:

  make install

Note that some language packages must be installed manually using build tools
better suited to those languages (at the time of this writing, this applies
to Java, Ruby, PHP).

Look for the README file in the lib/<language>/ folder for more details on the
installation of each language library package.