Repolode
Kludex

Kludex/starlette

Лёгкий ASGI-фреймворк и набор инструментов для создания асинхронных веб-сервисов и API на Python.

Звёзды
12,676
Форки
1,383
Открытые issues
46
Последний коммит
вчера

Что это?

Starlette — лёгкий ASGI-фреймворк и набор инструментов для создания асинхронных веб-сервисов на Python. Он предоставляет маршрутизацию, обработку HTTP и WebSocket, фоновые задачи, события запуска и остановки, а также middleware, например для CORS, GZip и сессий. Компоненты можно использовать по отдельности или вместе как полноценный фреймворк.

Starlette требует только anyio в качестве обязательной зависимости; остальные возможности, такие как тестовый клиент, шаблоны Jinja2, обработка форм и сессии, устанавливаются как дополнительные компоненты. Фреймворк работает на ASGI-сервере, например uvicorn, и совместим с бэкендами asyncio и trio.

Поскольку компоненты соответствуют интерфейсу ASGI, middleware и подключаемые приложения теоретически можно использовать и с другими ASGI-фреймворками.

Ключевые возможности

  • 01Лёгкая маршрутизация HTTP и обработка запросов и ответов.
  • 02Поддержка WebSocket.
  • 03Фоновые задачи в процессе и события запуска и остановки.
  • 04Встроенные middleware для CORS, GZip, статических файлов и сессий и cookies.
  • 05Тестовый клиент на базе httpx2.
  • 06Совместимость с бэкендами asyncio и trio.

Сценарии использования

  • Создание асинхронных JSON API и веб-сервисов на Python.
  • Добавление WebSocket-эндпоинтов в бэкенд на Python.
  • Использование отдельных компонентов ASGI, например middleware или ответов, в собственной связке.

Быстрый старт

  1. 1

    Установите Starlette

    pip install starlette
  2. 2

    Установите ASGI-сервер, например uvicorn

    pip install uvicorn
  3. 3

    Сохраните пример в файл main.py, затем запустите его с помощью Uvicorn

    uvicorn main:app

Что важно знать

  • Starlette — это набор инструментов, поэтому сервер и необходимые дополнительные зависимости нужно настроить самостоятельно.
  • Для некоторых возможностей требуются дополнительные пакеты, например jinja2 или python-multipart.

Темы

Частые вопросы

Что такое starlette?
Лёгкий ASGI-фреймворк и набор инструментов для создания асинхронных веб-сервисов и API на Python. Starlette — лёгкий ASGI-фреймворк и набор инструментов для создания асинхронных веб-сервисов на Python. Он предоставляет маршрутизацию, обработку HTTP и WebSocket, фоновые задачи, события запуска и остановки, а также middleware, например для CORS, GZip и сессий. Компоненты можно использовать по отдельности или вместе как полноценный фреймворк.
starlette можно использовать бесплатно? Какая у него лицензия?
starlette распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
starlette всё ещё поддерживается?
Активно поддерживается. Последний коммит в starlette — 18 окт. 2026 г..
Для чего можно использовать starlette?
Создание асинхронных JSON API и веб-сервисов на Python. Добавление WebSocket-эндпоинтов в бэкенд на Python. Использование отдельных компонентов ASGI, например middleware или ответов, в собственной связке.
Как установить starlette?
Установите Starlette: pip install starlette Установите ASGI-сервер, например uvicorn: pip install uvicorn Сохраните пример в файл main.py, затем запустите его с помощью Uvicorn: uvicorn main:app
Где скачать starlette?
Исходный код и инструкции по установке — на GitHub: https://github.com/Kludex/starlette

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Python-фреймворк для создания API со стандартными аннотациями типов, автоматической валидацией, документацией OpenAPI и высокой производительностью.

103,3 тыс.10,1 тыс.PythonMITОбновлён 17 часов назад