36个稳定版本
2.12.0 | 2024年7月16日 |
---|---|
2.11.0 | 2023年10月17日 |
2.8.1 | 2023年5月20日 |
2.7.0 | 2023年3月19日 |
0.1.2 | 2018年3月18日 |
#7 in HTTP客户端
63,521 每月下载量
用于 145 个crate (93 直接)
125KB
2K SLoC
minreq
简单、依赖最少的HTTP客户端。可选特性包括对json响应的支持(json-using-serde
)、unicode域名(punycode
)、http代理(proxy
)、以及使用各种TLS实现的https(https-rustls
、https-rustls-probe
、https-bundled
、https-bundled-probe
、https-native
和https
,后者是https-rustls
的别名)。
在没有任何可选特性的情况下,我的非正式测试表明,使用此crate进行剥离版本构建会额外增加大约100 KB的执行文件大小。使用rustc 1.45.2编译,我的机器上println!("Hello, World!");
的大小为239 KB,其中hello示例为347 KB。两者都是纯Rust,因此除了libc
外,所有内容都是静态链接的。
注意:此crate的一些依赖(特别是serde
和各种https
库)比此库复杂得多,它们对执行文件大小的影响也反映了这一点。
文档
计划在3.0.0版本中实现
这是一份列表,一旦它足够长或者发现了严重的足够引起重大版本升级的问题,我就会实现这些功能。
- 更改响应/请求结构,以允许具有相同名称的多个头。
- 为最大头大小和状态行长度设置合理的默认值。添加最大值的功能是在响应于#55后添加的,但默认的极限是一个破坏性的更改。
- 当向不以
http://
或https://
开头的 URL 发起请求时,错误信息更加清晰。 - 这是一个不完整的错误类型吗?
- 将默认代理端口更改为 1080(从 8080)。Curl 使用 1080,因此这是一个合理的默认值。
- 提高 MSRV 以编译所有依赖项的最新版本,并在 Cargo.toml 中添加
rust-version
(至少 1.56)和edition
(至少 2021)字段。
最低支持 Rust 版本 (MSRV)
如果您不关心 MSRV,可以完全忽略本节,包括其中的指令。
我们为每个主要版本使用一个 MSRV,即,在新的主要版本中,我们保留更改 MSRV 的权利。
本库的当前主要版本(v2)应始终与任何组合的功能编译,除了在 Rust 1.48 上的 TLS 和 urlencoding 功能。这是因为这些依赖项本身的 MSRV 更高。
话虽如此,该包仍然需要强制某些依赖项低于最新版本,才能与较旧的编译器实际编译,因为这些依赖项在补丁版本中提高了它们的 MSRV。这可以通过以下操作实现(这些操作只是更新您的 Cargo.lock)
cargo update --package=log --precise=0.4.18
cargo update --package=httpdate --precise=1.0.2
cargo update --package=serde_json --precise=1.0.100
cargo update --package=chrono --precise=0.4.23
cargo update --package=num-traits --precise=0.2.18
# This again, for some reason.
cargo update --package=httpdate --precise=1.0.2
许可证
此包根据 ISC 许可证 分发。
依赖项
~0–12MB
~147K SLoC