Skip to content

feat(rust): support streaming request bodies - #514

Merged
barjin merged 6 commits into
masterfrom
feat/rust-streaming-bodies
Aug 18, 2026
Merged

feat(rust): support streaming request bodies#514
barjin merged 6 commits into
masterfrom
feat/rust-streaming-bodies

Conversation

@barjin

@barjin barjin commented Aug 13, 2026

Copy link
Copy Markdown
Member

Adds ImpitBody, letting the core crate stream request bodies into reqwest instead of always buffering them; bindings support comes in follow-ups.

Related: #513

@github-actions github-actions Bot added this to the 147th sprint - Tooling team milestone Aug 13, 2026
@github-actions github-actions Bot added the t-tooling Issues with this label are in the ownership of the tooling team. label Aug 13, 2026
@barjin
barjin force-pushed the feat/rust-streaming-bodies branch 2 times, most recently from 182917b to bde3263 Compare August 17, 2026 07:49
@barjin
barjin requested a review from Pijukatel August 17, 2026 07:51
barjin added 6 commits August 18, 2026 10:59
Request bodies are now passed as `ImpitBody`, which can either buffer the
bytes in memory as before, or stream them into the request as they are
produced (`ImpitBody::from_stream`). Streamed bodies aren't replayable, so
the vanilla client fallback is skipped for them.

Related: #513
Buffered bodies are cloned on every attempt so that they stay replayable;
with `Bytes` that clone is a refcount bump instead of a full copy.
@barjin
barjin force-pushed the feat/rust-streaming-bodies branch from 287cc33 to ca1cd3e Compare August 18, 2026 08:59
@barjin
barjin merged commit 5e5bb39 into master Aug 18, 2026
52 checks passed
barjin added a commit that referenced this pull request Aug 19, 2026
Lets `content=` take a sync or async iterable of byte chunks and streams
it into the request instead of buffering it; stacked on #514.

Related: #513
barjin added a commit that referenced this pull request Aug 24, 2026
Streamed bodies (`ReadableStream`, Node streams, async iterables) are
now passed to the native layer as a pull callback, so they reach the
connection as they are produced instead of being buffered up front.

Stacked on #514. Related: #513
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants