- Category
- Developer Tools
- Rank
- No. 837Tools index
Previous survey · No. 845 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Deployment & Operations
- Interfaces
- CLI
- Builder
- denoland
- GitHub
- 4.8k stars
- Latest release
- v0.5.1
- Date
About
celld is a self-hosted daemon that runs Cloudflare Workers and Durable Objects on your own infrastructure, coordinating solely through an S3-compatible bucket instead of a control plane or consensus service. Each object is its own SQLite database that shards by construction and hibernates when idle, reducing shared-database contention and blast radius.
What it does
celld gives Wrangler projects a deployment target on machines you operate. It embeds V8, serves module Workers, routes named Durable Objects, preserves their state, and supports alarms, WebSockets, service bindings, RPC, and static assets. Nodes discover deployments and ownership records from object storage, while an ownership epoch prevents stale nodes from writing.
Why it's ranked here
The strongest reason to consider celld is its unusually explicit distributed-systems design. Durable writes wait for object-storage replication, ownership uses atomic conditional writes, and failures are tested through differential runtime checks, deterministic simulation, and live fleet fault injection. The verdict remains cautious because the project calls itself alpha and documents significant compatibility and security boundaries.
What's good
The failure model is concrete. A node that cannot replicate fences itself, acknowledged writes pass through an output gate, and ownership epochs block former owners from serving stale state. Compatibility gaps are documented API by API and unknown deployment keys fail loudly. Fleet diagnostics continue after individual failures and report lease, address, reachability, authentication, protocol, resource, and shedding problems.
Tradeoffs
Peer traffic uses plain HTTP, so operators must provide a trusted private network or encrypted overlay. celld does not authenticate application users or terminate public TLS. Each fleet runs one application and lacks managed ingress, global placement, and multi-tenant scheduling. Cloudflare compatibility is partial: KV, R2, Cache, cron triggers, several handlers, and many Node modules are absent or stubbed. Pressure shedding is opt-in, and updates are manual.
How to use it well
Use celld when a team has a Wrangler-based Worker application, wants control of its machines and storage, and can operate private networking, ingress, credentials, capacity headroom, and manual upgrades. Model state around many named Durable Objects, test against the documented compatibility surface, and reserve spare capacity for node loss. Do not treat it as a managed Cloudflare replacement, authentication layer, TLS endpoint, general blob store, or hostile multi-tenant platform.
Technical notes+
Cargo.toml defines a Rust workspace with centralized dependencies, V8 152, rusqlite, Tokio, Hyper, Axum, rustls, and an S3-oriented object-store client. crates/logic/lib.rs is the I/O-free decision core: on_event advances State and returns effects for production or simulation. crates/celld/main.rs provides the serialized actor and effect adapters. crates/celld/js.rs embeds rusty_v8, creates one isolate per cell, routes Durable Object and service calls, and implements durability output gates. crates/celld/wake.rs mirrors alarm wake entries into the bucket. crates/logic/peer.rs isolates identity, clock-window, and replay-retention predicates. docs/cloudflare-compat.md precisely records supported, partial, missing, and inert runtime surfaces.
Observed
- License
- Apache-2.0
- Primary language
- Rust, organized as a Cargo workspace
- Installation
- Downloadable binary installer, source build with Cargo, and a container image
- Interface
- Command-line daemon with deploy, diagnose, runtime, and help commands
- Deployment input
- Wrangler JSON or JSONC projects; Worker code requires esbuild on PATH
- Prebuilt platforms
- Container image for Linux x86-64 and ARM64; Windows is unavailable, and Intel Macs require a source build
- Runtime surface
- Module Workers, Durable Objects, static assets, service bindings, JavaScript RPC, alarms, and WebSockets
- License contribution model
- Pull requests are disabled; focused patches are accepted by email under the stated contributor agreement
Read from README.md, Cargo.toml, docs/README.md, docs/testing.md, docs/security.md, docs/limitations.md, docs/cloudflare-compat.md, crates/celld/js.rs, crates/celld/lib.rs, crates/logic/lib.rs, crates/celld/main.rs, crates/celld/wake.rs, crates/logic/peer.rs.
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
