-
Notifications
You must be signed in to change notification settings - Fork 564
Implementations
dicioccio lucas edited this page Jan 9, 2018
·
344 revisions
This wiki tracks known implementations of HTTP/2. See also our Tools listing.
Please add your implementation below.
name | language | version | role(s) | negotiation(s) | protocol id(s) | refer |
---|---|---|---|---|---|---|
Ace | Elixir | client, server | ALPN | h2 | ||
Aerys | PHP | server | ALPN, Upgrade, direct | h2, h2c | ||
Akamai GHost | C++ | intermediary | ALPN, NPN | h2, h2-14 | ||
Apache HTTP Server 2.4.17+ | C | server | ALPN, Upgrade, direct | h2, h2c | ||
Apache HttpComponents 5.0-beta1 | Java | client,server | ALPN, Upgrade, direct | h2 | ||
Apache Traffic Server v5.3.0 | C++ | intermediary | ALPN, NPN | h2, h2-14 | ||
Apache Tomcat 8.5+ | Java | Server | ALPN, Upgrade, direct | h2, h2c | ||
http4s-blaze | Scala | server | ALPN | h2, h2-14 | ||
Brocade Traffic Manager (formerly Riverbed/Zeus TM) | C++ | Server | ALPN, Upgrade, direct | h2, h2c | ||
Chatterbox | Erlang | Server, Client | ALPN | h2 | ||
Chromium | C++ | client | ALPN | h2, h2-14 | ||
Chicken Scheme hpack lib | Chicken Scheme | hpack | direct | h2-14 | ||
cl-http2-protocol | Common Lisp | client, server | NPN, direct | h2-14 | ||
curl and libcurl | C | client | ALPN, NPN, Upgrade | h2-14, h2c-14 | ||
Dart | Dart | client, server | ALPN, direct | h2 | ||
Deuterium | C | client, server | ALPN, direct | h2, h2-14, h2c, h2c-14 | ||
E2 Systems PATH | C | Client, Proxy, Server (Testing tool) | ALPN | h2 | ||
elixir-hpack | Elixir | HPACK | ||||
Ericsson MSP | proxy | NPN, Upgrade, direct | h2, h2-14, h2c, h2c-14 | |||
F5 | C | server, proxy | ALPN, NPN | h2-14 (11.6.0 HF2) h2 (upcoming release) | ||
GFE | C++ | intermediary | ALPN, NPN | h2 | ||
HAProxy | C | 1.8+ | intermediary | ALPN, NPN | h2 | |
H2O | C | Server, proxy | ALPN, NPN, Upgrade, direct | h2, h2-14, h2-16 | ||
HH | C | Server | ALPN | h2 | ||
Haskell http2 lib | Haskell | HPACK, framing | ||||
hpack | Erlang | HPACK | ||||
hpack | Swift | HPACK | ||||
http-2 | Ruby | server, client | ALPN, NPN, Upgrade, direct | h2, h2c, h2-17 | ||
http2 | Go | client, server | NPN, ALPN | h2, h2-14 | ||
http2 | Go | server, client | ALPN, Upgrade | h2, h2c | ||
http2-client | Haskell | client | ALPN, direct | h2 | ||
http2dotnet | C# | server, client | ALPN & NPN (external), Upgrade, direct | h2, h2c | ||
HttpTwo | C# | client | direct | h2, h2c | ||
httpbis | Rust | client, server | ||||
hyper | Python | client, server | NPN, ALPN | h2, h2c | ||
Shaka Technologies Ishlangu Load Balancer | C, Java | server, proxy | ALPN | h2 | ||
Jetty | Java | client, intermediary, server | ALPN, Upgrade, Direct | h2, h2-17, h2-14, h2c, h2c-17 | ||
LiteSpeed Enterprise | C++ | Server | ALPN, NPN, Upgrade | h2, h2-17, h2-14, h2c | ||
lua-http | Lua | client, server | ALPN, direct | h2 | ||
Lucid | Erlang | Server | NPN, direct | h2, h2-16, h2-14 | ||
Microsoft | C/C++ | Client, Server | ALPN | h2 | ||
Microsoft Internet Explorer | client | ALPN (others?) | h2 (Windows 10 only?) | |||
mod_h2 | C | Server | ALPN, Upgrade, direct | h2, h2c | ||
Mozilla Firefox | C++ | 49 | client | ALPN, NPN | h2-15, h2-14, h2 | http://caniuse.com/#search=http2 |
Netty | Java | client, server | ALPN, NPN, Upgrade, direct | h2, h2c | ||
nghttp2 | C | client, server, intermediary | ALPN, NPN, Upgrade, direct | h2, h2-16, h2-14, h2c | ||
Radware | C++/C | proxy, server | ALPN | h2 | ||
NGINX | C | 1.9.5+ | server | ALPN, NPN, direct | h2, h2c | Open Source NGINX 1.9.5 Released with HTTP/2 Support |
Node.js | Node.js | 8.4.0+ | server, client | ALPN, NPN, direct | h2, h2c | |
node-http2 | Node.js | server, client | ALPN, NPN, direct | h2 | ||
node-spdy | Node.js | server, client | ALPN, NPN, direct | h2 | ||
OkHttp | Android, Java | mock server, client | ALPN, NPN | h2 | ||
Fast Android Networking | Android, Java | client | ALPN, NPN | h2 | ||
OpenLiteSpeed | C++ | Server | ALPN, NPN, Upgrade | h2, h2-17 , h2-14, h2c | ||
Protocol::HTTP2 | Perl | server, client | ALPN, NPN, Upgrade, direct | h2, h2c | ||
River | Elixir | client | ALPN | h2 | ||
Sasazka | Node.js | server | NPN | |||
second-transfer | Haskell | server | ALPN | h2-14, h2 | ||
ShimmerCat | Haskell | server | ALPN, Ahead Of Time Transfer Engine | h2 | ||
SuaveIO | F# | server | h2 (not yet ready, pull req: https://github.com/SuaveIO/suave/pull/434) | |||
Swoole | PHP | server | ALPN, NPN | h2 | ||
Trusterd | C/mruby | client, server | ALPN, NPN, direct | h2, h2c | ||
Twisted | Python | server | NPN, ALPN | h2 | ||
C++ | server, client | ALPN, NPN | h2 | |||
Undertow | Java | Server, Intermediary | ALPN, Upgrade | |||
Vert.x | Java | Client, Server | ALPN, Upgrade, direct | h2, h2c | ||
WASD | C/OpenVMS | Server | ALPN, Upgrade, direct | h2, h2c | ||
Warp | Haskell | Server | ALPN, direct | |||
Wireshark | C | other | ALPN, NPN, Upgrade, direct | |||
WKWebView | Obj-C, Swift | client | ||||
cashpack | C | HPACK | ||||
proxygen | C++ | Server, Client | ALPN, NPN, Upgrade | h2 | ||
firefly | Java | Server, Client | ALPN, Upgrade | h2, h2c |
name | version | language | role(s) | negotiation(s) | protocol id(s) | refer |
---|---|---|---|---|---|---|
http2-katana | C#/C | server, test client | ALPN, Upgrade | h2-12 | ||
http2-perl | Perl | client, server | NPN | h2-04 | ||
iij-http2 | NodeJS | client, server | ALPN, NPN | h2-13 | ||
http2-go | Go | client, server | NPN | h2-12 |
NOTE: All contributions are made under these terms.