1个不稳定版本
使用旧的Rust 2015
新版本 0.18.0 | 2024年8月21日 |
---|
1466 在 HTTP服务器
108 每月下载量
175KB
3.5K SLoC
Multipart
HTTP文件上传(POST请求,Content-Type: multipart/form-data
)的客户端和服务器端抽象。
支持几个不同的(同步API)HTTP库。将提供基于futures
的异步(即futures
基于的)API支持,由multipart-async提供。
最低支持的Rust版本:1.36.0
维护状态:被动
随着Rust的Web生态系统转向异步API,这个库在同步API形式下的需求变得可疑。这个库在其当前形式下足够可用,因此从2020年6月开始,它现在处于被动维护模式;将在有时间的情况下处理错误报告,并接受PR,但不会对现有API进行新的开发。
不久将推出multipart-async的新版本,该版本针对Hyper的新版本。
文档
集成
在examples/
下提供了使用multipart
与这些库的示例文件。
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::Multipart
与 iron::Request
的常规服务器集成,同时在 multipart::server::iron::Intercept
中提供了一个方便的 BeforeMiddleware
实现。
Nickel 在 0.14 版本中返回到 multipart
通过 nickel
功能。
通过 multipart::server::Multipart
实现与 &mut nickel::Request
的服务器集成。
tiny_http
通过 tiny_http
功能。
通过 multipart::server::Multipart
实现与 tiny_http::Request
的服务器集成。
Rocket
由于 Rocket 团队似乎希望在幕后处理 multipart/form-data
,因此没有提供直接集成。然而,有一个示例展示了如何在 Rocket 服务器上使用 multipart
:examples/rocket.rs
⚡ 由 ⚡ 提供动力
buf_redux
可定制的 std::io::BufReader
替代品,用于在此软件包中创建。需要它是因为它可以读取更多字节到缓冲区,而不会使缓冲区为空,这在边界跨越两次读取时是必要的。(编写新的软件包比试图将其添加到 std::io::BufReader
更容易。)
httparse
快速、零拷贝的HTTP头解析,用于读取multipart/form-data
请求体中的字段头。
twoway
快速字符串和字节字符串搜索。用于在请求体中查找边界。在可能的情况下使用SIMD加速。
许可证
根据以下之一获得许可
- Apache License,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何您有意提交并包含在作品中的贡献,如Apache-2.0许可证中定义,均应双重许可,上述许可,无任何附加条款或条件。
依赖关系
~9-20MB
~323K SLoC