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
Читают сейчас

5 минут назад
Выбросил месяц ИИ-кода и стартовал заново: инженер Google честно рассказал о работе с Claude Code
Лалит Маганти, инженер Google и мейнтейнер проекта Perfetto, опубликовал детальный разбор того, как за ~250 часов и три месяца работы с Claude Code разработал syntaqlite — набор devtools для SQLite, в

50 минут назад
«Ростех» рассказал об эффективности очков Blue Sky Pro для адаптации к полярной ночи
Госкорпорация «Ростех» заявила, что светотерапевтические очки Blue Sky Pro помогают адаптироваться к условиям полярной ночи и повышают работоспособность участников арктических и антарктических экспеди

53 минуты назад
Япония демонстрирует, что «физический ИИ» уже готов к реальному миру
Япония становится одним из первых рынков, где так называемый physical AI — ИИ, работающий через роботов и устройства в реальном мире — выходит из стадии экспериментов в полноценное добавление. По данн

1 час назад
Anthropic окончательно убрала OpenClaw из подписки Claude
Организация Anthropic официально подтвердила: подписка Claude больше не покрывает использование сторонних агентных инструментов, включая OpenClaw. Теперь за такие сценарии придётся платить отдельно. О

1 час назад
В СибГУТИ создали универсальную плату для обучения IoT-инженеров
Исследователь Сибирского государственного университета телекоммуникаций и информатики (СибГУТИ) создал универсальную учебную плату‑стенд. По словам создателей, девайс даёт возможность студентам и школ