angejia/thrift

Apache Thrift RPC 系统

维护者

详细信息

github.com/angejia/thrift

主页

源代码

安装数: 2,987

依赖者: 2

推荐者: 0

安全性: 0

星标: 2

关注者: 4

分支数: 4,004

语言:C++

0.9.3.4 2016-09-06 09:49 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:58:29 UTC


README

最后修改:2014-03-16

许可协议

Apache 软件基金会 (ASF) 根据 Apache 许可协议版本 2.0 或更高版本许可。关于版权拥有权的信息,请参阅此工作随附的 NOTICE 文件。ASF 将此文件许可给您,您只能根据许可协议使用此文件。您可以在以下网址获得许可证的副本:

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++ 库通常带有调试符号构建。如果您想自定义这些选项,您应在配置中使用 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 变量。(DESTDIR 适用于 Python 和 C++。)

构建 Thrift

make

从顶级目录中,成为超级用户并执行以下操作:

make install

请注意,一些语言包必须使用更适合这些语言的构建工具手动安装(在撰写本文时,这适用于 Java、Ruby 和 PHP)。

有关安装每个语言库包的详细信息,请查找 lib// 文件夹中的 README.md 文件。

测试

存在大量的客户端库测试,都可以从顶级目录运行。

      make -k check

这将构建所有必要的库,并运行每个客户端库中定义的单元测试。如果单个语言失败,make check 将继续执行并在最后提供摘要。

要运行跨语言测试套件,请运行

      make cross

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