语言与特性矩阵
Apache Thrift 语言支持
指导版本:0.22.0 | 0.21.0 | 0.20.0 | 0.19.0 | 0.18.0 | 0.17.0 | 0.16.0 | 0.15.0 | 0.14.0 | 0.13.0 | 0.12.0 | 0.11.0
Thrift 支持多种编程语言,并拥有一套令人印象深刻的测试套件,涵盖了大多数语言、协议和传输方式。每次构建都会对成千上万种可能的组合进行测试。每种语言通常都有最低版本要求以及支持库——有些是必需的,有些是可选的。下面提供的信息将帮助你评估 Apache Thrift 是否能用于你的项目。显然,维护这样一个复杂的对照表并非易事,某些内容也可能不完全正确——如果你发现了错误,请通过邮件列表告知开发者,或者更好的方式是在 GitHub 上编辑。
Apache Thrift 目前使用两套构建系统。autoconf 构建系统最为完整,可以构建所有受支持的语言,但它不支持 Windows。cmake 构建系统可在 Linux 和 Windows 上运行,已被项目指定用于取代 autoconf,不过这一过渡将需要相当长的时间才能完成。在过渡期间,cmake 构建将无法支持所有语言。
语言/库版本级别表示 Apache Thrift 在持续集成环境(Appveyor、Travis)中使用的最低和最高版本。每种语言可能还支持其他版本级别,只是测试不够充分;详情请查看各 lib 目录中的 README 文件。注意:虽然某种语言可能包含对协议、传输方式和服务器的支持,但在整体构建过程中对它们各自的测试程度各不相同。该项目最终的集成测试称为“cross”测试,它会执行一个测试矩阵,让客户端与服务器跨语言进行通信。
Thrift 的核心传输方式(所有语言均支持)是 TSocket。Thrift 的核心协议是 TBinary,除 JavaScript 外的所有语言均支持它。
| Language | Since | Build Systems | Lang/Lib Levels (Tested) | Field types | Low-Level Transports | Transport Wrappers | Protocols | Servers | Open Issues | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| autoconf | cmake | Min | Max | Uuid | Domain | File | Memory | Pipe | Socket | TLS | Framed | Header | http | zlib | Binary | Compact | JSON | Multiplex | Forking | Nonblocking | Simple | Threaded | ThreadPool | |||
| C (glib) | 0.6.0 | ![]() | ![]() | 2.48.2 | 2.56.4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | C (glib) |
| C++ | 0.2.0 | ![]() | ![]() | C++11 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | C++ |
| Common LISP | 0.12.0 |
|
| SBCL 1.4.x | SBCL 1.5.3 |
|
|
|
|
|
|
| ![Yes
评论
登录后参与评论
KnowForge