sunlong/thrift

Apache Thrift RPC 系统库

维护者

详细信息

github.com/sunlongv5/thrift

主页

源码

安装: 16

依赖: 1

建议者: 0

安全性: 0

星星: 0

关注者: 1

Forks: 4,008

语言:C++

0.9.3.5 2018-11-28 10:13 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:04 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

./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

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