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客户端

Download history 14441/week @ 2024-05-03 15460/week @ 2024-05-10 18198/week @ 2024-05-17 17325/week @ 2024-05-24 18820/week @ 2024-05-31 15467/week @ 2024-06-07 16047/week @ 2024-06-14 15052/week @ 2024-06-21 11675/week @ 2024-06-28 13107/week @ 2024-07-05 15443/week @ 2024-07-12 13624/week @ 2024-07-19 14125/week @ 2024-07-26 15258/week @ 2024-08-02 15309/week @ 2024-08-09 16829/week @ 2024-08-16

63,521 每月下载量
用于 145 个crate (93 直接)

ISC 许可证

125KB
2K SLoC

minreq

Crates.io Documentation Unit tests MSRV

简单、依赖最少的HTTP客户端。可选特性包括对json响应的支持(json-using-serde)、unicode域名(punycode)、http代理(proxy)、以及使用各种TLS实现的https(https-rustlshttps-rustls-probehttps-bundledhttps-bundled-probehttps-nativehttps,后者是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