angejia / thrift
Apache Thrift RPC 系统
Requires
- php: >=5.3.0
Replaces
- apache/thrift: 0.9.*
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
这将运行一组使用不同语言客户端和服务器进行测试的测试。