Both sides previous revisionPrevious revisionNext revision | Previous revision |
rfc:modern_compression [2025/02/18 10:01] – add details dunglas | rfc:modern_compression [2025/02/18 10:08] (current) – typo dunglas |
---|
====== PHP RFC: Modern Compression ====== | ====== PHP RFC: Modern Compression ====== |
* Version: 0.9 | * Version: 1.0 |
* Date: 2025-02-18 | * Date: 2025-02-18 |
* Author: Jordi Boggiano (j.boggiano@seld.be), Kévin Dunglas (kevin@dunglas.fr) | * Author: Jordi Boggiano (j.boggiano@seld.be), Kévin Dunglas (kevin@dunglas.fr) |
* Status: Draft | * Status: Under Discussion |
* First Published at: http://wiki.php.net/rfc/modern_compression | * First Published at: http://wiki.php.net/rfc/modern_compression |
| |
* Assets pre-compression: Modern web servers such as [[https://caddyserver.com/docs/caddyfile/directives/file_server#precompressed|Caddy/FrankenPHP]] and NGINX (with modules) support serving pre-compressed static files instead of compressing them on the fly, saving CPU-time and decreasing latency. Tools such as Symfony AssetMapper [[https://symfony.com/doc/7.3/frontend/asset_mapper.html#pre-compressing-assets|are adding support for assets pre-compression]] and would benefit from not requiring external PECL extensions or system commands. | * Assets pre-compression: Modern web servers such as [[https://caddyserver.com/docs/caddyfile/directives/file_server#precompressed|Caddy/FrankenPHP]] and NGINX (with modules) support serving pre-compressed static files instead of compressing them on the fly, saving CPU-time and decreasing latency. Tools such as Symfony AssetMapper [[https://symfony.com/doc/7.3/frontend/asset_mapper.html#pre-compressing-assets|are adding support for assets pre-compression]] and would benefit from not requiring external PECL extensions or system commands. |
| |
Although Zstandard is in most cases more efficient than Brotli, Brotli [[https://caniuse.com/?search=zstandard|is not currently supported by Safari]] and - at the highest compression level - [[https://paulcalvano.com/2024-03-19-choosing-between-gzip-brotli-and-zstandard-compression/|produces smaller files]] than Zstandard. As browsers negotiate which format to use according to their capabilities, we propose adding support for both formats to PHP. | Although Zstandard is in most cases more efficient than Brotli, Zstandard [[https://caniuse.com/?search=zstandard|is not currently supported by Safari]] and - at the highest compression level - Brotli [[https://paulcalvano.com/2024-03-19-choosing-between-gzip-brotli-and-zstandard-compression/|produces smaller files]] than Zstandard. As browsers negotiate which format to use according to their capabilities, we propose adding support for both formats to PHP. |
| |
| |
===== Patches and Tests ===== | ===== Patches and Tests ===== |
| |
Inclusion in core will be done by Kevin Dunglas (unless someone else volunteers) once the RFC approved. | Inclusion in core will be done by Kévin Dunglas (unless someone else volunteers) once the RFC approved. |
| |
===== Implementation ===== | ===== Implementation ===== |