我正在寻找一款低开销的 HTTP 客户端,用于在 Rust 中创建 AWS Lambda 的自定义运行时。我发现所有的实现(包括 AWS 官方运行时)都基于 hyper/tokio,但我不想要这种额外的开销和二进制负担。你知道有哪些客户端吗?为什么所有框架都基于 tokio?谢谢。
“所有框架都基于Tokio的原因是什么?”“Tokio” crate由许多人贡献并维护。由于它被良好地开发和维护,将新的crate放在这个基础之上是一个明智的想法。这就是为什么许多库依赖于“Tokio”及其变体/相关crate的原因。由于“Tokio”基于最小的子crate,如“tokio-tcp”,“tokio-codec”,“tokio-io”,“tokio-executor”等,因此这些crate可以单独导入,因此您的发布大小将相对较小。如果您坚持不使用任何“Tokio”依赖项,仍然有一些选择,但它们将由相对较少的贡献者开发和维护。以下是一些不使用Tokio的HTTP客户端选项: Ureq(一个轻量级的http客户端库,使用rust编写) Minreq(一个非常简单,易于使用的http客户端库,使用rust编写) cHttp(一个用C语言编写的http客户端库) easy-http-request(你可以尝试在其之上构建http客户端) cabot(一个使用Rust编写的高度可定制的HTTP代理和路由器) 除这些替代方案外,还有很多选择,但我认为我会导入最少的与tokio相关的crate,并在它们之上实现我的应用程序。