Roda 3.82.0 Released #361
jeremyevans
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Roda 3.82.0 has been released!
New Features
A :zstd option has been added to the public and multi_public
plugins to support serving zstd-compressed files with a .zst
extension. This option is similar to the existing :gzip and
:brotli plugin options. Chrome started supporting zstd encoding
in March.
An :encodings option has been added to the public and multi_public
plugins, for more control over how encodings are handled. This
allows for changing the order in which encodings are attempted, the
use of custom encodings, and the use of different file extensions
for encodings. Example:
If the :encodings option is not provided, the :zstd, :brotli, and
:gzip options are used to build an equivalent :encodings option.
Other Improvements
The capture_erb plugin now integrates better when using
erubi/capture_block for
<%= method do %>
support in ERB templates,using the native capture method provided by the buffer object.
Encoding handling has been more optimized in the public plugin.
Regexps for the encodings are precomputed, avoiding a regexp
allocation per request per encoding attempted. On Ruby 2.4+
Regexp#match? is used for better performance. If the
Accept-Encoding header is not present, no encoding matching
is attemped.
Backwards Compatibility
The private public_serve_compressed request method in the public
plugin now assumes it is called after the encoding is already
valid. If you are calling this method in your own code, you now
need to perform checks to make sure the client can accept the
encoding before calling this method.
The :public_gzip and :public_brotli application options are no
longer set by the public plugin. The :public_encodings option
is now set.
Thanks,
Jeremy
Beta Was this translation helpful? Give feedback.
All reactions