Analysis updated 2026-08-13
Self host Cloudflare Workers and Durable Objects on your own infrastructure instead of Cloudflare's cloud.
Run stateful, per object workloads such as chat rooms or game sessions with automatic failover.
Operate a multi server fleet that coordinates ownership of objects through shared cloud storage only.
Limit memory and resident object counts per server to keep a self hosted fleet stable under load.
| denoland/celld | kvcache-ai/agentenv | lakehq/sail | |
|---|---|---|---|
| Stars | 3,294 | 3,182 | 3,171 |
| Language | Rust | Rust | Rust |
| Setup difficulty | hard | hard | moderate |
| Complexity | 5/5 | 5/5 | 4/5 |
| Audience | developer | ops devops | data |
Figures from each repo's GitHub metadata at analysis time.
Requires an S3 compatible or Google Cloud Storage bucket, esbuild for Worker deploys, and a private or encrypted network for peer traffic.
Celld is a tool that lets you run Cloudflare Workers and a Cloudflare feature called Durable Objects on your own servers instead of on Cloudflare's infrastructure. A Durable Object is a small, isolated piece of code paired with its own tiny database, useful for things like a chat room, a game session, or a per user counter that needs to remember state. In celld, each of these objects gets its own SQLite database file, and celld is responsible for finding which server should be running a given object and keeping its data safe. Instead of running a central coordinator to manage which server owns which object, celld coordinates entirely through a shared storage bucket that you already own, either an Amazon S3 style bucket or a Google Cloud Storage bucket. Servers use that bucket to agree, without any voting process, on exactly one owner for each object at a time. Because each object has its own small database, one busy object cannot slow down or break unrelated objects, and an object nobody is using currently costs almost nothing to keep around. Each server continuously saves a copy of every object's database to the shared bucket. If an object needs to move to a different server, or wakes back up after being idle, the new server simply loads that saved copy and continues from there, so the bucket is the real source of truth and any individual server can be replaced without losing data. Installing celld is a single shell script, and it is also available as a Docker container image. Running it involves deploying your Worker code to the bucket and then starting celld servers pointed at that same bucket, with settings for how servers find and trust one another over a private network. celld also includes a diagnose command for checking the health of every server in a fleet, and settings to limit how much memory and how many objects a single server holds under heavy load. It is licensed under the Apache 2.0 license, and its authors currently do not accept pull requests, preferring patches sent by email instead.
Celld lets you self host Cloudflare Workers and Durable Objects on your own servers, coordinating through a shared storage bucket instead of a control plane.
Mainly Rust. The stack also includes Rust, V8, SQLite.
Apache 2.0 license, free to use, modify, and distribute, including commercially, with attribution and patent grant terms.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.