diff options
Diffstat (limited to 'docs/en/cowboy/2.14/guide/migrating_from_2.13.asciidoc')
-rw-r--r-- | docs/en/cowboy/2.14/guide/migrating_from_2.13.asciidoc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/en/cowboy/2.14/guide/migrating_from_2.13.asciidoc b/docs/en/cowboy/2.14/guide/migrating_from_2.13.asciidoc new file mode 100644 index 00000000..8333eb9b --- /dev/null +++ b/docs/en/cowboy/2.14/guide/migrating_from_2.13.asciidoc @@ -0,0 +1,63 @@ +[appendix] +== Migrating from Cowboy 2.13 to 2.14 + +Cowboy 2.14 adds experimental support for HTTP/3 +WebTransport based on the most recent draft. It +also has a new data delivery mechanism for HTTP/2 +and HTTP/3 Websocket, providing better performance. + +Cowboy 2.14 requires Erlang/OTP 24.0 or greater. + +=== Features added + +* The `relay` data delivery mechanism has been + added to HTTP/2 and HTTP/3 protocols. Using + this mechanism lets the Websocket protocol + bypass stream handlers to forward data from + the connection process to the Websocket + session process, as well as better manage + HTTP/2's flow control. This results in a + noticeable performance improvement. This + new mechanism can be used by all sub-protocols + built on top of HTTP/2 or HTTP/3 such as + Websocket or the upcoming HTTP/2 WebTransport. + +* The `last_modified` callback of REST handlers + now accepts `undefined` as a return value to + allow conditionally providing a timestamp. + +=== Experimental features added + +* Experimental support for HTTP/3 WebTransport + has been added, based on the most recent RFC + drafts. The implementation should also be + compatible with earlier drafts that are + currently in use by some browsers. Both + HTTP/3 and HTTP/3 WebTransport are disabled + by default; to enable, the environment + variable COWBOY_QUICER must be set at + compile-time, and a number of options must + be provided at run time, including + `enable_connect_protocol`, `h3_datagram`, + `wt_max_sessions` and for earlier drafts + `enable_webtransport`. The test suite is + the best place to get started at this time. + +=== Optimisation-related changes + +* The `dynamic_buffer` option introduced in + the previous release has been tweaked to + start at 512 bytes and have its value + changed less abruptly. This is based on + additional work done implementing the same + feature in RabbitMQ. + +* The static file handler will now use `raw` + mode to read file information to avoid a + bottleneck when querying the file server. + +=== Bugs fixed + +* It was possible for Websocket to fail to + enable active mode again after it had been + disabled. This has been fixed. |