- Improved multipart/form-data performance in Mojo::Message.
- Improved Mojo::Server::Daemon performance by up to 27% for keep-alive requests, by finishing static responses
without an extra write cycle and caching socket addresses per connection.
- Improved header parsing performance in Mojo::Headers by up to 2x.
- Improved route matching performance in Mojolicious::Routes by up to 8x for real world applications, routes are now
indexed by the text their patterns start with, so the cost no longer grows with the number of routes.
- Improved encode and decode performance in Mojo::Util by up to 3x for ASCII strings, which speeds up parameter
parsing by up to 35%.
- Improved url_for performance in Mojolicious::Controller by up to 15%.
- Improved xor_encode performance in Mojo::Util by up to 3x, which speeds up WebSocket frame masking.
- Fixed a bug in Mojo::Util where gzip did not accept Mojo::ByteStream objects, causing compressed responses
rendered from them to fail.
- Fixed a bug in Mojo::Log where messages from nested contexts were not written to the log file.
- Fixed a bug in Mojo::Util where html_unescape did not replace numeric character references to NUL, surrogates and
code points beyond Unicode with U+FFFD, and did not remap the C1 control range through windows-1252, as required
by the WHATWG HTML standard.
- Fixed a bug in Mojo::Server::Daemon where destroying the server while a response was being written could cause
an exception.