1 unstable release
0.1.0 | Jun 27, 2021 |
---|
#712 in HTTP server
2,278 downloads per month
Used in warp-fix-171
42KB
884 lines
multiparty
Simple zero copy* streaming multipart decoder implementation.
Also exposes the underlying Sans IO decoder, for use outside of
the futures
0.3 ecosystem.
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");
}
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.
* Except for streams yielding Bytes
smaller than half the boundary length.
Dependencies
~135–290KB