Skip to content

[INFORMATION]Brotli Support #454

@luc-github

Description

@luc-github

Brotli-compressed WebUI packages are already generated and included as part of the build process:

Target Subtarget Gzip Path Gzip Size Brotli Path Brotli Size
CNC GRBL index.html.gz 91.2 KB index.html.br 75.6 KB
CNC GRBLHal index.html.gz 95.8 KB index.html.br 79.0 KB
Printer3D Marlin index.html.gz 97.1 KB index.html.br 80.2 KB
Printer3D Marlin-embedded index.html.gz 96.6 KB index.html.br 79.8 KB
Printer3D Repetier index.html.gz 96.0 KB index.html.br 79.3 KB
Printer3D Smoothieware index.html.gz 95.6 KB index.html.br 78.8 KB
SandTable GRBL index.html.gz 83.4 KB index.html.br 69.1 KB

The size reduction benefit is obvious.
However, these Brotli files are not yet used by any current server implementation.

They are included as preparation for future support, so everything will already be ready once Brotli becomes usable on supported platforms.

Currently, there is no Brotli support on the server side in:

  • ESP3D
  • ESP3DLib
  • ESP3D-TFT
  • ESP3D-HUB
  • or any known compatible server

Why is Brotli not usable yet?

Serving Brotli content typically requires HTTPS support, which needs about 50 KB of stack memory.
This generally requires PSRAM, which is not available on most supported boards.

As a result:

  • ESP8266 is definitely out of scope
  • ESP32 without PSRAM is also out of scope
  • Arduino ESP32 Core does not currently support an HTTPS server suitable for this use case
    • Switching to another web server would require a large amount of work
    • This could negatively impact system stability
    • Therefore, ESP3D itself is currently out of scope

Additionally:

  • ESP3D-TFT will be replaced by ESP3D-X (next-generation platform)

Summary

Brotli packages are already generated as a forward-looking preparation,
but this feature should not be considered active yet.

Please do not focus too much on Brotli support until HTTPS support is implemented in ESP3D-X.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions