23 марта 2026, 12:57
Выпуск Starlette 1.0.0

Starlette — это лёгкий асинхронный веб‑фреймворк на Python, построенный на стандарте ASGI (Asynchronous Server Gateway Interface). Он предназначен для создания быстрых и масштабируемых веб‑приложений и api с использованием async/await. На нём построен известный фреймворк FastAPI, используется напрямую для разработки: REST программный оболочку, WebSocket‑сервисов, микросервисов. Используется как зависимость в Python MCP SDK и других инструментах, связанных с AI.
Спустя почти восемь лет после создания, Starlette наконец‑то вышел в своей первой стабильной версии. Спасибо всем, кто тестировал предварительную версию и сообщал о проблемах.
Этот выпуск сосредоточен на удалении устаревших возможностей, которые были помечены для удаления в 1.0.0, а также на некоторых последних исправлениях ошибок информацию о которых мы собрали в release candidate.
Добавлено (Added):
1.0.0
Отслеживание доступа к сессии и её изменений в SessionMiddleware
1.0.0rc1
Добавлен generic state для WebSocket
Исправления (Fixed):
1.0.0
Обработка ответов отказа WebSocket в StreamingResponse и FileResponse
Использование bytearray для накопления полей в FormParser
Перемещение parser.finalize() внутрь try/except в MultiPartParser.parse()
1.0.0rc1
Включение единицы bytes в заголовок Content‑Range для ответов 416
Обработка нулевых байтов в пути StaticFiles
Использование слияния на основе сортировки для разбора заголовка Range
Установка Content‑Type вместо Content‑Range в ответах с несколькими диапазонами
Использование окончаний строк CRLF в границах multipart byterange
Предотвращение изменения заголовков FileResponse при range‑запросах
Возврат явного origin в CORS‑ответе, когда разрешены credentials
Включение autoescape по умолчанию в Jinja2Templates
Удалённо (Removed):
Удалены параметры on_startup и on_shutdown из Starlette и Router. Вместо этого используйте параметр lifespan
Удалён декоратор on_event() из Starlette и Router. Вместо этого используйте параметр lifespan
Удалён метод add_event_handler() из Starlette и Router. Вместо этого используйте параметр lifespan
Удалены методы startup() и shutdown() из Router
Удалён декоратор @app.route() из Starlette и Router. Вместо этого используйте Route в параметре routes
Удалён декоратор @app.websocket_route() из Starlette и Router. Вместо этого используйте WebSocketRoute в параметре routes
Удалён декоратор @app.exception_handler() из Starlette. Вместо этого используйте параметр exception_handlers
Удалён декоратор @app.middleware() из Starlette. Вместо этого используйте параметр middleware
Удалена функция iscoroutinefunction_or_partial() из starlette.routing
Удалён параметр **env_options из Jinja2Templates. Вместо этого используйте предварительно настроенный jinja2.Environment через параметр env
Удалена устаревшая сигнатура TemplateResponse(name, context) из Jinja2Templates. Вместо этого используйте TemplateResponse(request, name,...)
Удалён устаревший параметр method из FileResponse
Изменения (Changed):
Теперь jinja2 должен быть установлен для импорта Jinja2Templates. Ранее сбой возникала только при создании экземпляра класса
Контрибьюторы и благодарности
Kim Christie — оригинальный создатель Starlette, Uvicorn и MkDocs, а равным образом текущий мейнтейнер HTTPX. Работа Ким помогла заложить основу современного асинхронного Python-экосистемы
Adrian Garcia Badaracco — один из самых умных людей, которых я знаю, с которым мне посчастливилось функционировать в Pydantic
Thomas Grainger — мой учитель по async, всегда готов помочь с вопросами
Alex Grönholm — ещё один наставник по async, всегда быстро помогает с вопросами
Florimond Manca — всегда присутствовал в ранние дни Starlette и Uvicorn и сильно помог экосистеме
Amin Alaee — внёс крупный вклад через PR, связанные с файлами
Sebastián Ramírez — поддерживает FastAPI upstream и всегда на связи для помощи с upstream-проблемами
Alex Oleshkevich — сильно помог с шаблонами и многими обсуждениями
abersheeran — человек, к которому я обращаюсь, когда нужна помощь по многим вопросам
Ссылки:
Репозиторий Starlette- https://github.com/Kludex/starlette/releases
Сайт Starlette - https://www.starlette.io/release-notes/#100-march-22-2026
Читают сейчас

23 минуты назад
СМИ: в Telega запустили платную подписку для доступа в программа «без ожидания»
По информации СМИ, альтернативный заказчик Telegram под названием Telega запустил тестирование платной подписки «Телега Плюс» для доступа к приложению «без ожидания» (в сервисе называют это «приоритет

51 минуту назад
Google пытается побудить молодых артистов активнее применять ИИ в своей музыке
Google объявила о партнёрстве с Believe — компанией, которая занимается поиском и развитием музыкальных талантов по всему миру, — чтобы открыть её артистам и пользователям TuneCore доступ к платформе
59 минут назад
Техногиганты стартовали нанимать философов за $400 тысяч в год, чтобы они определяли ценности и поведение ИИ
Крупнейшие ИИ‑компании нанимают специалистов с философским образованием на старшие должности по этике и безопасности — базовая зарплата на таких позициях достигает $400 тысяч в год. В Anthropic эту ро

1 час назад
Bose представила набор для домашней аудиотехники Lifestyle Ultra Collection, состоящий из колонки, саундбара и сабвуфера
Американская Bose презентовала набор акустических устройств для домашней аудиотехники Lifestyle Ultra Collection, включающий колонку Lifestyle Ultra Speaker, саундбар Lifestyle Ultra Soundbar и сабвуф
1 час назад
Google выпустила апдейт смартфонов Pixel 10 без возможности отката ОС
Google выпустила майское обновление для Pixel, внеся в серию Pixel 10 модификация, которое не даёт возможность пользователям откатывать свои устройства до более старых версий Android. Ознакомиться дал