thrift 0.10.0

thrift 0.10.0

测试已测试
语言语言 Obj-CObjective C
许可 Apache 2
发布最后发布2017年1月
SwiftSwift 版本2.3

Maintained by Jon Parise, Rahul Malik.



thrift 0.10.0

  • 作者:
  • Apache 软件基金会

Apache Thrift

+Build Status

  • +AppVeyor Build status

简介

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,软件根据许可证分发,基于“现状”基础,不提供任何明示或暗示的保证或条件。有关许可证规定的特定语言的权限和限制,请参阅许可证。