Expand description
§multiparty
Simple zero copy* streaming multipart decoder implementation.
* Except for streams yielding Bytes
smaller than half the boundary length.
§Examples
multiparty = { version = "0.1", features = ["server", "futures03"] }
use multiparty::server::owned_futures03::FormData;
use futures_util::stream::TryStreamExt;
let boundary = todo!("A multipart/form-data boundary");
let stream = todo!("A Stream<Item = std::io::Result<Bytes>> + Unpin");
let mut multipart = FormData::new(stream, boundary);
while let Some(mut part) = multipart.try_next().await? {
let headers = part.raw_headers().parse()?;
println!("name: {:?}", headers.name);
println!("filename: {:?}", headers.filename);
println!("content_type: {:?}", headers.content_type);
while let Some(bytes) = part.try_next().await? {
println!("Read {} bytes from the current part", bytes.len());
}
println!("Reached the end of this part");
}