Rust in Everything
基于 axum 0.8.9

设计取舍

前面各部分按模块读,每一页讲清一个机制。这一部分换个角度:把散在各页里的取舍收拢起来,按「换来了什么、付出了什么、代价由谁来补」排好。这里不重讲机制,每条都链回讲过它的那一页,理由都引 axum 自己的 CHANGELOG、PR、issue、文档或源码注释,数字都来自那些页的实验。

  1. 取舍汇总:handler 是普通函数、提取器分两种 trait、状态放进 Router<S> 的类型、路由树交给 matchit、所有端点擦成 Route、中间件就是 tower、axum::serve 故意很薄;最后用 issue #3913 收尾,它正好是「擦成 Route」和「每次 .layer 包一层 Route」两条叠在一起出的事。

💬 关联讨论

发起讨论
加载中...