awslabs / awslabs/aws-sdk-rust

Expose hyper 1.0 client builder behind not stable feature flag

Open
#1,334 4 comments 2 reactions 0 assignees View on GitHub
feature-request
Dominant language
Rust
Stars
3.3k
Forks
290
Avg merge
1d 12h
Merged PRs (30d)
3

Description

### Describe the feature

I'm trying to upgrade from the hyper 0.14 impl to hyper 1.x impl for the HTTP client. I use to customize things like HTTP client buffer sizes to constrain or expand memory usage in certain cases (favoring memory usage vs transfer speed depending on the case). I would like to control similar settings on the hyper 1.x implementation.

I see per https://github.com/awslabs/aws-sdk-rust/discussions/1261 that you don't want to expose the hyper_util stuff because it's unstable. Fair enough. However, can you possibly expose the ability to pass in a hyper builder behind some kind of unstable feature flag on the crate? Then users can opt-in and suffer the consequences of future breakages. This seems like a very small change with low risk to you which otherwise forces everyone to make a fully custom HTTP client which seems like overkill.

Thanks for considering.

### Use Case

Customize the HTTP client without having to fully fork it.

### Proposed Solution

_No response_

### Other Information

_No response_

### Acknowledgements

- [ ] I may be able to implement this feature request
- [ ] This feature might incur a breaking change

### A note for the community

### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue, please leave a comment

Contributor guide

Open the contributing guide

Research direction

Start by tracing where the Rust SDK constructs its hyper 1.x HTTP client and how crate feature flags are defined. Determine the supported boundary for exposing a hyper builder without making unstable hyper_util APIs part of the stable interface. Done means users can customize the builder behind an explicitly unstable feature flag, with relevant tests passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.