Starlette 1.0 is here!
A few weeks after the 1.0.0rc1 release,
we are ready to welcome the long awaited 1.0.
Starlette 1.0 is not about reinventing the framework or introducing a wave of breaking changes. It is mostly a stability and versioning milestone. The changes in 1.0 were limited to removing old deprecated code that had been on the way out for years, along with a few bug fixes. From now on we'll follow SemVer strictly.
Acknowledgement
Before we continue, I'd like to thank the people that helped shape the project into what it is today.
First and foremost, thank you to Mia Kimberly Christie for creating Starlette!
Over the years, many people have shaped this project. Thomas Grainger and Alex Gronholm taught me so much about async Python, and have always been ready to help and mentor me along the way. Adrian Garcia Badaracco, one of the smartest people I know, who I have the pleasure of working with at Pydantic. Aber Sheeran has been my go-to person when I need help on many subjects. Florimond Manca was always present in the early days of both Starlette and Uvicorn, and helped a lot in the ecosystem. Amin Alaee contributed a lot with file-related PRs, and Alex Oleshkevich helped on templates and many discussions. Sebastián Ramírez maintains FastAPI upstream, and has always been in contact to help with upstream issues. Jordan Speicher worked on making Starlette anyio compatible.
On the support side, Seth Michael Larson has been someone I've relied on for help with security vulnerabilities, and Pydantic, my company, has supported me in maintaining these open source projects. A special thanks to our sponsors as well: @tiangolo, @huggingface, and @elevenlabs.
Starlette in the last year
Since the 2024 Open Source Report, here's what happened (data gathered from the GitHub API and PyPI Stats):
| Downloads/month | Releases | Closed issues | Merged PRs | Closed unmerged PRs | Answered discussions |
|---|---|---|---|---|---|
| 325 million | 19 | 50 | 144 | 77 | 49 |
Compared to last year (57 million downloads/month), Starlette has grown to 325 million downloads/month - almost 6x growth!
Open Source in the Age of AI
A lot of my work at Pydantic lately, building Logfire, has been focused on AI, and that has influenced my day-to-day work quite a bit, including how I maintain Starlette.
In practice, that has mostly meant using coding agents to speed up issue triage and pull request review.
The most negative side lately has been the amount of issues, pull requests and advisories opened via coding agents, that are just noise. Issues and pull requests are easy to close, but advisories are tricky - sometimes they look real, and making a judgement usually takes a long time.
What's next?
Looking ahead, we'll probably focus on improving the performance of our routing and multipart parsing. The number of issues in Starlette is down to 15 lately, so the idea is to keep maintaining the project as is. We'll be following SemVer now, and I don't foresee version 2 any time soon, but I'm also not afraid of doing that if we introduce some cool breaking change.
Go ahead and bump your Starlette version, and if you'd like to support the continued development of Starlette,
consider sponsoring me on GitHub.
Oh, and Sebastián, Starlette is now out of your way to release FastAPI 1.0.