Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank

Previous survey · No. 845 ·

Pricing
Open Source
Type
TOOL
Use case
Deployment & Operations
Interfaces
CLI
Builder
denoland
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

durable-objectscloudflare-workersself-hosteddistributed-systemss3rustsqlite

Tech Stack

RustDocker

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.