测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | Apache 2 |
发布最后发布 | 2017年1月 |
SwiftSwift 版本 | 2.3 |
Maintained by Jon Parise, Rahul Malik.
Thrift 是一个轻量级、语言无关的软件堆栈,它有一个相关的代码生成机制用于 RPC。Thrift 为数据传输、数据序列化和应用级别处理提供了清晰的抽象。代码生成系统以简单的定义语言作为其输入,并生成用于跨编程语言的代码,这些代码使用抽象的堆栈来构建可互操作的 RPC 客户端和服务器。
Thrift 被特别设计用于支持客户端和服务器代码间的非原子版本更改。
有关 Thrift 的设计和实现更多细节,请参阅 distributions 中的 Thrift 白皮书或您感兴趣的特定子目录中的 README.md 文件。
thrift/
compiler/
Contains the Thrift compiler, implemented in C++.
lib/
Contains the Thrift software library implementation, subdivided by
language of implementation.
cpp/
go/
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.
有关最新构建要求的列表,请参阅 http://thrift.apache.org/docs/install。
有关 Thrift 的更多信息,可以在 Thrift 网页上获得
http://thrift.apache.org
Thrift 吸收了 Adam D'Angelo 编写的轻量级 RPC 工具 pillar 的启发,还受到了 Google 的协议缓冲区的影响。
如果您是第一次从源代码库构建,则需要生成配置脚本。(如果您下载了一个 tarball,则不需要这样做。)从顶级目录中进行以下操作
./bootstrap.sh
一旦生成了配置脚本,就可以配置 thrift。从顶级目录中,进行以下操作
./configure
您可能需要显式指定 boost 文件的路径。如果您在 /usr/local 安装了 boost,则配置如下运行
./configure --with-boost=/usr/local
注意,默认情况下,thrift C++ 库通常带有调试符号构建。如果您想自定义这些选项,应在配置中使用 CXXFLAGS 选项,如下所示
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
要启用 gcov 所需的选项 -fprofile-arcs -ftest-coverage,启用它们
./configure --enable-coverage
运行 ./configure --help 查看其他配置选项
请注意,Python库将忽略--prefix选项,并在Python的distutils放置的位置安装(通常为/usr/lib/pythonX.Y/site-packages/)。如果您需要控制Python模块的安装位置,请设置PY_PREFIX变量。(对Python和C++而言,DESTDIR是受尊重的。)
构建thrift
make
从顶层目录开始,成为超级用户并执行
make install
请注意,某些语言包必须使用更适合这些语言的构建工具手动安装(在本写作时,这适用于Java、Ruby、PHP)。
请在lib//文件夹中查找README.md文件,获取有关每个语言库包安装的详细信息。
有一个大量客户端库测试可以从顶层目录运行。
make -k check
这将构建所有库(如有必要),并通过客户端库中定义的单元测试运行。如果一个语言失败,make check将继续执行并在结束时提供摘要。
要运行跨语言测试套件,请执行
make cross
这将运行一组使用不同语言客户端和服务器进行测试的测试。
根据一份或多份贡献者许可协议许可给Apache软件基金会的(ASF)。有关版权归属的其他信息,请参见与本工作一起分发NOTICE文件。ASF根据Apache许可证版本2.0(“许可证”)许可此文件给您;除非适用法律要求或书面同意,否则不得使用此文件,除非符合许可证。您可以在以下地址获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意, Otherwise,软件根据许可证分发,基于“现状”基础,不提供任何明示或暗示的保证或条件。有关许可证规定的特定语言的权限和限制,请参阅许可证。