hyperium / hyperium/hyper

Making `preserve_header_order` option official

Open
#3,914 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-feature S-waiting-on-author
Dominant language
Rust
Stars
16.3k
Forks
1.8k
Avg merge
1d 22h
Merged PRs (30d)
14

Description

Is your feature request related to a problem? Please describe.

Our use case of Hyper is using it as a proxy server. One of the difference from proxy test we found is the order of the headers in the response. The order of the headers may be different in some cases, and we are seeing diff when comparing w/ and w/o Hyper in front of the existing server.

Describe the solution you'd like

Making preserve_header_order to official as it is now ffi.

https://github.com/hyperium/hyper/blob/master/src/client/conn/http1.rs#L473-L476

Describe alternatives you've considered

Use preserve_header_order with ffi enabled.

However, I'd like to understand if there is any blocking issue to make the feature to official.

If there is any, I can also help.

Additional context
Add any other context or screenshots about the feature request here.

Contributor guide

Open the contributing guide

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.

Research direction

Start in src/client/conn/http1.rs around lines 473-476 and trace how preserve_header_order is currently gated behind ffi. Determine the blockers to making it official, then verify that the option is available without ffi and preserves response header order for the proxy use case.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.