- Fix support for background tasks and headers from dependencies in app.frontend()
From FastAPI
High-performance web framework for building APIs with Python.
| Jun | Jul | Aug | Sep | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunday | No releases on May 24, 2026 | No releases on May 31, 2026 | No releases on Jun 7, 2026 | 1 release on Jun 14, 2026 | No releases on Jun 21, 2026 | No releases on Jun 28, 2026 | No releases on Jul 5, 2026 | No releases on Jul 12, 2026 | No releases on Jul 19, 2026 | No releases on Jul 26, 2026 | No releases on Aug 2, 2026 | No releases on Aug 9, 2026 | No releases on Aug 16, 2026 | No releases on Aug 23, 2026 | No releases on Aug 30, 2026 | No releases on Sep 6, 2026 |
| Monday | No releases on May 25, 2026 | No releases on Jun 1, 2026 | No releases on Jun 8, 2026 | 1 release on Jun 15, 2026 | No releases on Jun 22, 2026 | 1 release on Jun 29, 2026 | No releases on Jul 6, 2026 | No releases on Jul 13, 2026 | No releases on Jul 20, 2026 | 7 releases on Jul 27, 2026 | No releases on Aug 3, 2026 | No releases on Aug 10, 2026 | No releases on Aug 17, 2026 | No releases on Aug 24, 2026 | No releases on Aug 31, 2026 | No releases on Sep 7, 2026 |
| Tuesday | No releases on May 26, 2026 | No releases on Jun 2, 2026 | No releases on Jun 9, 2026 | No releases on Jun 16, 2026 | No releases on Jun 23, 2026 | No releases on Jun 30, 2026 | No releases on Jul 7, 2026 | No releases on Jul 14, 2026 | No releases on Jul 21, 2026 | 6 releases on Jul 28, 2026 | No releases on Aug 4, 2026 | No releases on Aug 11, 2026 | No releases on Aug 18, 2026 | No releases on Aug 25, 2026 | No releases on Sep 1, 2026 | No releases on Sep 8, 2026 |
| Wednesday | No releases on May 27, 2026 | No releases on Jun 3, 2026 | No releases on Jun 10, 2026 | No releases on Jun 17, 2026 | No releases on Jun 24, 2026 | 1 release on Jul 1, 2026 | No releases on Jul 8, 2026 | No releases on Jul 15, 2026 | No releases on Jul 22, 2026 | 2 releases on Jul 29, 2026 | No releases on Aug 5, 2026 | No releases on Aug 12, 2026 | No releases on Aug 19, 2026 | No releases on Aug 26, 2026 | No releases on Sep 2, 2026 | No releases on Sep 9, 2026 |
| Thursday | No releases on May 28, 2026 | No releases on Jun 4, 2026 | No releases on Jun 11, 2026 | 1 release on Jun 18, 2026 | 1 release on Jun 25, 2026 | No releases on Jul 2, 2026 | No releases on Jul 9, 2026 | 2 releases on Jul 16, 2026 | No releases on Jul 23, 2026 | No releases on Jul 30, 2026 | No releases on Aug 6, 2026 | No releases on Aug 13, 2026 | No releases on Aug 20, 2026 | No releases on Aug 27, 2026 | No releases on Sep 3, 2026 | No releases on Sep 10, 2026 |
| Friday | No releases on May 29, 2026 | No releases on Jun 5, 2026 | No releases on Jun 12, 2026 | No releases on Jun 19, 2026 | No releases on Jun 26, 2026 | No releases on Jul 3, 2026 | No releases on Jul 10, 2026 | No releases on Jul 17, 2026 | 1 release on Jul 24, 2026 | No releases on Jul 31, 2026 | No releases on Aug 7, 2026 | No releases on Aug 14, 2026 | No releases on Aug 21, 2026 | No releases on Aug 28, 2026 | No releases on Sep 4, 2026 | |
| Saturday | No releases on May 30, 2026 | No releases on Jun 6, 2026 | No releases on Jun 13, 2026 | 1 release on Jun 20, 2026 | No releases on Jun 27, 2026 | No releases on Jul 4, 2026 | No releases on Jul 11, 2026 | No releases on Jul 18, 2026 | No releases on Jul 25, 2026 | No releases on Aug 1, 2026 | No releases on Aug 8, 2026 | No releases on Aug 15, 2026 | No releases on Aug 22, 2026 | No releases on Aug 29, 2026 | No releases on Sep 5, 2026 |
30 releases since Apr 1, 2026, busiest day 7
From FastAPI
From FastAPI
From FastAPI
status_code being ignored for SSE and JSONL streaming endpoints. PR #15937 by @SAURABHSALVE.format_sse_event docstring rendering of \n\n terminator. PR #15613 by @AshNicolus.From FastAPI
format_sse_event to comply with SSE spec. PR #15515 by @Zawwarsami16.From FastAPI
response_model_* params ignored for non-generator endpoints with Iterable[..] return type. PR #15093 by @YuriiMotov.From FastAPI
From FastAPI
exclude_defaults not propagated to dict keys and values in jsonable_encoder. PR #16043 by @MBGrao.From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
skip_users not being applied. PR #15995 by @YuriiMotov.llm-prompt.md for Hindi. PR #15810 by @YuriiMotov.FASTAPI_LATEST_CHANGES token in bump-pre-commit-hooks workflow. PR #15984 by @YuriiMotov.From FastAPI
app.frontend(), e.g. for automatic cookie authentication for the frontend. PR #15908 by @tiangolo.allow-unsafe-pr-checkout: true. PR #15876 by @YuriiMotov.From FastAPI
From FastAPI
app.frontend("/", directory="dist") and router.frontend("/", directory="dist"). PR #15800 by @tiangolo.
app.frontend() instructions to Agent Library Skill. PR #15805 by @tiangolo.release-notes.md for typos. PR #15796 by @YuriiMotov.gpt-5.5 model in translate.py, specify -chat to avoid warnings. PR #15792 by @YuriiMotov.From FastAPI
iter_route_contexts() for advanced use cases that used to use router.routes (e.g. Jupyverse). PR #15785 by @tiangolo.coverage.sh. PR #15772 by @tiangolo.From FastAPI
From FastAPI
Unblocks ✨ SO MANY THINGS ✨
Before this, router.include_router(other_router) would take each path operation from other_router and "clone" it, or recreate it from scratch.
This would mean that in the end there was only one top level router, part of the app.
The way it is structured here is that there are a few additional classes to handle intermediate metadata for router and route inclusion. That way the information of "router X includes Y and Y includes Z" is stored somewhere, without affecting (recreating / cloning) the final route.
Dependencies for 404: previously I intended to support dependencies that would be executed even for 404, but that would conflict with the fact that a router could not find a match, but the next router did find a match. Executing dependencies in the router that did not find a match would not make sense, they could consume the request, body, etc. This original idea was discarded.
Now router.routes is no longer a plain list of APIRoute objects, it can contain these intermediate objects that can contain additional routers, forming a tree.
Any logic that depended on iterating on the router.routes directly would be affected, that logic cannot expect to be able to extract data from a plain list of routes, as it's no longer a plain list but a tree.
Additionally, any logic that iterated on router.routes to modify them would now also see these new objects, and would not see all the routes in the app.
router.routes should be considered an internal implementation detail, only passed around to the FastAPI functions that need it.
subrouter in mainrouter can be done before adding routes (path operations) to subrouter, because now the entire object is stored instead of copying the routes.This is not documented yet, so it's not officially supported yet and could change in the future.
But, as APIRoute and APIRouter instances are now preserved, they could be customized.
APIRouter has two new methods, .matches() and .handle(), counterpart to the existing ones in APIRoute. With this a router could customize how it matches and handles requests. For example, it could match only requests that include some specific header, for example for handling versions in headers.
Still, for now, consider this very experimental and potentially changing and breaking in the future.
APIRoute subclasses (undocumented, but already works as described above)APIRouter subclasses (undocumented, but already works as described above)Annotated in inline example in docs/en/docs/tutorial/body-multiple-params.md. PR #15591 by @TheArchons.docs/en/docs/tutorial/security/oauth2-jwt.md. PR #14781 by @zadevhub.changing_dir instead of CLIRunner.isolated_filesystem to set working dir. PR #15616 by @YuriiMotov.httpx2 test dependency to avoid deprecation warning. PR #15603 by @YuriiMotov.From FastAPI
From FastAPI
From FastAPI
From FastAPI
From FastAPI
@app.vibe(). PR #15280 by @tiangolo.
lint.sh. PR #15136 by @svlandeg.The library for web and native user interfaces.
The Vue 2 line, in long-term maintenance since its end of life in December 2023.
The progressive JavaScript framework for building user interfaces.
The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.
react-native release notes.
Bring data to life with SVG, Canvas and HTML.