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