aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/guide
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/guide')
-rw-r--r--doc/src/guide/book.asciidoc2
-rw-r--r--doc/src/guide/getting_started.asciidoc2
-rw-r--r--doc/src/guide/migrating_from_2.13.asciidoc63
3 files changed, 66 insertions, 1 deletions
diff --git a/doc/src/guide/book.asciidoc b/doc/src/guide/book.asciidoc
index 58eda34..2679f99 100644
--- a/doc/src/guide/book.asciidoc
+++ b/doc/src/guide/book.asciidoc
@@ -75,6 +75,8 @@ include::performance.asciidoc[Performance]
= Additional information
+include::migrating_from_2.13.asciidoc[Migrating from Cowboy 2.13 to 2.14]
+
include::migrating_from_2.12.asciidoc[Migrating from Cowboy 2.12 to 2.13]
include::migrating_from_2.11.asciidoc[Migrating from Cowboy 2.11 to 2.12]
diff --git a/doc/src/guide/getting_started.asciidoc b/doc/src/guide/getting_started.asciidoc
index 06677ee..749b1d1 100644
--- a/doc/src/guide/getting_started.asciidoc
+++ b/doc/src/guide/getting_started.asciidoc
@@ -69,7 +69,7 @@ fetch and compile Cowboy, and that we will use releases:
PROJECT = hello_erlang
DEPS = cowboy
-dep_cowboy_commit = 2.13.0
+dep_cowboy_commit = 2.14.0
REL_DEPS = relx
diff --git a/doc/src/guide/migrating_from_2.13.asciidoc b/doc/src/guide/migrating_from_2.13.asciidoc
new file mode 100644
index 0000000..8333eb9
--- /dev/null
+++ b/doc/src/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.