Multipart Build Status On

Client- and server-side abstractions for HTTP file uploads (POST requests with Content-Type: multipart/form-data).

Supports several different HTTP crates.

Minimum supported Rust version: 1.17.0



Example files demonstrating how to use multipart with these crates are available under examples/.


via the hyper feature (enabled by default).

Client integration includes support for regular hyper::client::Request objects via multipart::client::Multipart, as well as integration with the new hyper::Client API via multipart::client::lazy::Multipart (new in 0.5).

Server integration for hyper::server::Request via multipart::server::Multipart.


via the iron feature.

Provides regular server-side integration with iron::Request via multipart::server::Multipart, as well as a convenient BeforeMiddleware implementation in multipart::server::iron::Intercept.


via the tiny_http feature.

Provides server-side integration with tiny_http::Request via multipart::server::Multipart.


Note: Moved to multipart-nickel crate, see nickel/examples/ for updated integration example.

Provides server-side integration with &mut nickel::Request via multipart::server::Multipart.


Licensed under either of

at your option.


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.