2012-02-27 09:54:16 +01:00
|
|
|
ROADMAP
|
|
|
|
=======
|
|
|
|
|
|
|
|
This document explains in as much details as possible the
|
|
|
|
list of planned changes and work to be done on the Cowboy
|
2013-05-24 14:59:30 +02:00
|
|
|
server. It is intended to be exhaustive but some elements
|
|
|
|
might still be missing.
|
2012-02-27 09:54:16 +01:00
|
|
|
|
2014-06-10 12:00:30 +02:00
|
|
|
2.0 (R17 and R18)
|
|
|
|
-----------------
|
2012-02-27 09:54:16 +01:00
|
|
|
|
2014-06-30 16:07:46 +02:00
|
|
|
The main features that will be added to Cowboy 2.0 are support
|
|
|
|
for HTTP/2.0 and Websocket permessage deflate compression.
|
2012-02-27 09:54:16 +01:00
|
|
|
|
2014-06-30 17:51:01 +02:00
|
|
|
A complete analysis of the httpbis set of specifications
|
|
|
|
will be performed and extensive tests will be written to
|
|
|
|
ensure maximum compatibility.
|
|
|
|
|
2014-06-30 16:07:46 +02:00
|
|
|
A number of backward incompatible changes are planned. These
|
|
|
|
changes are individually small, but together should result
|
|
|
|
in a large improvement in usability.
|
2012-02-27 09:54:16 +01:00
|
|
|
|
2014-06-30 16:07:46 +02:00
|
|
|
### Hooks
|
|
|
|
|
|
|
|
The interface of the `onresponse` hook will change. There has
|
|
|
|
been a number of issues and added complexity with the current
|
|
|
|
interface that warrant fixing. The main problem is that the
|
|
|
|
hook may be used to change the reply, by calling the reply
|
|
|
|
function again, forcing us to be careful not to reprocess
|
|
|
|
everything again.
|
|
|
|
|
|
|
|
To fix that, we will cut the reply mechanism in two steps,
|
|
|
|
one that is basically some preprocessing of the response
|
|
|
|
header to follow the protocol requirements, and then the
|
|
|
|
actual response. The `onresponse` hook will fit in the
|
|
|
|
middle, being called from the first step and calling the
|
|
|
|
second step itself.
|
|
|
|
|
|
|
|
If a body streaming function is provided, the hook will
|
|
|
|
also receive it (unlike today). It will not be able to
|
|
|
|
inspect its contents however.
|
|
|
|
|
|
|
|
This should greatly simplify the code and allow users to
|
|
|
|
do any operation they wish.
|
|
|
|
|
|
|
|
### Low-level interface documented
|
|
|
|
|
|
|
|
A special chapter of the manual will document a low-level
|
|
|
|
interface that may be used in middlewares or hooks (but
|
|
|
|
nowhere else). This includes the Req access and update
|
|
|
|
functions and the new response function described above.
|
|
|
|
|
|
|
|
### REST
|
|
|
|
|
|
|
|
The documentation for all REST callbacks will be updated
|
|
|
|
to describe whether they can have side effects. This will
|
|
|
|
allows us to build introspection tools on top of a working
|
|
|
|
REST API.
|
2013-11-14 15:34:16 +01:00
|
|
|
|
2014-07-07 14:14:36 +02:00
|
|
|
Range support will be added.
|
|
|
|
|
2013-11-14 15:34:16 +01:00
|
|
|
Under consideration
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
* Convenience API for extracting query string and body
|
|
|
|
information, similar to PHP's $_GET, $_POST and $_FILES
|