#nickel #multipart-form #bodies #http #returning #http-file #file-upload

已弃用 multipart-nickel

已弃用:Nickel支持将返回到0.14中的multipart本身。通过multipartcrate支持Nickel中的multipart/form-data体。

4 个版本 (2 个重大更改)

使用旧的 Rust 2015

0.3.1 2017年12月17日
0.3.0 2017年6月15日
0.2.0 2017年3月30日
0.1.0 2017年3月21日

#11 in #bodies

MIT/Apache

180KB
3.5K SLoC

Multipart 构建状态 在Crates.io上

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

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

最低支持的 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::Multiparthyper::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::Multipart提供与tiny_http::Request的服务器端集成。

Rocket

由于Rocket团队似乎希望在后端处理multipart/form-data,因此不提供直接集成。但是,有一个示例展示了如何在Rocket服务器上使用multipartexamples/rocket.rs

⚡ 由⚡提供动力

buf_redux

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

httparse

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

双向

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

许可证

以下任一许可证下授权:

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,将被双重授权如上所述,不附加任何额外条款或条件。

依赖

~9.5MB
~193K SLoC