What's up Python? Faster CPython cancelled, a new installer and yet another type checker
May, 2025
Summary
Your hopes and dreams of a Faster CPython just got crushed as Microsoft is shutting down the project.
A new project, PyFuze, combines APE and UV to create portable Python installers.
Red-knot becomes officially
ty
, a new separate type checker.
Faster CPython is cancelled
Psyco aside, which morphed into the famous Pypy implementation, projects with the specific goal of accelerating Python have historically had a rough life.
Google's Unladen Swallow died in 2011, Dropbox stopped funding Pyston V1 in 2017, Pyston V2 is now unmaintained and Mojo dropped the idea of being Python compatible and now touts itself as "a pythonic language".
Maybe the community repeated too many times "Python is fast enough for what it's good at" and this is karma knocking at the door.
Still, there was an appetite for better Python perfs, so when in 2020, core dev Mark Shannon drafted his plan for speeding up the snake by 5X, there were high hopes. Hopes were raised even higher when Microsoft hired him and a specialized team to implement it.
The roadmap was aiming for a 50% speed increase every year over half a decade, but looking back today at the achieved gains gives a different story: 25% on average for Python 3.11, about 5% for 3.12, "modest performance improvements" in 3.13, and 3 to 5% on 3.14.
The killing blow has been given this month, as Microsoft cancelled the project and fired the team. Pretty high-profile devs were let go, and not just in their Python department, so if you need to hire at the extreme end of the expert spectrum, now is your Microsoft Window of opportunity.
However, if you still pray for a speed-up savior after all that, then you have to address your offerings to Meta and its Cinder project. They continue to invest in it as it powers Instagram, and they are actively looking to integrate its improvements upstream. Some Faster CPython successes were directly influenced by their work.
PyFuze, an uv based tool to ship Python code
I have been expecting to see something like this for some time, and I think we will see more of those: projects leveraging uv
to provide installers for Python tools.
PyFuze is one of them, with an interesting twist: it generates a zip containing all you need to install your program, AND an Actually Portable Executable to execute the entire process.
The result is that you can theoretically run the installer on either Windows, Mac, or Linux without any modification needed. It should install uv
, then use the latter to bootstrap Python and all dependencies. A true portable installer experience.
I say “theoretically” because there may be more ceremony to run the executable than you would like. On some Linux systems (like Ubuntu and NixOS), you might get binfmt_misc
registration issues, which you'll need to solve with a few commands. On Windows, there is the mark of the Web and the matter of code signing that will get you the blue security prompt. On Mac, of course, there is the notarization process.
The concept stays interesting, both from the innovative approach of using an APE and demoing the potential that uv has, not for bootstrapping projects but for shipping to the end user.
And sure, we can always hope Astral will bless us with a uv bundle
subcommand one day to free us from the chains of creating an installer, but they are pretty busy right now with their new type checker seeing an early release.
Oh yeah, Astral released a type checker BTW
Yes, the project was already known to be in the work, but it used to live in the ruff
code base as the “red-knot” branch. It's now officially moved to its own GitHub repository, and with a pretty nice name: Ty (which I think is pronounced "Tee Why" and not “tie”)
Charlie Marsh notes that:
it's 10x, 50x, even 100x faster than existing type checkers. (We've seen >600x speed-ups over Mypy in some real-world projects.)
This is something I'm awaiting impatiently, as mypy
being slow (and hard to configure) is one of the reasons I don't activate it in many of my projects. I was happy with black
+ pylint
and still found ruff
to be a notable improvement. I can't wait to see what happens with this gap being closed.
But:
we don't expect ty to be usable in production. It's feature-incomplete, and you should expect to encounter bugs or even fatal errors.
And indeed, trying it (it's just a uvx ty check
away!) yields mostly false positives for now.
Since we've come to expect miracles from this team, let's give them a week or two.