Previously the input was Frames and output ByteStrings. Now it's frames both in and out.
Exactly 2 compression contexts are needed for a SPDY connection. One for received data, one for data being sent.
The payload can be large, and it comes over the network in small pieces. Making the string strict creates unnecessary allocation.
zlib contexts uses quite a bit of memory. We will need 4 of them in total; sending/receiving requests, sending/receiving replies. I suspect that the server will rarely open streams to the client, so let's avoid creating more contexts than we need.
Add new modules to the library, which mostly are independant to the existing modules. This is a new start of the library, as an attempt to provide a generalized API, which should be useable to build both clients and servers. It does not build on a existing web framework. Currently uses io-streams and tls.
Don't let new frames from the same stream get ahead existing frames.