apache / thrift
Apache Thrift RPC 系统
Requires
- php: ^7.1 || ^8.0
Requires (Dev)
- ext-curl: *
- ext-json: *
- ext-pcntl: *
- ext-xml: *
- php-mock/php-mock-phpunit: ^2.10
- phpunit/phpunit: ^7.5 || ^8.5 || ^9.5
- squizlabs/php_codesniffer: 3.*
- dev-master / 1.0.x-dev
- 0.21.0.x-dev
- v0.21.0
- 0.20.0.x-dev
- v0.20.0
- 0.19.0.x-dev
- v0.19.0
- 0.18.1.x-dev
- v0.18.1
- 0.18.0.x-dev
- v0.18.0
- 0.17.0.x-dev
- v0.17.0
- 0.16.0.x-dev
- v0.16.0
- 0.15.0.x-dev
- v0.15.0
- 0.14.2.x-dev
- v0.14.2
- 0.14.1.x-dev
- v0.14.1
- 0.14.0.x-dev
- v0.14.0
- 0.13.0.x-dev
- v0.13.0
- 0.12.0.x-dev
- v0.12.0
- 0.11.0.x-dev
- 0.11.0
- 0.10.0.x-dev
- 0.10.0
- 0.9.x-dev
- 0.9.3.x-dev
- 0.9.3.2-dev
- 0.9.3.1
- 0.9.3.1-dev
- 0.9.3
- 0.9.2.x-dev
- 0.9.2
- 0.9.1.x-dev
- 0.9.0
- dev-dependabot/npm_and_yarn/lib/ts/elliptic-6.5.7
- dev-follow-up-python-github-workflow
- dev-ci/pypi-automation
This package is not auto-updated.
Last update: 2024-09-22 17:08:15 UTC
README
简介
Thrift 是一个轻量级、语言无关的软件堆栈,用于实现点对点 RPC。Thrift 为数据传输、数据序列化和应用级处理提供了干净的抽象和实现。代码生成系统以简单的定义语言作为输入,并为使用抽象堆栈构建互操作 RPC 客户端和服务器生成代码。
Thrift 使得用不同编程语言编写的程序能够共享数据和调用远程过程变得容易。Thrift 支持 28 种编程语言,很可能 Thrift 支持您当前使用的语言。
Thrift 特别设计用于支持客户端和服务器代码之间的非原子版本更改。这允许您在升级服务器的同时,仍然能够为旧客户端提供服务;或者让新客户端向旧服务器发送请求。关于 thrift 以及在版本化 API 时的兼容性的社区提供的优秀指南可以在 Thrift 缺失指南 中找到。
有关 Thrift 的设计和实现的更多详细信息,请参阅本发行版中包含的 Thrift 白皮书或您感兴趣子目录中的 README.md 文件。
状态
版本
Thrift 目前没有维护特定的发布日历。
我们力求每半年发布两次。下载 当前版本。
许可证
根据一个或多个贡献者许可协议许可给 Apache 软件基金会 (ASF)。有关版权所有权的更多信息,请参阅与此工作一起分发的 NOTICE 文件。ASF 将此文件许可给您,根据 Apache 许可证 2.0 版(“许可证”);除非根据适用法律或书面同意,否则您不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证下管理权限和限制的具体语言,请参阅许可证。
项目层次结构
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.
开发
要像 Travis CI 构建项目一样构建,您应使用 Docker。我们提供了 Docker 的综合构建说明。
要求
有关构建要求(可能已过时)的列表,请参阅 http://thrift.apache.org/docs/install。或者,查看 Docker 构建环境以获取先决条件的列表。
资源
有关 Thrift 的更多信息可以在 Thrift 网页上获得
http://thrift.apache.org
致谢
Thrift 受到 Adam D'Angelo 编写的轻量级 RPC 工具 pillar 以及 Google 的协议缓冲区的启发。
安装
如果您是第一次从源代码库构建,则需要生成配置脚本。(如果您下载了存档文件,则不需要此步骤。)从顶级目录中,执行以下操作:
./bootstrap.sh
一旦生成配置脚本,Thrift 就可以配置。从顶级目录中,执行以下操作:
./configure
您可能需要显式指定boost文件的路径。如果您在/usr/local
安装了boost,您应该按照以下方式运行configure:
./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变量。(DESTDIR对于Python和C++是受尊重的。)
构建thrift
make
从顶级目录开始,成为超级用户并执行
make install
卸载thrift
make uninstall
请注意,一些语言包必须使用更适合这些语言的构建工具手动安装(在撰写本文时,这适用于Java、Ruby、PHP)。
在lib//文件夹中查找README.md文件,以获取有关安装每个语言库包的更多详细信息。
包管理器
Apache Thrift可通过多个包管理器获得,该列表正在稳步增长。更详细的信息可以在Apache Thrift网站“库”部分下找到,或者在每个语言的/lib下的相应的READMEs中找到。
测试
存在大量客户端库测试,所有这些测试都可以从顶级目录中运行。
make -k check
这将构建所有库(如有必要),并运行每个客户端库中定义的单元测试。如果某个语言失败,make check将继续运行并在末尾提供摘要。
要运行跨语言测试套件,请运行
make cross
这将运行一组使用不同语言客户端和服务器进行测试的测试。