GSoC week #8

Posted by Gábor Molnár on August 12, 2013

This is the summary of the 8. week of my Google Summer of Code project: HTTP/2 prototype server implementation in node.js.

The two main topics of this week was: testing and flow control.

I participated remotely on the interoperability testing that was organized on the second day of the HTTPBis Interim Meeting in Hamburg. Working with Tatsuhiro Tsujikawa (nghttp2), Shigeki Ohtsu and Fred Akalin (Chrome) helped to discover a few bugs in both mine and their implementation. The public server set up last week proved to very useful for testing. This screenshot is made by Fred with an experimental build of Chrome:

There were several corner cases in flow control that were not handled well, and I believe that these are solved now. In the process of solving these, the flow control implementation of the Connection and the Stream class were merged into a common parent class: Flow.

I try to constantly improve the developer documentation, and as part this, I documented the APIs of the Stream, the Connection and the Flow classes. I also added two nice ASCII art figures to make reading the source code less boring :)

For the next week, I plan to improve the public API, expose server push, and implement prioritization.

As usual, the latest code is published on npm (just type npm install http2 to install it), and the hosted version of the docs and the prototype public server was updated as well.