HTTP/2 C library and tools

Nghttp2 v0.6.7

nghttp2 v0.6.7 has been released. We still advertises h2-14 support in ALPN, but we have merged h2-16 features in this release. They are binary compatible, so we use h2-14, which is the interop draft version.

For library code, there are several changes. Due to the change made into h2-16, PRIORITY frame is now allowed in any state state. Also we refined GOAWAY handling by utilizing last-stream-id extensively. nghttp2_session_want_read() and nghttp2_session_want_write() reflect this change so as to make graceful shutdown easier.

nghttpx got some enhancement. It now has the feature to configure access logging format. In addition to the usual combined log fields, we have added additional custom fields. Some of the new custom fields were contributed by Lucas Pardue. The cipher suite requirement in nghttpx was now removed and it only requires TLSv1.2 for HTTP/2 connection due to the changes in h2-16. nghttpx also disabled spdy/3 and spdy/2 by default, since they are now being deprecated world wide.

nghttp got some interesting options. The most notable option is -r. If it is given with file name, nghttp saves HTTP transactions in well-known HAR format. It is expected to be used with -a option.

h2load finally got ALPN support.

For python bindings, client implementation was contributed by Kyle Schomp.