11个版本 (4个主要版本)
4.0.1 | 2024年1月18日 |
---|---|
3.0.0 | 2023年10月31日 |
2.0.1 | 2023年6月20日 |
1.2.0 | 2023年5月30日 |
0.1.2 | 2021年9月7日 |
#178 in HTTP客户端
80KB
1.5K SLoC
Rtv
Rtv是一个简单、依赖性极低的HTTP客户端,它运行在 mio 之上。它支持完全非阻塞的请求,甚至DNS解析也是非阻塞的。您还可以使用它与 async
结合使用,作为比 hyper
等类似工具更轻量级(但功能更少且稳定性较差)的替代品。
您可以选择自己设置 mio
并使用一个 Client
来发送请求,使用您自己的 Poll
,或者如果您想使用 async
,则可以使用 SimpleClient
。然而,后者目前仅在64位Unix系统上受支持。
示例(客户端)
这是这个包提供的主要功能。您可以在docs.rs上找到示例 这里。
示例(SimpleClient)
发起单个请求非常简单。然而,这个客户端不仅提供这项功能!
let mut client = SimpleClient::new()?;
let request = Request::get().host("google.com");
client.send(request).await?;
Mio Httpc
这个包类似于 mio_httpc,然而API更为简洁,在我看来。MioHttpc使得事件处理、超时和错误非常冗长,而此包旨在提供一个非常简单的接口,只需调用一个函数(pump
)。但是,Rtv只支持 mio_httpc
部分功能,可能效率不高且稳定性较差。Rtv真的就是一个 简单 的HTTP客户端。
注意
此包早期版本完全不同。我决定重新利用这个名称,因为我不想在我的个人资料或crates.io上留下垃圾。
- 最初
rtv
是一个用于执行递归文件遍历的包。 - 然后它是一个用于解决未来的包(完全无用)。
依赖项
~0.7–14MB
~134K SLoC