# external packages hosted elsewhere:
# - Thrift target language
# - package manager name
# - link to package (URL) to most recent version
# - package control file (git source tree link)
# - package maintainer name
# - remarks
  - [ "(all)",       "Docker",        "https://hub.docker.com/_/thrift/",                                    "Dockerfile",                 "",                          "thrift compiler in /usr/local/bin/thrift" ]
  - [ "C (glib)",    "",              "",                                                                    "",                           "",                          "language has no package manager" ]
  - [ "C++",         "",              "",                                                                    "",                           "",                          "see THRIFT-4800" ]
  - [ "C#",          "NuGet",         "https://www.nuget.org/packages/ApacheThrift",                         "ApacheThrift.nuspec",        "jfarrell, codesf, jking",   "multi-framework nupkg for csharp and netcore" ]
  - [ "Cocoa",       "",              "",                                                                    "",                           "",                          "deprecated on 0.12.0 - use swift" ]
  - [ "Common LISP", "",              "",                                                                    "",                           "",                          "no official ASF package available" ]
  - [ "D",           "dub",           "https://code.dlang.org/packages/apache-thrift",                       "dub.json",                   "jking",                     "" ]
  - [ "Dart",        "Pub",           "https://pub.dartlang.org/packages/thrift",                            "lib/dart/pubspec.yaml",      "jking",                     "" ]
  - [ ".NET Standard", "NuGet",       "https://www.nuget.org/packages/ApacheThrift",                         "ApacheThrift.nuspec",        "jfarrell, codesf, jking",   "multi-framework nupkg for csharp and netcore" ]
  - [ "Erlang",      "Hex PM",        "https://hex.pm/packages?search=thrift&sort=downloads",                "",                           "",                          "no official ASF package available" ]
  - [ "Haxe",        "Haxelib",       "",                                                                    "lib/haxe/haxelib.json",      "jensg",                     "" ]
  - [ "Go",          "",              "",                                                                    "",                           "",                          "no official ASF package available" ]
  - [ "Java",        "Maven",         "https://repository.apache.org/#nexus-search;quick~org.apache.thrift", "lib/java/gradle.properties", "jking",                     "" ]
  - [ "JavaScript",  "Bower",         "https://libraries.io/bower/thrift",                                   "bower.json",                 "",                          "" ]
  - [ "Lua",         "LuaRocks",      "https://luarocks.org/modules/drauschenbach/thrift",                   "",                           "",                          "not official - stale at 0.10.0 - see THRIFT-4708" ]
  - [ "Node.js",     "npm",           "https://www.npmjs.com/package/thrift",                                "package.json",               "jfarrell, wadey, jking",    "" ]
  - [ "OCaml",       "opam",          "https://opam.ocaml.org/packages/thrift/",                             "lib/ocaml/opam",             "",                          "stale at 0.9.0 (community provided) - see THRIFT-4706" ]
  - [ "Perl",        "CPAN",          "https://metacpan.org/release/Thrift",                                 "lib/perl/Makefile.PL",       "jking",                     "" ]
  - [ "PHP",         "Packagist",     "https://packagist.org/packages/apache/thrift",                        "composer.json",              "jfarrell, bufferoverflow, jking",  "" ]
  - [ "Python",      "pypi",          "https://pypi.python.org/pypi/thrift",                                 "lib/py/setup.py",            "jfarrell",                  "stale at 0.11.0 - see THRIFT-4687" ]
  - [ "Ruby",        "Ruby Gem",      "https://rubygems.org/gems/thrift",                                    "lib/rb/Gemfile",             "jfarrell",                  "stale at 0.11.0 - see THRIFT-4707" ]
  - [ "Rust",        "Cargo",         "https://crates.io/crates/thrift",                                     "lib/rs/cargo.toml",          "all thrift committers",     "" ]
  - [ "Smalltalk",   "",              "",                                                                    "",                           "",                          "no official ASF package available" ]
  - [ "Swift",       "",              "",                                                                    "",                           "",                          "no official ASF package available" ]

