gitwtfhub

wtf is celld?

denoland/celld — explained in plain English

Analysis updated 2026-08-13

3,294RustAudience · developerComplexity · 5/5LicenseSetup · hard

TL;DR

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.

Mindmap

mindmap
  root((repo))
    What it does
      Runs Workers locally
      Hosts Durable Objects
      Coordinates via bucket
      Replicates SQLite state
    Tech stack
      Rust
      V8
      SQLite
      S3
      Google Cloud Storage
    Use cases
      Self host edge apps
      Avoid vendor lock in
      Run stateful workloads
    Audience
      Backend developers
      Infra engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Self host Cloudflare Workers and Durable Objects on your own infrastructure instead of Cloudflare's cloud.

REASON 2

Run stateful, per object workloads such as chat rooms or game sessions with automatic failover.

REASON 3

Operate a multi server fleet that coordinates ownership of objects through shared cloud storage only.

REASON 4

Limit memory and resident object counts per server to keep a self hosted fleet stable under load.

What's in the stack?

RustV8SQLiteS3Google Cloud Storage

How it stacks up

denoland/celldkvcache-ai/agentenvlakehq/sail
Stars3,2943,1823,171
LanguageRustRustRust
Setup difficultyhardhardmoderate
Complexity5/55/54/5
Audiencedeveloperops devopsdata

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires an S3 compatible or Google Cloud Storage bucket, esbuild for Worker deploys, and a private or encrypted network for peer traffic.

Apache 2.0 license, free to use, modify, and distribute, including commercially, with attribution and patent grant terms.

Wtf does this do

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.

Yoink these prompts

Prompt 1
Walk me through installing celld and deploying a simple Worker to an S3 compatible bucket.
Prompt 2
Explain how celld decides which server owns a given Durable Object without a central coordinator.
Prompt 3
Show me how to run celld against a Google Cloud Storage bucket instead of an S3 bucket.
Prompt 4
Help me set CELLD_MAX_RESIDENT_CELLS and CELLD_MAX_RSS_MB to keep a celld node from running out of memory.

Frequently asked questions

wtf is celld?

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.

What language is celld written in?

Mainly Rust. The stack also includes Rust, V8, SQLite.

What license does celld use?

Apache 2.0 license, free to use, modify, and distribute, including commercially, with attribution and patent grant terms.

How hard is celld to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is celld for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.