Skip to content

Commit e713a63

Browse files
committed
Cowboy 2.14.0
1 parent b7b5dc9 commit e713a63

File tree

7 files changed

+75
-10
lines changed

7 files changed

+75
-10
lines changed

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
PROJECT = cowboy
44
PROJECT_DESCRIPTION = Small, fast, modern HTTP server.
5-
PROJECT_VERSION = 2.13.0
5+
PROJECT_VERSION = 2.14.0
66
PROJECT_REGISTERED = cowboy_clock
77

88
# Options.
@@ -16,7 +16,7 @@ CT_OPTS += -ct_hooks cowboy_ct_hook [] # -boot start_sasl
1616
LOCAL_DEPS = crypto
1717

1818
DEPS = cowlib ranch
19-
dep_cowlib = git https://github.com/ninenines/cowlib master
19+
dep_cowlib = git https://github.com/ninenines/cowlib 2.16.0
2020
dep_ranch = git https://github.com/ninenines/ranch 1.8.1
2121

2222
ifeq ($(COWBOY_QUICER),1)
@@ -44,16 +44,16 @@ define HEX_TARBALL_EXTRA_METADATA
4444
#{
4545
licenses => [<<"ISC">>],
4646
links => #{
47-
<<"User guide">> => <<"https://ninenines.eu/docs/en/cowboy/2.13/guide/">>,
48-
<<"Function reference">> => <<"https://ninenines.eu/docs/en/cowboy/2.13/manual/">>,
47+
<<"User guide">> => <<"https://ninenines.eu/docs/en/cowboy/2.14/guide/">>,
48+
<<"Function reference">> => <<"https://ninenines.eu/docs/en/cowboy/2.14/manual/">>,
4949
<<"GitHub">> => <<"https://github.com/ninenines/cowboy">>,
5050
<<"Sponsor">> => <<"https://github.com/sponsors/essen">>
5151
}
5252
}
5353
endef
5454

5555
hex_req_ranch = >= 1.8.0 and < 3.0.0
56-
hex_req_cowlib = >= 2.14.0 and < 3.0.0
56+
hex_req_cowlib = >= 2.16.0 and < 3.0.0
5757

5858
# Standard targets.
5959

README.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ Cowboy is *clean* and *well tested* Erlang code.
1818

1919
== Online documentation
2020

21-
* https://ninenines.eu/docs/en/cowboy/2.13/guide[User guide]
22-
* https://ninenines.eu/docs/en/cowboy/2.13/manual[Function reference]
21+
* https://ninenines.eu/docs/en/cowboy/2.14/guide[User guide]
22+
* https://ninenines.eu/docs/en/cowboy/2.14/manual[Function reference]
2323

2424
== Offline documentation
2525

doc/src/guide/book.asciidoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ include::performance.asciidoc[Performance]
7575

7676
= Additional information
7777

78+
include::migrating_from_2.13.asciidoc[Migrating from Cowboy 2.13 to 2.14]
79+
7880
include::migrating_from_2.12.asciidoc[Migrating from Cowboy 2.12 to 2.13]
7981

8082
include::migrating_from_2.11.asciidoc[Migrating from Cowboy 2.11 to 2.12]

doc/src/guide/getting_started.asciidoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ fetch and compile Cowboy, and that we will use releases:
6969
PROJECT = hello_erlang
7070
7171
DEPS = cowboy
72-
dep_cowboy_commit = 2.13.0
72+
dep_cowboy_commit = 2.14.0
7373
7474
REL_DEPS = relx
7575
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
[appendix]
2+
== Migrating from Cowboy 2.13 to 2.14
3+
4+
Cowboy 2.14 adds experimental support for HTTP/3
5+
WebTransport based on the most recent draft. It
6+
also has a new data delivery mechanism for HTTP/2
7+
and HTTP/3 Websocket, providing better performance.
8+
9+
Cowboy 2.14 requires Erlang/OTP 24.0 or greater.
10+
11+
=== Features added
12+
13+
* The `relay` data delivery mechanism has been
14+
added to HTTP/2 and HTTP/3 protocols. Using
15+
this mechanism lets the Websocket protocol
16+
bypass stream handlers to forward data from
17+
the connection process to the Websocket
18+
session process, as well as better manage
19+
HTTP/2's flow control. This results in a
20+
noticeable performance improvement. This
21+
new mechanism can be used by all sub-protocols
22+
built on top of HTTP/2 or HTTP/3 such as
23+
Websocket or the upcoming HTTP/2 WebTransport.
24+
25+
* The `last_modified` callback of REST handlers
26+
now accepts `undefined` as a return value to
27+
allow conditionally providing a timestamp.
28+
29+
=== Experimental features added
30+
31+
* Experimental support for HTTP/3 WebTransport
32+
has been added, based on the most recent RFC
33+
drafts. The implementation should also be
34+
compatible with earlier drafts that are
35+
currently in use by some browsers. Both
36+
HTTP/3 and HTTP/3 WebTransport are disabled
37+
by default; to enable, the environment
38+
variable COWBOY_QUICER must be set at
39+
compile-time, and a number of options must
40+
be provided at run time, including
41+
`enable_connect_protocol`, `h3_datagram`,
42+
`wt_max_sessions` and for earlier drafts
43+
`enable_webtransport`. The test suite is
44+
the best place to get started at this time.
45+
46+
=== Optimisation-related changes
47+
48+
* The `dynamic_buffer` option introduced in
49+
the previous release has been tweaked to
50+
start at 512 bytes and have its value
51+
changed less abruptly. This is based on
52+
additional work done implementing the same
53+
feature in RabbitMQ.
54+
55+
* The static file handler will now use `raw`
56+
mode to read file information to avoid a
57+
bottleneck when querying the file server.
58+
59+
=== Bugs fixed
60+
61+
* It was possible for Websocket to fail to
62+
enable active mode again after it had been
63+
disabled. This has been fixed.

ebin/cowboy.app

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{application, 'cowboy', [
22
{description, "Small, fast, modern HTTP server."},
3-
{vsn, "2.13.0"},
3+
{vsn, "2.14.0"},
44
{modules, ['cowboy','cowboy_app','cowboy_bstr','cowboy_children','cowboy_clear','cowboy_clock','cowboy_compress_h','cowboy_constraints','cowboy_decompress_h','cowboy_handler','cowboy_http','cowboy_http2','cowboy_http3','cowboy_loop','cowboy_metrics_h','cowboy_middleware','cowboy_quicer','cowboy_req','cowboy_rest','cowboy_router','cowboy_static','cowboy_stream','cowboy_stream_h','cowboy_sub_protocol','cowboy_sup','cowboy_tls','cowboy_tracer_h','cowboy_websocket','cowboy_webtransport']},
55
{registered, [cowboy_sup,cowboy_clock]},
66
{applications, [kernel,stdlib,crypto,cowlib,ranch]},

rebar.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{deps, [
2-
{cowlib,".*",{git,"https://github.com/ninenines/cowlib",{branch,"master"}}},{ranch,".*",{git,"https://github.com/ninenines/ranch",{tag,"1.8.1"}}}
2+
{cowlib,".*",{git,"https://github.com/ninenines/cowlib",{tag,"2.16.0"}}},{ranch,".*",{git,"https://github.com/ninenines/ranch",{tag,"1.8.1"}}}
33
]}.
44
{erl_opts, [debug_info,warn_export_vars,warn_shadow_vars,warn_obsolete_guard,warn_missing_spec,warn_untyped_record]}.

0 commit comments

Comments
 (0)