hyper-multipart-rfc7578-mem-uploads

Crates.iohyper-multipart-rfc7578-mem-uploads
lib.rshyper-multipart-rfc7578-mem-uploads
version0.1.0-alpha3
sourcesrc
created_at2018-03-19 00:58:59.582208
updated_at2018-03-19 02:57:15.026346
descriptionAn implementation of multipart/form-data (RFC7578) for Hyper (forked with in-memory uploads)
homepage
repositoryhttps://github.com/ferristseng/rust-hyper-multipart-rfc7578
max_upload_size
id56340
size43,338
asonix (asonix)

documentation

README

Rust Hyper Multipart (RFC 7578)

Travis Crates.io Docs.rs

This crate contains an implementation of the multipart/form-data media type described in RFC 7578 for hyper.

Currently, only the client-side is implemented.

Usage

[dependencies]
hyper-multipart-rfc7578 = "0.1.0-alpha2"

Because the name of this library is really wordy, I recommend shortening it:

extern hyper_multipart_rfc7578 as hyper_multipart;

Using this requires a hyper client compatible with the multipart::Body data structure (see the documentation for more detailed examples):

use hyper::{Method, Request};
use hyper::client::Client;
use hyper_multipart_rfc7578::client::{self, multipart};
use tokio_core::reactor::{Core, Handle};


let mut core = Core::new().unwrap();
let client: Client<_, multipart::Body> = client::create(&core.handle());
let mut req = Request::new(Method::Get, "http://localhost/upload".parse().unwrap());
let mut form = multipart::Form::default();

form.add_text("test", "Hello World");
form.set_body(&mut req);

core.run(client.request(req));

Note on Server Implementation

I don't have any plans on implementing the server-side of this any time soon. I ended up implementing the client-side because I couldn't find any good libraries that were compatible with hyper >= 0.11.

Please feel free to submit a pull request, I would gladly review it!

Alternatives

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 160

cargo fmt