An easier way to build with Cloudflare Durable Objects
422
stars
201
commits
TypeScript
primary language
Apr 23, 2026
updated
This project is in active development.
We are building a full-featured framework that makes developing Cloudflare Durable Objects easier by introducing new patterns and out of the box functionality that help developers.
MyActor.get('id') interfaceAnd many more features, check out the Examples for more information.
npm i @cloudflare/actors
Notice the code class name in your Typescript implementation must match the binding name, class_name and new_sqlite_classes value in the configuration. Verify all of the values match.
{
"migrations": [
{
"new_sqlite_classes": ["MyActor"],
"tag": "v1"
}
],
"durable_objects": {
"bindings": [
{
"class_name": "MyActor",
"name": "MyActor"
}
]
}
}
import { Actor, handler } from "@cloudflare/actors";
export class MyActor extends Actor<Env> {
async onRequest(request: Request): Promise<Response> {
return new Response("Hello, World!");
}
}
export default handler(MyActor);
npm run deploy
Cold Start:
Warm Start:
For the warm start instance, onInit would have already been called earlier before the alarm trigger.
See FAQ for more answers to common questions.
We welcome contributions! Please refer to our Contributing Guidelines for more information.
This project is licensed under the MIT License - see the LICENSE file for details.
TypeScript
99.7%
An easier way to build with Cloudflare Durable Objects
422
stars
201
commits
TypeScript
primary language
Apr 23, 2026
updated
This project is in active development.
We are building a full-featured framework that makes developing Cloudflare Durable Objects easier by introducing new patterns and out of the box functionality that help developers.
MyActor.get('id') interfaceAnd many more features, check out the Examples for more information.
npm i @cloudflare/actors
Notice the code class name in your Typescript implementation must match the binding name, class_name and new_sqlite_classes value in the configuration. Verify all of the values match.
{
"migrations": [
{
"new_sqlite_classes": ["MyActor"],
"tag": "v1"
}
],
"durable_objects": {
"bindings": [
{
"class_name": "MyActor",
"name": "MyActor"
}
]
}
}
import { Actor, handler } from "@cloudflare/actors";
export class MyActor extends Actor<Env> {
async onRequest(request: Request): Promise<Response> {
return new Response("Hello, World!");
}
}
export default handler(MyActor);
npm run deploy
Cold Start:
Warm Start:
For the warm start instance, onInit would have already been called earlier before the alarm trigger.
See FAQ for more answers to common questions.
We welcome contributions! Please refer to our Contributing Guidelines for more information.
This project is licensed under the MIT License - see the LICENSE file for details.
TypeScript
99.7%