Rust in Everything
基于 axum 0.8.9

全景

这一部分不进细节,先把整张地图画出来:

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

后面每一部分都是在把这张地图上的某一段放大。

💬 关联讨论

发起讨论
加载中...