#http #hyper #iron #upload #hyper-client #http-post #form-data

未维护 bin+lib multipart

为HTTP库提供支持,在客户端和服务器端均支持POST multipart/form-data请求的不可知后端扩展

53个版本

使用旧Rust 2015

0.18.0 2021年5月29日
0.17.1 2021年1月9日
0.17.0 2020年6月9日
0.16.1 2019年1月28日
0.1.0 2014年11月29日

#1379 in HTTP服务器

Download history 83299/week @ 2024-03-14 76592/week @ 2024-03-21 63573/week @ 2024-03-28 62269/week @ 2024-04-04 61652/week @ 2024-04-11 66018/week @ 2024-04-18 62219/week @ 2024-04-25 60722/week @ 2024-05-02 62437/week @ 2024-05-09 58862/week @ 2024-05-16 57176/week @ 2024-05-23 64876/week @ 2024-05-30 64504/week @ 2024-06-06 64701/week @ 2024-06-13 74273/week @ 2024-06-20 64673/week @ 2024-06-27

280,125每月下载量
用于 227 个Crate (57 直接)

MIT/Apache

175KB
3.5K SLoC

Multipart 构建状态 在Crates.io上

HTTP文件上传的客户端和服务器端抽象(POST请求中的Content-Type: multipart/form-data)。

支持几个不同的(同步API)HTTP crate。异步(即基于futures的)API支持将由multipart-async提供。

最低支持的Rust版本:1.36.0
维护状态:被动

随着Rust的Web生态系统转向异步API,此crate在同步API形式中的需求变得可疑。此crate的当前形式足够可用,因此自2020年6月起,它现在处于被动维护模式;将根据时间允许处理错误报告,并接受PR,但现有API的现有开发将不再进行。

请期待multipart-async的发布,它针对Hyper的新版本。

文档

集成

示例文件演示了如何使用multipart与这些crate一起使用,可在examples/下找到。

Hyper

通过hyper功能(默认启用)。

注意:仅适用于Hyper 0.9、0.10(同步API);异步API的支持将由multipart-async提供。

客户端集成包括通过multipart::client::Multipart支持常规hyper::client::Request对象,以及通过multipart::client::lazy::Multipart(0.5中引入)与新的hyper::Client API集成。

通过multipart::server::Multipart进行hyper::server::Request的服务器集成。

Iron

通过iron功能。

提供通过multipart::server::Multipartiron::Request的常规服务器集成,以及在multipart::server::iron::Intercept中的方便BeforeMiddleware实现。

Nickel 在0.14返回到multipart

通过nickel功能。

通过multipart::server::Multipart&mut nickel::Request的服务器集成。

tiny_http

通过tiny_http功能。

通过multipart::server::Multiparttiny_http::Request的服务器集成。

Rocket

没有提供直接集成,因为Rocket团队似乎想要在幕后处理multipart/form-data,这将超越与multipart的任何集成。然而,有一个示例展示了如何在Rocket服务器上使用multipartexamples/rocket.rs

⚡ 由⚡提供动力

buf_redux

可定制的内置std::io::BufReader替换,创建用于此crate。需要它,因为它可以在缓冲区不为空的情况下读取更多字节,这在边界跨越两次读取时是必要的。(编写一个新的crate比尝试将其添加到std::io::BufReader要容易。)

httparse

快速、零拷贝的HTTP头部解析,用于读取multipart/form-data请求体的字段头部。

twoway

快速字符串和字节字符串搜索。用于在请求体中查找边界。当可能时使用SIMD加速。

许可证

根据您的选择,许可协议为以下之一

贡献

除非您明确说明,否则您提交的任何旨在包含在作品中的贡献,如Apache-2.0许可证中定义,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~10–22MB
~340K SLoC