2 часа назад
Выпуск 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
Читают сейчас

49 минут назад
Японская Balmuda совместно с Джони Айвом выпустила The Clock — минималистичный будильник с режимами для фокусировки
Японская организация Balmuda совместно с бывшим дизайнером Apple Джони Айвом (Jony Ive) выпустила минималистичные часы-будильник The Clock. Помимо привычных функций, ожидаемых от будильника, есть режи

51 минуту назад
ВК ДжейТи Встреча: оптимизация и масштабируемость на Go
Привет, овчане! Весной стартует F1 для Go-разработчиков, встречаемся в двух столицах: 4 апреля — в Москве, 11 апреля — в Санкт-Петербурге. Обсудим реальные кейсы из практики VK и архитектурные решения

52 минуты назад
Исследователь провёл реверс-инжиниринг TiinyAI Pocket Lab на основе маркетинговых данных
Энтузиаст воссоздал характеристики мини-ПК TiinyAI Pocket Lab по маркетинговым фотографиям. Выяснилось, что организация во многом преувеличила возможности устройства. Читать далее

54 минуты назад
В Антарктиде построят станцию для молодых учёных
Российские учёные смогут приступить к исследованиям на антарктическом острове Смоленск уже в январе 2027 года. Для этого планируется создать новую полярную станцию по инициативе Фёдора Конюхова, о чём

1 час назад
Цукерберг разрабатывает персонального ИИ-агента, который должен помочь ему выполнять работу гендиректора
Генеральный директор Meta* Марк Цукерберг разрабатывает персонального агента на искусственном интеллекте, который должен помочь выполнять работу главы корпорации, пишет Wall Street Journal. Источники