Выпуск Starlette 1.0.0

3 мин
Выпуск 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

Читают сейчас

Вышел альфа-релиз Paint.NET 5.2 с экспериментальной поддержкой Wine/Linux

1 час назад

Вышел альфа-релиз Paint.NET 5.2 с экспериментальной поддержкой Wine/Linux

1 сентября 2026 года состоялся выпуск альфа-версии графического редактора с открытым исходным кодом Paint.NET 5.2 для Windows 10/11 (64-бита) и с экспериментальной поддержкой Wine/Linux (Wine 11.14, U

1 час назад

Операционная платформа «Альт Образование» бесплатна для школ — акция от «Базальт СПО»

Операционная платформа «Альт Образование» бесплатна для школ — акция от «Базальт СПО» Организация «Базальт СПО» запускает специальное предложение для школ: операционная система «Альт Образование» 11 п

Google добавила агентный аналитика видео в Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite

1 час назад

Google добавила агентный аналитика видео в Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite

Google запустила агентный анализ видео для Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite. Теперь модель анализирует видео не как последовательность кадров с фиксированной частотой, а сама решает, какие

Апдейт платформы «Октопус» от ГК «Юзтех»: историческая анализ и расширенная сопровождение инфраструктур

3 часа назад

Апдейт платформы «Октопус» от ГК «Юзтех»: историческая анализ и расширенная сопровождение инфраструктур

В новых версиях «Октопус» мы сфокусировались на трёх направлениях: расширении возможностей управления ИТ-инфраструктурой, повышении производительности и развитии интеграций. Система получила новые сце

Frank Media рассказал о сложностях, с которыми столкнулись пользователи при попытке воспользоваться цифровым рублём

3 часа назад

Frank Media рассказал о сложностях, с которыми столкнулись пользователи при попытке воспользоваться цифровым рублём

С 1 сентября должно было начаться массовое добавление цифрового рубля — третьей формы денег, которую Банк России обсуждает уже около шести лет. Тем не менее, судя по первым дням запуска, доступ к ново