mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-06 10:25:18 +00:00
54b7ab9b53
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665048 13f79535-47bb-0310-9956-ffa450edef68
111 lines
2.9 KiB
Plaintext
111 lines
2.9 KiB
Plaintext
Thrift (Thrift IDL and RPC tool)
|
|
|
|
Mark Slee (mcslee@facebook.com)
|
|
Marc Kwiatkowski (marc@facebook.com)
|
|
Aditya Agarwal (aditya@facebook.com)
|
|
|
|
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.
|
|
|
|
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 a 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/
|
|
ruby/
|
|
|
|
test/
|
|
|
|
Contains sample Thrift files and test code across the target programming
|
|
languages.
|
|
|
|
|
|
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/
|
|
|
|
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. 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='-g -O2'
|
|
|
|
Run ./configure --help to see other configuration options
|
|
|
|
Make thrift
|
|
|
|
make
|
|
|
|
From the top directory, become superuser and do:
|
|
|
|
make install
|
|
|
|
Note that some language packages must be installed manually (i.e. Java, Ruby).
|
|
Look for the README file in the lib/<language>/ folder for more details on the
|
|
installation of each language library package.
|