全景
这一部分不进细节,先把整张地图画出来:
- tower-http 解决什么问题:tower 的中间件不知道 HTTP,框架自己的中间件只能用在那个框架里;tower-http 只认
http和http-body两个 crate,同一个CompressionLayer能套在 axum 的Router上,也能套在一个纯 tower 服务上。代价是 body 类型一路传染。压缩与解压的四个方向只实现了三个。 - 一个请求穿过三个时刻:
Cors → Trace → Compression → Timeout → handler一张时序图,标出每层在call、响应 future 完成、body 流动三个时刻各做什么,谁短路;同一张图换成客户端栈。
flowchart TB why[解决什么问题] --> both[服务端、客户端两用] why --> cost[代价:body 类型传染] moments[三个时刻] --> server[服务端栈] moments --> client[客户端栈] cost --> skel[02 共同骨架] server --> skel
后面每一部分都是在把这张地图上的某一段放大。
💬 关联讨论
发起讨论加载中...