nemospeculo/thrift

此包已被废弃且不再维护。作者建议使用 apache/thrift 包。

Apache Thrift RPC系统

0.10.0 2016-12-21 20:36 UTC

This package is not auto-updated.

Last update: 2019-11-28 16:27:52 UTC


README

最后修改时间: 2014-03-16

许可证

根据一个或多个贡献者许可证协议许可给Apache软件基金会(ASF)。关于版权所有权的更多信息,请参阅与此工作一起分发的NOTICE文件。ASF根据Apache许可证2.0版(“许可证”)向您许可此文件;您只能在不违反许可证的情况下使用此文件。您可以在以下地址获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证管理的权限和限制的具体语言,请参阅许可证。

介绍

Thrift是一个轻量级的、语言无关的软件栈,它具有与RPC相关的代码生成机制。Thrift为数据传输、数据序列化和应用程序级处理提供清晰的抽象。代码生成系统以简单的定义语言作为输入,并为使用抽象堆栈构建可互操作RPC客户端和服务器生成跨编程语言的代码。

Thrift特别设计用于支持客户端和服务器代码之间的非原子版本更改。

有关Thrift的设计和实现的更多详细信息,请参阅本分发中包含的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文件的位置。如果您将boost安装在/usr/local,则配置操作如下:

./configure --with-boost=/usr/local

请注意,默认情况下,thrift C++ 库通常包含调试符号。如果您想自定义这些选项,应使用 configure 中的 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

这将运行一组使用不同语言客户端和服务器进行测试的测试。