
Cloudflare’s Python Workers hit general availability today. The JavaScript conversion layer that made the two-year beta feel like a prototype rather than a production tool is gone. Python is now a first-class language on the Cloudflare Developer Platform — deploy FastAPI, Django, or Flask directly to the edge, and your D1, R2, and Workers AI bindings work from Python without a single line of JavaScript in between.
The Change That Actually Matters
The beta’s fatal flaw was structural: Python Workers required a JavaScript interop bridge. When something broke, developers were debugging Python errors through a JS layer they didn’t write and couldn’t easily inspect. That is not a developer experience problem you paper over with documentation — it’s a reason to wait for GA.
That layer is now gone. The Workers runtime handles ASGI and WSGI natively through workers.asgi and workers.wsgi connectors. FastAPI, Django, and Flask deploy without adapters, shims, or JavaScript wrappers. According to the official Cloudflare GA announcement, Python is now a fully supported language on the platform — not a beta experiment running on top of JavaScript infrastructure. This is the difference between “Python-flavored JavaScript functions” and actually running Python at the edge.
The Bundle Limit That Was Quietly Killing Python Stacks
The second blocker was size. The beta imposed a 3 MB compressed limit on free plans and 10 MB on paid plans. A GitHub issue filed in July documented the obvious problem: a real Python app with pandas, NumPy, Pillow, and FastAPI could exhaust the paid limit before any application code was added. The free tier was simply out of reach for any Python stack with real dependencies.
Cloudflare replaced both limits on September 4th with a single 64 MiB uncompressed ceiling across free and paid plans. That’s the number that makes Python viable. pandas, NumPy, and FastAPI together compress to roughly 8–12 MB uncompressed — comfortably inside the new limit with room left for your actual application.
Database and AI Library Support
Python Workers can now connect to PostgreSQL and MySQL through Hyperdrive using standard Python drivers — psycopg2, asyncpg, mysql-connector-python. The runtime translates Python socket operations into Workers runtime calls internally. Developers use the same drivers they’ve always used, with no custom adapters.
AI libraries work natively. The openai SDK, langchain, and the mcp package all function without modification. Cloudflare patched the HTTP clients in these libraries to route through the JavaScript fetch API under the hood, but that’s invisible to the developer. From your perspective, import openai works at the edge.
Combined with Workers AI — Cloudflare’s managed model inference — this turns Python Workers into a credible destination for AI inference endpoints. Write a Python FastAPI service, call a model through Workers AI, store results in D1, all without leaving the Cloudflare platform or writing JavaScript.
Getting Started
The setup is minimal. A FastAPI Worker looks like this:
# main.py
from fastapi import FastAPI
from workers import WorkerEntrypoint, asgi
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Pure Python, edge deployed"}
class Default(WorkerEntrypoint):
async def fetch(self, request):
return await asgi.fetch(app, request)
# wrangler.toml
name = "my-python-worker"
main = "main.py"
compatibility_date = "2026-09-21"
compatibility_flags = ["python_workers"]
Run pywrangler dev to test locally, pywrangler deploy to ship. Python 3.14 is the default for new Workers using the September 8th compatibility date. Full documentation is available in the Cloudflare Python Workers docs.
One Honest Caveat
Packages must be Pyodide-compatible. If a library depends on C extensions not compiled to WebAssembly, it won’t run in Workers. Most of the Python data and AI ecosystem is covered, but specialized crypto and low-level networking libraries may not be. Check the supported packages list before committing your stack.
Cloudflare’s longer-term answer is PEP 783, which they proposed and got accepted this year. It standardizes how Python packages cross-compile to WebAssembly via cibuildwheel, which grows the Pyodide-compatible ecosystem incrementally. That’s a multi-year play, not a quick fix, but it signals genuine investment in the platform.
The September Rollout That Led Here
The GA announcement didn’t come out of nowhere. Cloudflare assembled it through four weeks of targeted changes:
- September 2: WSGI and ASGI framework support
- September 4: 64 MiB uncompressed bundle limit replaces compressed caps
- September 8: Python 3.14 as the default compatibility date
- September 16: Hyperdrive and standard database driver support
- September 21: General availability
That’s a deliberate cadence. Cloudflare waited until the pieces that actually matter for production workloads — framework support, bundle headroom, database access, and AI library compatibility — were all in place before calling it GA. That’s the right order of operations.
Python developers who tried the Workers beta and bounced because of the JavaScript bridge now have a reason to look again. The blockers are gone. The platform is ready.













