PythonでWeb APIを書くときはいまだとFastAPIが一番人気なのではないでしょうか。軽くて速く、ドキュメントの自動生成もしてくれるとてもいいフレームワークです、人気なのも納得です。
そんなFastAPIはStarletteというフレームワークにバリデーションとドキュメント生成を追加したものなので、「バリデーションは自分で書くよ」「ドキュメントも自分で書くよ」というひとにはStarletteで十分だよね!と思っております。
StarletteがUvicornを使っているのと同じで、FastAPIはStarletteを使っており、それより速くできません。
https://fastapi.tiangolo.com/ja/benchmarks/
FastAPIを使用せず、直接Starlette (またはSanic, Flask, Responderなど) を使用した場合、データの検証とシリアライズをすべて自分で実装する必要があります。そのため、最終的なアプリケーションはFastAPIを使用して構築した場合と同じオーバーヘッドが発生します。そして、多くの場合、このデータ検証とシリアライズは、アプリケーションのコードの中で最大の記述量になります。
https://fastapi.tiangolo.com/ja/benchmarks/
自分で書くメリットもデメリットもあって、最終的には好みになるんですかね。業務で使う場合は選定ポイントがあると思うのでそこ次第かと。
僕は自分がフレームワークに求めるものがFastAPIよりもStarletteに近かったので最近はすっかりStarletteを使っています。
使っているとはいえ「あれどうやって書くんだっけ」っていうのも多いので、今後備忘録としてStarletteのことをちょっとずつまとめていくことになるでしょう。