Skip to content

Streaming in wasm doesn’t work #567

Open
@irevoire

Description

@irevoire

Currently, when streaming documents in wasm, we actually collect everything in RAM before sending it:

// TODO: Currently reqwest doesn't support streaming data in wasm so we need to collect everything in RAM
#[cfg(not(target_arch = "wasm32"))]
{
let stream = ReaderStream::new(body);
let body = reqwest::Body::wrap_stream(stream);
request = request
.header(header::CONTENT_TYPE, content_type)
.body(body);
}
#[cfg(target_arch = "wasm32")]
{
use futures::{pin_mut, AsyncReadExt};
let mut buf = Vec::new();
pin_mut!(body);
body.read_to_end(&mut buf)
.await
.map_err(|err| Error::Other(Box::new(err)))?;
request = request.header(header::CONTENT_TYPE, content_type).body(buf);
}

This is because reqwest doesn’t provide the wrap_stream method, see: seanmonstar/reqwest#2248

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions