Rust in Everything
基于 reqwest 0.13.5

导读

这一部分不讲机制,只回答「从哪里读、读哪个版本、代码在哪」。reqwest 锁 tag v0.13.5,下层的 hyper、hyper-util、tower、tower-http 按新项目实际解析到的版本读;全卷沿请求、连接、响应三条主线展开;src 两万行出头,三分之一是异步客户端,另外两套实现(阻塞、WASM)和连接器各占一块。

  1. 怎么读这一卷:tag 和下层版本;三条主线每一步的函数与讲它的页;feature 逐个核对,同时打开 rustls 和 native-tls 时默认走 native-tls(实测 TLS 1.2),打开 hickory-dns 就换掉默认 resolver;为什么每个实验客户端都调 .no_proxy();README 和文档注释里过时的几处。
  2. 源码地图:lib.rs 的 if_hyper! / if_wasm! 怎么让三套实现共用一组类型名;src 各文件的行数和分工;cargo tree 核实的依赖层次,hyper、hyper-util、tower、tower-http、h2、rustls 各在哪一层。
flowchart TB
  how[怎么读这一卷] --> map[源码地图]
  how --> ov["01 全景"]
  map --> req["02 发请求"]
  map --> conn["03 连接"]
  map --> resp["04 响应与策略"]

💬 关联讨论

发起讨论
加载中...