- Starlette 1.0.0 вышел 22 марта 2026 года — это первая стабильная версия фреймворка почти за восемь лет после запуска проекта.
- Релиз удаляет ряд устаревших API: обработчики запуска и остановки, декораторы маршрутов, middleware и exception_handler, а также несколько старых параметров и сигнатур.
- В версии 1.0 добавили отслеживание доступа к сессии и её изменений в SessionMiddleware, а также внесли серию исправлений в WebSocket, FileResponse, парсинг форм и шаблоны Jinja2.
Starlette выпустил версию 1.0.0 22 марта 2026 года. Для проекта это первый стабильный релиз почти за восемь лет существования. Главный смысл обновления — не столько новые возможности, сколько финальная зачистка устаревших частей API, которые давно пометили к удалению и теперь окончательно убрали.
Больше всего изменений затронет код приложений, которые долго не обновляли. Из Starlette и Router исчезли параметры on_startup и on_shutdown, декоратор on_event(), метод add_event_handler(), а также методы startup() и shutdown() у Router. Вместо них теперь нужно использовать lifespan — единый механизм для кода, который запускается при старте и завершении приложения.
Также удалены старые декораторы маршрутов: @app.route() и @app.websocket_route(). Для объявления маршрутов теперь нужно явно передавать Route и WebSocketRoute в списке routes. Из Starlette убрали и декораторы @app.exception_handler() и @app.middleware(): обработчики исключений и middleware теперь задаются через параметры приложения. Кроме того, удалены устаревшие элементы в шаблонах и ответах, включая старую сигнатуру TemplateResponse и параметр method у FileResponse.
В релизе есть и прикладные доработки. В SessionMiddleware появилось отслеживание чтения и изменений сессии. Исправлена обработка отказов WebSocket в StreamingResponse и FileResponse, улучшен разбор форм и multipart-данных, а также несколько деталей в работе range-запросов, CORS и StaticFiles. Для Jinja2Templates изменилось поведение импорта: теперь библиотека jinja2 должна быть установлена уже в момент импорта класса, а не только при его создании.
Starlette — лёгкий асинхронный веб-фреймворк на базе ASGI, стандарта для Python-приложений, работающих с async/await. На нём построен FastAPI, а ещё его используют напрямую для API, WebSocket-сервисов и микросервисов. Поэтому релиз 1.0 важен не только для самого Starlette, но и для проектов, которые зависят от него напрямую или косвенно.
Starlette долго развивался без версии 1.0, оставаясь базовым компонентом для FastAPI и других асинхронных Python-инструментов. В первой стабильной версии команда завершила удаление возможностей, которые заранее объявила устаревшими.
Разработчикам придётся проверить совместимость приложений перед обновлением: старые обработчики событий, декораторы маршрутов и часть шаблонного API больше не работают. Для новых проектов это упрощает структуру конфигурации и переводит ключевые настройки на единые параметры приложения.