• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

aclocal/H04-Feb-2021-12,48711,144

build/H04-Feb-2021-6,0334,847

compiler/cpp/H04-Feb-2021-99,53175,429

contrib/H04-Feb-2021-9,7236,527

debian/H07-May-2022-722518

doc/H04-Feb-2021-3,2632,353

lib/H04-Feb-2021-325,810231,545

test/H03-May-2022-63,84551,774

tutorial/H04-Feb-2021-26,75620,905

.asf.yamlH A D04-Feb-2021250 86

.clang-formatH A D16-Mar-20191.7 KiB5755

.dockerignoreH A D16-Mar-20196 21

.editorconfigH A D16-Mar-20191.6 KiB11385

.eslintignoreH A D16-Mar-2019206 107

.eslintrc.jsonH A D16-Mar-2019374 2524

.flake8H A D10-Oct-2019160 65

.gitattributesH A D16-Mar-201912 21

.rustfmt.tomlH A D16-Mar-20191.6 KiB6564

.travis.ymlH A D04-Feb-20215.2 KiB169145

ApacheThrift.nuspecH A D04-Feb-20211.8 KiB4522

CHANGES.mdH A D04-Feb-2021371.5 KiB3,5443,278

CONTRIBUTING.mdH A D04-Feb-20217.3 KiB11774

LANGUAGES.mdH A D04-Feb-202147.1 KiB370363

LICENSEH A D04-Feb-202115.1 KiB307252

Makefile.amH A D04-Feb-20213.7 KiB170128

Makefile.inH A D04-Feb-202134.4 KiB1,1511,015

NOTICEH A D04-Feb-2021174 64

README.mdH A D04-Feb-20217.1 KiB212144

Thrift.podspecH A D04-Feb-2021975 1615

aclocal.m4H A D04-Feb-202157.7 KiB1,5891,440

appveyor.ymlH A D04-Feb-20213 KiB10992

bootstrap.shH A D04-Feb-20211.9 KiB6534

bower.jsonH A D04-Feb-2021308 1615

compileH A D04-Feb-20217.2 KiB348258

composer.jsonH A D04-Feb-2021994 4039

config.guessH A D04-Feb-202143.2 KiB1,4811,288

config.hH A D04-Feb-202113.5 KiB467110

config.hinH A D04-Feb-202112.8 KiB466318

config.subH A D04-Feb-202135.3 KiB1,8021,661

configureH A D04-Feb-2021872.3 KiB29,64124,985

configure.acH A D04-Feb-202133.2 KiB1,074989

depcompH A D04-Feb-202123 KiB792502

doap.rdfH A D04-Feb-20216.7 KiB160143

dub.jsonH A D04-Feb-2021676 2928

install-shH A D04-Feb-202114.8 KiB509329

jitpack.ymlH A D04-Feb-202162 32

ltmain.shH A D04-Feb-2021316.8 KiB11,1577,986

missingH A D04-Feb-20216.7 KiB216143

package-lock.jsonH A D04-Feb-2021117.6 KiB3,2093,208

package.jsonH A D04-Feb-20211.9 KiB7372

phpcs.xml.distH A D04-Feb-2021749 2620

sonar-project.propertiesH A D04-Feb-20214.4 KiB141109

ylwrapH A D04-Feb-20216.7 KiB248143

README.md

1Apache Thrift
2=============
3
4Introduction
5============
6
7Thrift is a lightweight, language-independent software stack for
8point-to-point RPC implementation.
9Thrift provides clean abstractions and implementations for data transport,
10data serialization, and application level processing. The code generation
11system takes a simple definition language as input and generates code
12across programming languages that uses the abstracted stack to build
13interoperable RPC clients and servers.
14
15![Apache Thrift Layered Architecture](doc/images/thrift-layers.png)
16
17Thrift makes it easy for programs written in different programming
18languages to share data and call remote procedures.  With support
19for [28 programming languages](LANGUAGES.md), chances are Thrift
20supports the languages that you currently use.
21
22Thrift is specifically designed to support non-atomic version changes
23across client and server code.  This allows you to upgrade your
24server while still being able to service older clients; or have newer
25clients issue requests to older servers.  An excellent community-provided
26write-up about thrift and compatibility when versioning an API can be
27found in the [Thrift Missing Guide](https://diwakergupta.github.io/thrift-missing-guide/#_versioning_compatibility).
28
29For more details on Thrift's design and implementation, see the Thrift
30whitepaper included in this distribution, or at the README.md file
31in your particular subdirectory of interest.
32
33Status
34======
35
36| Branch | Travis | Appveyor | Coverity Scan | codecov.io | Website |
37| :----- | :----- | :------- | :------------ | :--------- | :------ |
38| [`master`](https://github.com/apache/thrift/tree/master) | [![Build Status](https://travis-ci.org/apache/thrift.svg?branch=master)](https://travis-ci.org/apache/thrift/branches) | [![Build status](https://ci.appveyor.com/api/projects/status/github/apache/thrift?branch=master&svg=true)](https://ci.appveyor.com/project/ApacheSoftwareFoundation/thrift/history) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/1345/badge.svg)](https://scan.coverity.com/projects/thrift) | | [![Website](https://img.shields.io/badge/official-website-brightgreen.svg)](https://thrift.apache.org/) |
39| [`0.13.0`](https://github.com/apache/thrift/tree/0.13.0) | [![Build Status](https://travis-ci.org/apache/thrift.svg?branch=0.13.0)](https://travis-ci.org/apache/thrift/branches) | | | | |
40| [`0.12.0`](https://github.com/apache/thrift/tree/0.12.0) | [![Build Status](https://travis-ci.org/apache/thrift.svg?branch=0.12.0)](https://travis-ci.org/apache/thrift/branches) | | | | |
41
42Releases
43========
44
45Thrift does not maintain a specific release calendar at this time.
46
47We strive to release twice yearly.  Download the [current release](http://thrift.apache.org/download).
48
49License
50=======
51
52Licensed to the Apache Software Foundation (ASF) under one
53or more contributor license agreements. See the NOTICE file
54distributed with this work for additional information
55regarding copyright ownership. The ASF licenses this file
56to you under the Apache License, Version 2.0 (the
57"License"); you may not use this file except in compliance
58with the License. You may obtain a copy of the License at
59
60  http://www.apache.org/licenses/LICENSE-2.0
61
62Unless required by applicable law or agreed to in writing,
63software distributed under the License is distributed on an
64"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
65KIND, either express or implied. See the License for the
66specific language governing permissions and limitations
67under the License.
68
69Project Hierarchy
70=================
71
72thrift/
73
74  compiler/
75
76    Contains the Thrift compiler, implemented in C++.
77
78  lib/
79
80    Contains the Thrift software library implementation, subdivided by
81    language of implementation.
82
83    cpp/
84    go/
85    java/
86    php/
87    py/
88    rb/
89    ...
90
91  test/
92
93    Contains sample Thrift files and test code across the target programming
94    languages.
95
96  tutorial/
97
98    Contains a basic tutorial that will teach you how to develop software
99    using Thrift.
100
101Development
102===========
103
104To build the same way Travis CI builds the project you should use docker.
105We have [comprehensive building instructions for docker](build/docker/README.md).
106
107Requirements
108============
109
110See http://thrift.apache.org/docs/install for a list of build requirements (may be stale).  Alternatively, see the docker build environments for a list of prerequisites.
111
112Resources
113=========
114
115More information about Thrift can be obtained on the Thrift webpage at:
116
117     http://thrift.apache.org
118
119Acknowledgments
120===============
121
122Thrift was inspired by pillar, a lightweight RPC tool written by Adam D'Angelo,
123and also by Google's protocol buffers.
124
125Installation
126============
127
128If you are building from the first time out of the source repository, you will
129need to generate the configure scripts.  (This is not necessary if you
130downloaded a tarball.)  From the top directory, do:
131
132    ./bootstrap.sh
133
134Once the configure scripts are generated, thrift can be configured.
135From the top directory, do:
136
137    ./configure
138
139You may need to specify the location of the boost files explicitly.
140If you installed boost in `/usr/local`, you would run configure as follows:
141
142    ./configure --with-boost=/usr/local
143
144Note that by default the thrift C++ library is typically built with debugging
145symbols included. If you want to customize these options you should use the
146CXXFLAGS option in configure, as such:
147
148    ./configure CXXFLAGS='-g -O2'
149    ./configure CFLAGS='-g -O2'
150    ./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
151
152To enable gcov required options -fprofile-arcs -ftest-coverage enable them:
153
154    ./configure  --enable-coverage
155
156Run ./configure --help to see other configuration options
157
158Please be aware that the Python library will ignore the --prefix option
159and just install wherever Python's distutils puts it (usually along
160the lines of `/usr/lib/pythonX.Y/site-packages/`).  If you need to control
161where the Python modules are installed, set the PY_PREFIX variable.
162(DESTDIR is respected for Python and C++.)
163
164Make thrift:
165
166    make
167
168From the top directory, become superuser and do:
169
170    make install
171
172Uninstall thrift:
173
174    make uninstall
175
176Note that some language packages must be installed manually using build tools
177better suited to those languages (at the time of this writing, this applies
178to Java, Ruby, PHP).
179
180Look for the README.md file in the lib/<language>/ folder for more details on the
181installation of each language library package.
182
183Package Managers
184================
185
186Apache Thrift is available via a number of package managers, a list which is
187is steadily growing. A more detailed overview can be found
188[at the Apache Thrift web site under "Libraries"](http://thrift.apache.org/lib/)
189and/or in the respective READMEs for each language under /lib
190
191Testing
192=======
193
194There are a large number of client library tests that can all be run
195from the top-level directory.
196
197    make -k check
198
199This will make all of the libraries (as necessary), and run through
200the unit tests defined in each of the client libraries. If a single
201language fails, the make check will continue on and provide a synopsis
202at the end.
203
204To run the cross-language test suite, please run:
205
206    make cross
207
208This will run a set of tests that use different language clients and
209servers.
210
211
212