View Source PhoenixBakery (phoenix_bakery v0.1.2)

Better compression for your Phoenix assets.

This is set of modules that implement Phoenix.Digester.Compressor behaviour which can be used together with Phoenix 1.6 or later for better compression of the static assets served by Plug.Static.

installation

Installation

First thing to do is to add PhoenixBakery as a dependency.

def deps do
  [
    {:phoenix_bakery, "~> 0.1.0", runtime: false}
  ]
end

And configure your Plug.Static:

plug Plug.Static,
  encodings: [{"zstd", ".zstd"}],
  gzip: true,
  brotli: true,
  # Rest of the options…

WARNING

Plug 1.12 do not support :encodings option and this option is ignored. So Zstandard-compressed files will not be served to the clients, even if client will have support for such format.

Then you need to configure your compressors via Phoenix configuration:

config :phoenix,
  static_compressors: [
    # Pick all that you want to use
    PhoenixBakery.Gzip,
    PhoenixBakery.Brotli,
    PhoenixBakery.Zstd
  ]