4个版本 (1个稳定版本)

使用旧的Rust 2015

4087.0.0 2022年5月16日
0.2.2 2019年2月27日
0.2.0 2019年2月26日
0.1.0 2019年2月26日

Web编程 中排名 2286

GPL-3.0-or-later

25KB
383

crimp

Crimp 是一个基于cURL绑定的HTTP客户端接口。

该crate的文档主要在模块文档中。


该项目在TVL单一代码库中开发。要对其进行工作,您可以使用整个仓库的本地副本,或者只克隆crimp子树。

https://code.tvl.fyi/depot.git:/net/crimp.git

请遵循TVL 贡献指南


lib.rs:

crimp

该库在cURL Rust绑定之上提供了一个简化的API,类似于reqwest等高级库的API。所有调用都是同步的。

crimp旨在在不添加大量依赖或牺牲太多可用性的情况下,用于希望实现HTTP客户端功能的情况。

使用crimp通过简单的构建器模式风格的API进行HTTP请求。例如,要执行一个GET请求并将结果打印到stdout

use crimp::Request;

let response = Request::get("http://httpbin.org/get")
    .user_agent("crimp test suite")
    .unwrap()
    .send()
    .unwrap()
    .as_string()
    .unwrap();

println!("Status: {}\nBody: {}", response.status, response.body);

如果底层cURL库缺少某个功能,可以使用Request::raw方法作为逃生门来直接处理句柄。如果您发现自己正在这样做,请提交一个问题

crimp目前不提供重复使用cURL Easy句柄的功能,这意味着不支持HTTP连接的保活等。

Cargo功能

默认启用所有可选功能。

  • json:添加了Request::jsonResponse::as_json方法,可以方便地使用serde_json对请求/响应体进行序列化。此功能添加了对serdeserde_jsoncrate的依赖。

初始化

建议在启动应用程序时调用底层的 curl::init 方法(作为 crimp::init 重新导出),以初始化 cURL 库。这不是必需的,但否则将在第一次请求时发生。

依赖项

约 7-15MB
约 214K SLoC