Implementations

Subodh Iyengar edited this page Jan 4, 2017 · 303 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
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 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
H2O C Server, proxy ALPN, NPN, Upgrade, direct h2, h2-14, h2-16
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
HttpTwo C# client direct h2, h2c
hyper Python client, server NPN, ALPN h2, h2c
hyper Rust client Upgrade h2
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-http2 NodeJS server, client ALPN, NPN, direct h2
node-spdy NodeJS 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 NodeJS 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
Twisted Python server NPN, ALPN h2
Twitter 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
http2 Go server, client ALPN, Upgrade h2, h2c
cashpack C HPACK
proxygen C++ Server, Client ALPN, NPN, Upgrade h2

Older Implementations

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