全景
这一部分不进细节,先把整张地图画出来:
- axum 解决什么问题:crate 文档列出的五条「High-level features」各落在哪个类型和 trait 上;为什么 axum 要求所有服务的错误类型都是
Infallible;axum 自己没有中间件系统,.layer收的就是 tower 的Layer;axum 绑定 tokio 和 hyper,这一点文档写明「not a goal」去改变。 - 一个请求穿过 axum:两个路由、一个
from_fn中间件、一个状态、一个Path提取器,加上打印,跑出来看:.layer在启动时被调用了几次、状态在启动时和每个请求里各被克隆了几次、中间件为什么已经知道匹配到的路由;一张时序图同时画出装配主线和请求主线。
后面每一部分都是在把这张地图上的某一段放大。
💬 关联讨论
发起讨论加载中...