How to choose
Dependencies
Starlette only requires anyio, and the following dependencies are optional:
httpx - Required if you want to use the TestClient. jinja2 - Required if you want to use Jinja2Templates. python-multipart - Required if you want to support form parsing, with request.form(). itsdangerous - Required for SessionMiddleware support. pyyaml - Required for SchemaGenerator support. You can install all of these with pip3 install starlette[full].
Choose
Uvicorn supports HTTP/1.1 and WebSockets.
HTTP/1.1, HTTP/1.2 and HTTP/1.3