Skip to content

Docs should have a compression section #291

Description

@ashtum

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions