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
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::json
和Response::as_json
方法,可以方便地使用serde_json
对请求/响应体进行序列化。此功能添加了对serde
和serde_json
crate的依赖。
初始化
建议在启动应用程序时调用底层的 curl::init
方法(作为 crimp::init
重新导出),以初始化 cURL 库。这不是必需的,但否则将在第一次请求时发生。
依赖项
约 7-15MB
约 214K SLoC