Apache Thrift 支持语言
最后修改时间: 2018-03-06
Thrift支持多种编程语言,它具有一组引人注目的测试套件,展示了大量案例用法,这些案例包含了在不同语言、协议、传输器的数千种可能组合中的大多数。对每种语言,一般有一个Thrift所需的最低版本和支持类库,有些库是必需的、有些是可选的。下面的信息可以帮你评估能否在你的项目中使用Thrift。很明显,要维护这样一个矩阵是很复杂的,在某些情况下信息可能不准确。如果你发现有错误,请通过邮件列表告知我们。
Apache Thrift具有两种可选的构建系统。autoconf
是目前最完备的构建系统,被用于构建所有支持的语言。cmake
构建系统是为了取代autoconf
而设计的,只不过这种替换需要相当长的时间才能完成。
“语言/库版本”一栏标明了在Apache Thrift持续集成环境(Appveyor, Travis)下测试通过的最低和最高版本。每种语言的其它版本,虽然未经全面的测试,但也有可能被支持,更多详情可查阅每种语言lib目录下的README文件。请注意,尽管Thrift可能包含了对某种语言的协议、传输器和服务器的支持,但在整个构建过程中,它们可能并未经过同等的测试。项目最终的集成测试称为“交叉”测试,它会执行由跨语言的客户端和服务器相互通信而构成的测试矩阵。
语言 | 何时开始支持 | 构建系统 | 经过测试的语言/库版本 | 底层传输器 | 传输包装器 | 协议 | 服务器 | 公开问题 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
autoconf | cmake | Min | Max | Domain | File | Memory | Pipe | Socket | TLS | Framed | http | zlib | Binary | Compact | JSON | Multiplex | Forking | Nonblocking | Simple | Threaded | ThreadPool | |||
ActionScript | 0.3.0 | ActionScript 3 | ActionScript | |||||||||||||||||||||
C (glib) | 0.6.0 | 2.48.2 | 2.54.0 | C (glib) | ||||||||||||||||||||
C++ | 0.2.0 | C++98 | C++ | |||||||||||||||||||||
C# | 0.2.0 | .NET 3.5 / mono 3.2.8.0 | .NET 4.6.1 / mono 4.6.2.7 | C# (.NET) | ||||||||||||||||||||
Cocoa | 0.2.0 | unknown | Cocoa | |||||||||||||||||||||
Common Lisp | 0.12.0 | SBCL 1.4.5 | Common Lisp | |||||||||||||||||||||
Dlang | 0.9.0 | 2.073.2 | 2.077.1 | D | ||||||||||||||||||||
Dart | 0.10.0 | 1.22.1 | 1.24.3 | Dart | ||||||||||||||||||||
Delphi | 0.8.0 | 2010 | unknown | Delphi | ||||||||||||||||||||
.NET Core | 0.11.0 | 2.1.4 | .NET Core | |||||||||||||||||||||
Erlang | 0.3.0 | 18.3 | 20.0.4 | Erlang | ||||||||||||||||||||
Go | 0.7.0 | 1.7.6 | 1.10 | Go | ||||||||||||||||||||
Haskell | 0.5.0 | 7.10.3 | 8.0.2 | Haskell | ||||||||||||||||||||
Haxe | 0.9.3 | 3.2.1 | 3.4.4 | Haxe | ||||||||||||||||||||
Java (SE) | 0.2.0 | 1.8.0_151 | Java SE | |||||||||||||||||||||
Java (ME) | 0.5.0 | unknown | Java ME | |||||||||||||||||||||
Javascript | 0.3.0 | unknown | Javascript | |||||||||||||||||||||
Lua | 0.9.2 | 5.1.5 | 5.2.4 | Lua | ||||||||||||||||||||
node.js | 0.6.0 | 6.x | 8.x | node.js | ||||||||||||||||||||
OCaml | 0.2.0 | 4.04.0 | OCaml | |||||||||||||||||||||
Perl | 0.2.0 | 5.22.1 | 5.26.0 | Perl | ||||||||||||||||||||
PHP | 0.2.0 | 7.0.22 | 7.1.8 | PHP | ||||||||||||||||||||
Python | 0.2.0 | 2.7.12, 3.5.2 | 2.7.14, 3.6.3 | Python | ||||||||||||||||||||
Ruby | 0.2.0 | 2.3.1p112 | 2.3.3p222 | Ruby | ||||||||||||||||||||
Rust | 0.11.0 | 1.17.0 | 1.21.0 | Rust | ||||||||||||||||||||
Smalltalk | 0.2.0 | unknown | Smalltalk | |||||||||||||||||||||
语言 | 何时开始支持 | autoconf | cmake | Min | Max | Domain | File | Memory | Pipe | Socket | TLS | Framed | http | zlib | Binary | Compact | JSON | Multiplex | Forking | Nonblocking | Simple | Threaded | ThreadPool | 公开问题 |
构建系统 | 经过测试的语言/库版本 | 底层传输器 | 传输包装器 | 协议 | 服务器 |