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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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