HTTP client: Support compression (Content-Encoding: gzip)

Open
#377 4 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
php
Domain
api, backend

Research direction

Start by tracing the HTTP client’s buffered response handling and the withResponseBuffer() path, then compare the streaming approach with clue/reactphp-zlib. Done means opt-in gzip negotiation and decompression work for buffered responses while respecting withResponseBuffer(), with streaming support addressed as specified.

Written by the indexing model from the issue text.

Description

help wanted new feature

This library should support requesting compressed responses and automatically decompress using the Accept-Encoding request header and Content-Encoding response header.

This should be an opt-in feature.

Implementing this for buffered requests shouldn't be too hard. This should make sure to also respect the withResponseBuffer() setting.

Implementing this for streaming requests is doable, see also https://github.com/clue/reactphp-zlib.

We welcome contributions, reach out if you want to support this project 👍

Dominant language
PHP
Stars
781
Forks
166
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from reactphp/http

All issues in reactphp/http

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.