宣伝 10/21 に rust.tokyo でカニさんタワーバトルという発表をする。その事前資料として axum の内部実装の解説を書いているのだが、その解説を読むためには axum の Router は tower の Service ということを知っておく必要があるので、そもそも Service とは何かという tower の導入記事を書く。 tl;dr Webサーバーはルーティング、認証、レートリミット、ロギングなどのmiddleware関数が積み重なったものと見做せる これらのmiddleware関数は Fn: (req: Request) -> Future<Response> と見做せ、そのmiddleware関数の中が別の関数を呼ぶことで積み重ねられる 関数の中にmiddleware関数をハードコートすると再利用性に乏しくスケーリングさせにくいので、Fn: (req: Req
![tower は何を実現するのか](https://cdn-ak-scissors.b.st-hatena.com/image/square/9688e4de3729743cc0e7d83a1a2dbbdfc4f5a011/height=288;version=1;width=512/https%3A%2F%2Fblog.ojisan.io%2Fstatic%2F9b2ff54e3f8e2af95d11b9da0da45db5%2Faa395%2Fvisual.png)