Add streaming backpressure
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.7k
- Forks
- 206
- PR merge metrics
- No merged PRs in 30d
Description
Some more context when this is relevant.
flowchart LR
httpx-->|slow network| server
subgraph one[Host 1]
client-->|localhost\nconnection| quart
subgraph quart[Quart app]
httpx[httpx async\nclient]
end
end
subgraph two[Host 2]
server
end
In this configuration, the Quart app acts as a proxy. As the httpx client is slowly consuming data because of the network speed, Quart buffers incoming data which is being uploaded at a very high speed because of a localhost connection. For huge payloads, this results in either memory allocation errors, or the out-of-memory killer killing the app.
^ From @andrewsh
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
The issue names no files or tests. Start by tracing Quart's proxy handling for an async stream and reproduce the slow-consumer, fast-upload scenario; done means large proxied payloads apply backpressure without unbounded buffering or out-of-memory termination.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100