Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 138 lines (95 sloc) 4.058 kb
5aaa021 @bufferoverflow change URL's to TLP
bufferoverflow authored
1 Apache Thrift
9de5a5c Basic README with build instructions
Marc Slemko authored
2
5aaa021 @bufferoverflow change URL's to TLP
bufferoverflow authored
3 Last Modified: 2010-Nov-04
9de5a5c Basic README with build instructions
Marc Slemko authored
4
def30a6 THRIFT-387. Add appropriate Apache header to all code files
Bryan Duxbury authored
5 License
6 =======
7
8 Licensed to the Apache Software Foundation (ASF) under one
9 or more contributor license agreements. See the NOTICE file
10 distributed with this work for additional information
11 regarding copyright ownership. The ASF licenses this file
12 to you under the Apache License, Version 2.0 (the
13 "License"); you may not use this file except in compliance
14 with the License. You may obtain a copy of the License at
15
16 http://www.apache.org/licenses/LICENSE-2.0
17
18 Unless required by applicable law or agreed to in writing,
19 software distributed under the License is distributed on an
20 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 KIND, either express or implied. See the License for the
22 specific language governing permissions and limitations
23 under the License.
9de5a5c Basic README with build instructions
Marc Slemko authored
24
25 Introduction
26 ============
27
57cc25e Some Thrift documentation cleanups
Mark Slee authored
28 Thrift is a lightweight, language-independent software stack with an
3303f36 Thrift CPP threading fixes
Mark Slee authored
29 associated code generation mechanism for RPC. Thrift provides clean
30 abstractions for data transport, data serialization, and application
31 level processing. The code generation system takes a simple definition
32 language as its input and generates code across programming languages that
33 uses the abstracted stack to build interoperable RPC clients and servers.
34
227ac2c Ruby code gen fixes and some README improvements
Mark Slee authored
35 Thrift is specifically designed to support non-atomic version changes
36 across client and server code.
37
3303f36 Thrift CPP threading fixes
Mark Slee authored
38 For more details on Thrift's design and implementation, take a gander at
39 the Thrift whitepaper included in this distribution or at the README files
227ac2c Ruby code gen fixes and some README improvements
Mark Slee authored
40 in your particular subdirectory of interest.
3303f36 Thrift CPP threading fixes
Mark Slee authored
41
5aaa021 @bufferoverflow change URL's to TLP
bufferoverflow authored
42 Hierarchy
3303f36 Thrift CPP threading fixes
Mark Slee authored
43 =========
44
45 thrift/
46
47 compiler/
48 Contains the Thrift compiler, implemented in C++.
49
50 lib/
51 Contains the Thrift software library implementation, subdivided by
52 language of implementation.
53
54 cpp/
55 java/
56 php/
57 py/
227ac2c Ruby code gen fixes and some README improvements
Mark Slee authored
58 rb/
3303f36 Thrift CPP threading fixes
Mark Slee authored
59
60 test/
61
62 Contains sample Thrift files and test code across the target programming
63 languages.
64
227ac2c Ruby code gen fixes and some README improvements
Mark Slee authored
65 tutorial/
66
67 Contains a basic tutorial that will teach you how to develop software
68 using Thrift.
9de5a5c Basic README with build instructions
Marc Slemko authored
69
70 Requirements
71 ============
3303f36 Thrift CPP threading fixes
Mark Slee authored
72
fc30667 THRIFT-293. Make the README point to the Wiki for requirements
David Reiss authored
73 See http://wiki.apache.org/thrift/ThriftRequirements for
74 an up-to-date list of build requirements.
9de5a5c Basic README with build instructions
Marc Slemko authored
75
76 Resources
77 =========
78
79 More information about Thrift can be obtained on the Thrift webpage at:
80
5aaa021 @bufferoverflow change URL's to TLP
bufferoverflow authored
81 http://thrift.apache.org
9de5a5c Basic README with build instructions
Marc Slemko authored
82
83 Acknowledgments
84 ===============
85
f0d35d2 THRIFT-291
Greg Stein authored
86 Thrift was inspired by pillar, a lightweight RPC tool written by Adam D'Angelo,
87 and also by Google's protocol buffers.
9de5a5c Basic README with build instructions
Marc Slemko authored
88
54b7ab9 READMEs and DOCs and ant tasks, oh my
Mark Slee authored
89 Installation
9de5a5c Basic README with build instructions
Marc Slemko authored
90 ============
91
57cc25e Some Thrift documentation cleanups
Mark Slee authored
92 If you are building from the first time out of the source repository, you will
b72d19f Thrift: Prep for release.
David Reiss authored
93 need to generate the configure scripts. (This is not necessary if you
94 downloaded a tarball.) From the top directory, do:
9de5a5c Basic README with build instructions
Marc Slemko authored
95
96 ./bootstrap.sh
97
57cc25e Some Thrift documentation cleanups
Mark Slee authored
98 Once the configure scripts are generated, thrift can be configured.
99 From the top directory, do:
9de5a5c Basic README with build instructions
Marc Slemko authored
100
101 ./configure
102
57cc25e Some Thrift documentation cleanups
Mark Slee authored
103 You may need to specify the location of the boost files explicitly.
3303f36 Thrift CPP threading fixes
Mark Slee authored
104 If you installed boost in /usr/local, you would run configure as follows:
9de5a5c Basic README with build instructions
Marc Slemko authored
105
106 ./configure --with-boost=/usr/local
107
3303f36 Thrift CPP threading fixes
Mark Slee authored
108 Note that by default the thrift C++ library is typically built with debugging
109 symbols included. If you want to customize these options you should use the
110 CXXFLAGS option in configure, as such:
2905078 Better socket timeout and options support for Thrift C++
Mark Slee authored
111
3303f36 Thrift CPP threading fixes
Mark Slee authored
112 ./configure CXXFLAGS='-g -O2'
57cc25e Some Thrift documentation cleanups
Mark Slee authored
113 ./configure CFLAGS='-g -O2'
aea19c9 Thrift: Python libraries install into /usr, not /usr/local
David Reiss authored
114 ./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
2905078 Better socket timeout and options support for Thrift C++
Mark Slee authored
115
9de5a5c Basic README with build instructions
Marc Slemko authored
116 Run ./configure --help to see other configuration options
117
aea19c9 Thrift: Python libraries install into /usr, not /usr/local
David Reiss authored
118 Please be aware that the Python library will ignore the --prefix option
119 and just install wherever Python's distutils puts it (usually along
d683219 Thrift: Python installation.
David Reiss authored
120 the lines of /usr/lib/pythonX.Y/site-packages/). If you need to control
121 where the Python modules are installed, set the PY_PREFIX variable.
122 (DESTDIR is respected for Python and C++.)
aea19c9 Thrift: Python libraries install into /usr, not /usr/local
David Reiss authored
123
227ac2c Ruby code gen fixes and some README improvements
Mark Slee authored
124 Make thrift:
9de5a5c Basic README with build instructions
Marc Slemko authored
125
126 make
127
128 From the top directory, become superuser and do:
129
130 make install
54b7ab9 READMEs and DOCs and ant tasks, oh my
Mark Slee authored
131
227ac2c Ruby code gen fixes and some README improvements
Mark Slee authored
132 Note that some language packages must be installed manually using build tools
133 better suited to those languages (at the time of this writing, this applies
134 to Java, Ruby, PHP).
135
54b7ab9 READMEs and DOCs and ant tasks, oh my
Mark Slee authored
136 Look for the README file in the lib/<language>/ folder for more details on the
137 installation of each language library package.
Something went wrong with that request. Please try again.