Durable Objects are now supported in Python Workers
You can now create Durable Objects using Python Workers. A Durable Object is a special kind of Cloudflare Worker which uniquely combines compute with storage, enabling stateful long-running applications which run close to your users. For more info see here ↗.
You can define a Durable Object in Python in a similar way to JavaScript:
from workers import DurableObject, Response, handler
from urllib.parse import urlparse
class MyDurableObject(DurableObject): def __init__(self, ctx, env): self.ctx = ctx self.env = env
def on_fetch(self, request): result = self.ctx.storage.sql.exec("SELECT 'Hello, World!' as greeting").one() return Response(result.greeting)
@handlerasync def on_fetch(request, env, ctx): url = urlparse(request.url) id = env.MY_DURABLE_OBJECT.idFromName(url.path) stub = env.MY_DURABLE_OBJECT.get(id) greeting = await stub.fetch(request.url) return greeting
Define the Durable Object in your Wrangler configuration file:
{ "durable_objects": { "bindings": [ { "name": "MY_DURABLE_OBJECT", "class_name": "MyDurableObject" } ] }}
[[durable_objects.bindings]]name = "MY_DURABLE_OBJECT"class_name = "MyDurableObject"
Then define the storage backend for your Durable Object:
{ "migrations": [ { "tag": "v1", "new_sqlite_classes": [ "MyDurableObject" ] } ]}
[[migrations]]tag = "v1" # Should be unique for each entrynew_sqlite_classes = ["MyDurableObject"] # Array of new classes
Then test your new Durable Object locally by running wrangler dev
:
npx wrangler dev
Consult the Durable Objects documentation for more details.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark
-