All Projects → abonander → Multipart

abonander / Multipart

Licence: other
A backend-agnostic extension for file uploads in HTTP libraries for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Multipart

Bracket Lib
The Roguelike Toolkit (RLTK), implemented for Rust.
Stars: ✭ 631 (+307.1%)
Mutual labels:  crates
Half Rs
Half-precision floating point types f16 and bf16 for Rust.
Stars: ✭ 68 (-56.13%)
Mutual labels:  crates
Anterofit
Strongly typed, asynchronous REST client framework for Rust.
Stars: ✭ 125 (-19.35%)
Mutual labels:  crates
Ritual
Use C++ libraries from Rust
Stars: ✭ 792 (+410.97%)
Mutual labels:  crates
Syntect
Rust library for syntax highlighting using Sublime Text syntax definitions.
Stars: ✭ 972 (+527.1%)
Mutual labels:  crates
Crates Io Cli
Interact with crates.io from the command-line
Stars: ✭ 82 (-47.1%)
Mutual labels:  crates
Rust Search Extension
🦀 The ultimate search extension for Rust
Stars: ✭ 540 (+248.39%)
Mutual labels:  crates
Pleco
A Rust-based re-write of the Stockfish Chess Engine
Stars: ✭ 137 (-11.61%)
Mutual labels:  crates
Rust Skiplist
Skiplist implementation in rust
Stars: ✭ 38 (-75.48%)
Mutual labels:  crates
Bnf
Parse BNF grammar definitions
Stars: ✭ 124 (-20%)
Mutual labels:  crates
Tantivy Jieba
An adapter that bridges between tantivy and jieba-rs.
Stars: ✭ 17 (-89.03%)
Mutual labels:  crates
Rust Multibase
Multibase in rust
Stars: ✭ 30 (-80.65%)
Mutual labels:  crates
Inflector
A rust inflection library
Stars: ✭ 88 (-43.23%)
Mutual labels:  crates
Colored
(Rust) Coloring terminal so simple you already know how to do it !
Stars: ✭ 715 (+361.29%)
Mutual labels:  crates
Coap Rs
A Constrained Application Protocol(CoAP) library implemented in Rust.
Stars: ✭ 128 (-17.42%)
Mutual labels:  crates
Prettytable Rs
A rust library to print aligned and formatted tables
Stars: ✭ 552 (+256.13%)
Mutual labels:  crates
Accord
Data validation library for Rust
Stars: ✭ 72 (-53.55%)
Mutual labels:  crates
Ktra
Your Little Cargo Registry
Stars: ✭ 147 (-5.16%)
Mutual labels:  crates
Cedar
Rust framework for building visual/interactive applications
Stars: ✭ 136 (-12.26%)
Mutual labels:  crates
Bvh
A fast BVH using SAH in rust
Stars: ✭ 108 (-30.32%)
Mutual labels:  crates

Multipart Build Status On Crates.io

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.33.0
Maintenance Status: Passive

As the web ecosystem in Rust moves towards asynchronous APIs, the need for this crate in synchronous API form becomes dubious. This crate in its current form is usable enough, so as of June 2020 it is now in passive maintenance mode; bug reports will be addressed as time permits and PRs will be accepted but otherwise no new development of the existing API is taking place.

Look for a release of multipart-async soon which targets newer releases of Hyper.

Documentation

Integrations

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

Hyper

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.

Iron

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.

Nickel returning to multipart in 0.14!

via the nickel feature.

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

tiny_http

via the tiny_http feature.

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

Rocket

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

⚡ Powered By ⚡

buf_redux

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.)

httparse

Fast, zero-copy HTTP header parsing, used to read field headers in multipart/form-data request bodies.

twoway

Fast string and byte-string search. Used to find boundaries in the request body. Uses SIMD acceleration when possible.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].