This is the summary of the 9. week of my Google Summer of Code project: HTTP/2 prototype server implementation in node.js.
The focus of this week was improving the top layer of the stack: the public API and the mapping of HTTP concepts to HTTP/2 streams.
Besides that, with the help of Patrick McManus from the Mozilla networking team, I managed to get node-http2 to work with the latest HTTP/2 development build of Firefox! In the process we also discovered a bug in Firefox's header compression implementation. If you follow this blog you've probably seen the proof, but here it is again :)
Improving the top layer meant
- implementation of connection pooling
- exposing server push
- adding logging
- lot of work on API compatibility with the standard HTTPS module (full API compatibility is not achieved yet, but should not be long time before it will be)
What I did not have time for is implementing prioritization, which is the main goal for the following days. If I have more time this week, the next thing on my TODO list is an API for intentional failure injection. This would make it possible to write a server that tests its clients' error handling capabilities.