The compression section should explain:
- How to use the serializer/parser with compression algorithm support.
- How widely these algorithms are used in real-world applications.
- What types of content are typically compressed in server applications.
- The memory and processing resource efficiency of each algorithm.
Tables like the following could provide a useful at-a-glance overview of compression support across common clients and servers:
+---------------------+------+--------+------+
| CLIENTS | gzip | brotli | zstd |
+---------------------+------+--------+------+
| Chrome / Edge | Y | Y | Y |
| Firefox | Y | Y | Y |
| Safari | Y | Y | Y |
| curl / libcurl | Y | Y | Y |
| reqwest (Rust) | Y | Y | Y |
| requests / urllib3 | Y | Y | Y |
| httpx | Y | Y | Y |
| aiohttp | Y | Y | Y |
| Node fetch / undici | Y | Y | Y |
| OkHttp | Y | Y | Y |
| java.net.http (JDK) | N | N | N |
| HttpClient (.NET) | Y | Y | N |
| Go net/http | Y | N | N |
| cpp-httplib | Y | Y | Y |
| Boost.Beast | N | N | N |
+---------------------+------+--------+------+
| SERVERS | gzip | brotli | zstd |
+---------------------+------+--------+------+
| nginx | Y | 3p | 3p |
| Apache httpd | Y | Y | 3p |
| Caddy | Y | 3p | Y |
| Envoy | Y | Y | Y |
| Traefik v3 | Y | Y | Y |
| HAProxy | Y | N | N |
| Jetty 12.1+ | Y | Y | Y |
| IIS | Y | Y | N |
+---------------------+------+--------+------+
Y = supported (built-in or first-party optional/feature/module)
3p = third-party module/plugin only
N = not supported
The compression section should explain:
Tables like the following could provide a useful at-a-glance overview of compression support across common clients and servers: