Client- and server-side abstractions for HTTP file uploads (POST requests with Content-Type: multipart/form-data).
Supports several different (synchronous API) HTTP crates. Asynchronous (i.e. futures-based) API support will be provided by multipart-async.
Minimum supported Rust version: 1.22.1*
mock, client and server features, only guaranteed to compileFully tested Rust version: 1.26.1
Example files demonstrating how to use multipart with these crates are available under examples/.
via the hyper feature (enabled by default).
Note: Hyper 0.9, 0.10 (synchronous API) only; support for asynchronous APIs will be provided by multipart-async.
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.
multipart in 0.14!via the nickel feature.
Provides server-side integration with &mut nickel::Request via multipart::server::Multipart.
via the tiny_http feature.
Provides server-side integration with tiny_http::Request via multipart::server::Multipart.
Direct integration is not provided as the Rocket folks seem to want to handle multipart/form-data behind the scenes which would supercede any integration with multipart. However, an example is available showing how to use multipart on a Rocket server: examples/rocket.rs
Customizable drop-in std::io::BufReader replacement, created to be used in this crate. Needed because it can read more bytes into the buffer without the buffer being empty, necessary when a boundary falls across two reads. (It was easier to author a new crate than try to get this added to std::io::BufReader.)
Fast, zero-copy HTTP header parsing, used to read field headers in multipart/form-data request bodies.
Fast string and byte-string search. Used to find boundaries in the request body. SSE 4.2 acceleration available under the sse42 or twoway/pcmp features.
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.