From 36d4552532f46128fcca12bb3fa0b72e6fcdd817 Mon Sep 17 00:00:00 2001 From: "James E. King III" Date: Fri, 22 Feb 2019 08:13:38 -0500 Subject: THRIFT-4808: Update LANGUAGES.md [ci skip] --- LANGUAGES.md | 130 +++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 77 insertions(+), 53 deletions(-) (limited to 'LANGUAGES.md') diff --git a/LANGUAGES.md b/LANGUAGES.md index b74fd3eae..e84fecb62 100644 --- a/LANGUAGES.md +++ b/LANGUAGES.md @@ -1,14 +1,38 @@ # Apache Thrift Language Support # -Last Modified: 2018-12-17 +Guidance For: 0.13.0 | +[0.12.0](https://github.com/apache/thrift/blob/v0.12.0/LANGUAGES.md) | +[0.11.0](https://github.com/apache/thrift/blob/0.11.0/LANGUAGES.md) -Guidance For: 0.12.0 or later +Thrift supports many programming languages and has an impressive test suite that +exercises most of the languages, protocols, and transports. Each build exercises +a matrix of thousands of possible combinations. Each language typically has a +minimum required version as well as support libraries - some mandatory and some +optional. The information provided below will help you assess whether you can +use Apache Thrift with your project. Obviously this is a complex matrix to +maintain and may not be correct in all cases - if you spot an error please inform +the developers using the mailing list, or better yet, +[Edit on GitHub](https://github.com/apache/thrift/edit/master/LANGUAGES.md). -Thrift supports many programming languages and has an impressive test suite that exercises most of the languages, protocols, and transports that represents a matrix of thousands of possible combinations. Each language typically has a minimum required version as well as support libraries - some mandatory and some optional. All of this information is provided below to help you assess whether you can use Apache Thrift with your project. Obviously this is a complex matrix to maintain and may not be correct in all cases - if you spot an error please inform the developers using the mailing list. +Apache Thrift currently uses two build systems. The `autoconf` build system is +the most complete and builds all supported languages, however it does not support +Windows.. The `cmake` build system works on Linux and Windows, and has been +designated by the project to replace `autoconf` however this transition will +take quite some time to complete. During that transition, the cmake build will +not support all languages. -Apache Thrift has a choice of two build systems. The `autoconf` build system is the most complete build and is used to build all supported languages. The `cmake` build system has been designated by the project to replace `autoconf` however this transition will take quite some time to complete. +The Language/Library Levels indicate the minimum and maximum versions that are +used in the [continuous integration environments](build/docker/README.md) +(Appveyor, Travis) for Apache Thrift. Other language levels may be supported +for each language, however tested less thoroughly; check the README file inside +each lib directory for additional details. Note: while a language may contain +support for protocols, transports, and servers, the extent to which each is tested +as part of the overall build process varies. The definitive integration test for +the project is called the "cross" test which executes a test matrix with clients +and servers communicating across languages. -The Language/Library Levels indicate the minimum and maximum versions that are used in the [continuous integration environments](build/docker/README.md) (Appveyor, Travis) for Apache Thrift. Other language levels may be supported for each language, however tested less thoroughly; check the README file inside each lib directory for additional details. Note that while a language may contain support for protocols, transports, and servers, the extent to which each is tested as part of the overall build process varies. The definitive integration test for the project is called the "cross" test which executes a test matrix with clients and servers communicating across languages. +Thrift's core transport (supported by all languages) is TSocket. +Thrift's core protocol is TBinary, supported by all languages except for JavaScript. @@ -18,7 +42,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -27,7 +51,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -39,7 +63,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -50,7 +74,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -59,42 +83,31 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + - + - + - + - - - - - - - - - - - - + - + @@ -105,7 +118,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -114,9 +127,9 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + - + @@ -127,18 +140,29 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + - + - + + + + + + + + + + + + @@ -149,7 +173,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -160,7 +184,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -171,7 +195,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -182,7 +206,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -193,7 +217,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -204,7 +228,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -213,9 +237,9 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + - + @@ -226,7 +250,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -237,7 +261,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -248,7 +272,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -259,7 +283,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -270,7 +294,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -281,7 +305,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -292,7 +316,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -303,7 +327,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -314,7 +338,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -325,7 +349,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -336,7 +360,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -349,7 +373,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + @@ -358,7 +382,7 @@ The Language/Library Levels indicate the minimum and maximum versions that are u - + -- cgit v1.2.1
Build Systems Lang/Lib Levels (Tested) Low-Level TransportsTransport WrappersTransport Wrappers Protocols Servers Open Issuesautoconfcmake MinMax Domain File Memory Pipe Socket TLS Framed http  zlib FramedHeader http  zlib  BinaryCompact JSON Multiplex ForkingNonblockingSimpleThreadedThreadPool
YesYes FLEX SDK 4.6 YesYesYes Yes ActionScriptYesYes 2.48.22.56.0 YesYesYesYesYesYes YesYesYes Yes C (glib)C++ 0.2.0 YesYesC++98 (through 0.12.0)C++11 (after 0.12.0)C++11 YesYesYesYesYesYesYesYesYesYesYesYesYes YesYesYesYes YesYesYesYes C++
C#0.2.00.2.0
Deprecated
use netstd
Yes .NET 3.5 / mono 3.2.8.0.NET 4.6.1 / mono 4.6.2.7 YesYesYesYesYesYesYesYes YesYesYesYes YesYesYes C# (.NET)
Cocoa0.2.0unknownYesYesYesYesYesYesYesYesYesYesCocoa
Common LISP 0.12.0 YesSBCL 1.4.5SBCL 1.4.15SBCL 1.4.x YesYesYesYes YesYesYes Yes Common LISPYes 2.075.12.083.2 YesYesYesYesYesYesYesYesYesYesYes YesYesYes YesYesYesYes DDart 0.10.0 Yes1.22.11.24.31.24.32.x YesYesYesYesYes YesYesYesYes Dart 2010unknown YesYesYesYesYes YesYesYesYes Yes Delphi
.NET Core0.11.00.11.0
Deprecated
use netstd
Yes 2.1.42.2.101 YesYesYesYesYesYesYesYesYesYesYesYesYes.NET Core
.NET Standard0.13.0Yes.NET 4.5+, .NET Standard 2.xYesYesYesYesYesYes YesYesYesYes Yes .NET CoreYes 18.320.0.4 YesYesYesYesYesYesYesYes YesYesYesYes Yes ErlangYes 1.7.61.11.4 YesYesYesYesYesYesYesYesYes YesYesYesYes Yes GoYesYes 7.10.38.0.2 YesYesYesYesYesYesYesYes YesYesYes YesYes HaskellYes 3.2.13.4.4 YesYesYesYesYesYes YesYesYesYes Yes HaxeYesYes 1.8.0_1511.8.0_191 YesYesYesYesYesYesYesYesYesYes YesYesYesYes YesYesYesYes Java SE unknown YesYesYesYesYes YesYes Java MEJavascript 0.3.0 YesunknownES5ES6 YesYesYesYes YesYes JavascriptYes 5.1.55.2.4 YesYesYesYesYesYes YesYesYes Yes LuaYes 6.x8.x YesYesYesYesYesYesYesYes YesYesYesYes Yes node.jsYes 3.1.6 YesYes Yes Yes node.ts 4.04.0 YesYesYes Yes YesYes OCamlYes 5.22.15.26.1 YesYesYesYesYesYesYesYes YesYesYes YesYes PerlYes 7.0.227.2.10 YesYesYesYesYesYesYes YesYesYesYes YesYes PHPYesYes 2.7.12, 3.5.22.7.15rc1, 3.6.7 YesYesYesYesYesYesYes YesYesYesYes YesYesYes PythonYes 2.3.1p1122.5.1p57 YesYesYesYesYesYesYesYes YesYesYesYes YesYesYesYes RubyYes 1.17.01.30.0 YesYesYesYes YesYesYes Yes Rust unknown Yes Yes SmalltalkYes 4.2.1 YesYesYesYesYesYesYesYes YesYesYes Yes Swiftautoconfcmake MinMax Domain File Memory Pipe Socket TLS Framed http  zlib FramedHeader http  zlib  BinaryCompact JSON Multiplex ForkingNonblockingSimpleThreadedThreadPool Open IssuesBuild Systems Lang/Lib Levels (Tested) Low-Level TransportsTransport WrappersTransport Wrappers Protocols Servers