swift-server / swift-server/async-http-client
[HTTP2] Count down available streams in HTTP2Connections
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 1.1k
- Forks
- 156
- PR merge metrics
- No merged PRs in 30d
Description
Currently we don't make sure that we schedule a maximum of Int32.max/2 (= 1073741823) on a single HTTP2Connection. We should do so in the connection and regular communicate the remaining streams back to the HTTPConnectionPool.
To allow use cases like querying services behind AWS ALB we should also make the starting max number configurable for users. If a user knows they will use AWS ALB, they should be able to configure 10k max streams on the client.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the HTTP2Connections implementation and trace how it communicates available streams to the HTTPConnectionPool. Check how the initial maximum stream count is configured, then verify that stream scheduling is capped and that a user-configurable starting limit is propagated through the pool; add or run the relevant HTTP/2 connection and pool tests if present.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100