README.md
Examples
These small Wrangler projects demonstrate the Workers platform that celld
supports, one service or API at a time:
hello/— a stateless Workerfetchhandlerwebapi/— common Web Platform APIsstatic-assets/— an asset-only website with headers and redirectscounter/— a SQLite-backed Durable Objectvectordb/— nearest-color search with a per-objectvec0indexd1/— a guestbook on a D1 databaser2/— object reads, writes, and deletes on an R2 bucketkv/— key reads, writes, and deletes in a KV namespacequeues/— a producer and a consumer, with retries and a dead-letter queueasync/— a timer and asynchronous Durable Object storagebody/— request and response bodiesrouter/— Worker-to-Durable-Object routingwsecho/— WebSocket echo with hibernationwsclient/— outbound WebSocket client from a Durable Objectalarm/— a Durable Object alarm handlercron/— a cron trigger that logs each tickworkflow/— a Workflow that builds a report in one durable steprpc/— Durable Object method calls through JS RPCdynamic-worker-tails/— a runtime-loaded Worker with a Tail Workerfacets/— a Durable Object facet over a class the Worker Loader startscontainer/— a Durable Object that supervises a container with@cloudflare/containers; needsnpm installand a Docker or Podman CLIsandbox/— the Cloudflare Sandbox SDK: commands, files, and processes in a container per sandbox; needsnpm installand a Docker or Podman CLIpi/— the PiHarness agent loop in a Durable Objectopencode/— the OpenCode Workerd SDK in a Durable Objectpython/— a Python Worker that summarizes HTML with a vendored package; needsuv run pywrangler syncfirst (see Python Workers)wasm/— a Durable Object counter in Rust, compiled to Wasm with workers-rs; needs a build step first (see its README)
Deploy an example from its directory to the same bucket the nodes use:
celld deploy . --bucket s3://my-cells-bucket
The counter example uses the name query parameter as the Durable Object
name. It uses default when the parameter is absent. Send requests for
different names to demonstrate independent cells:
curl 'http://127.0.0.1:8080/increment?name=alpha'
curl 'http://127.0.0.1:8080/increment?name=beta'
curl 'http://127.0.0.1:8080/increment?name=alpha'
A fleet can place the named cells on different nodes, and each cell keeps an independent counter.
They are examples, not the complete compatibility test suite.