Docs / Serverless Objects

Serverless Objects

Run Cloudflare Workers and Durable Objects apps on your own hardware. Overview, architecture and current status of the pre-alpha.

Serverless Objects runs Cloudflare Workers and Durable Objects apps on a host you control. You deploy an ordinary Wrangler project, and the sobjects CLI runs it with TLS ingress, a local dashboard, engine upgrades and service units. Durable Object state lives in your own S3-compatible bucket.

Serverless Objects is compatible with Cloudflare Workers, not affiliated with Cloudflare. It is open source under Apache-2.0 and published on npm as serverless-objects.

Serverless Objects isn't part of dl yet. Install it on its own.

Status: pre-alpha

Serverless Objects is pre-alpha. Use it for evaluation and testing, not for production.

Constraint Current state
Topology Single host with the celld engine. Multi-node operation exists only on the in-progress native engine.
Platforms macOS arm64, Linux arm64 and Linux x64. celld has no Windows binary.
Runtime Node.js 22 or newer. See installation for the exact patch versions.
Not provided Multi-tenant isolation, SSO, audit logs.

Read the compatibility table before you port an app.

Architecture

Serverless Objects doesn't implement the Workers runtime itself. It is the operating layer around a Workers-compatible engine, and drives that engine through a small contract: the Wrangler bundle, the Wrangler config, and a runtime protocol for health, deploy, inspection, alarms and metrics.

Layer What it does
sobjects CLI Preflights the Wrangler config, runs build.command and Vite asset builds, bundles and deploys the app, and starts or stops the node.
Supervisor Runs the TLS ingress and the loopback admin API and dashboard in front of the engine.
Engine Runs the Worker and its Durable Objects. Today this is celld 0.6.2, Deno's Apache-2.0 runtime for Wrangler bundles. The CLI downloads it and verifies it by checksum.
Bucket An S3-compatible bucket with conditional writes. It is the durable home for Durable Object state and deployed bundles.

Request flow on a node: client, then TLS ingress ([ingress]), then celld on loopback (127.0.0.1:8080 by default), then your Worker and its Durable Objects. celld's listener, its operator API and the admin API stay on loopback. Only the ingress faces the network.

Engines

Engine Status Notes
celld Supported, 0.6.2 pinned Runs Wrangler bundles with Durable Objects, KV, D1, R2, Queues, Workflows and Containers, as listed by celld upstream.
native In progress sobjects dev --engine native runs the Worker and Durable Objects inside Node, with each object in its own SQLite file. For trusted code only. See native engine and benchmarks.

What ships in the package

Part Import or command Docs
CLI sobjects CLI reference
Hotcell sandbox binding serverless-objects/hotcell Hotcell sandbox binding
Autopilot run objects serverless-objects/autopilot, /autopilot/cell, /autopilot/native Autopilot runs

The repository also contains a conformance suite that runs the same apps under wrangler dev, celld and the native engine, and a Docker Compose bundle for a single node.

Compatibility principle

Cloudflare's APIs are the contract. A Workers app that runs on Serverless Objects is meant to run on Cloudflare too, and the reverse. The recorded conformance results pass every check on Cloudflare (17/17), Wrangler 4.150.0 (16/16), celld 0.6.2 (17/17) and the native engine (17/17), using the same apps unchanged.

Not planned: a V8 runtime of its own, replacements for Workers AI, Vectorize or Hyperdrive, and Python objects.

Roadmap

Dates are targets from the project README, not commitments.

Milestone Target Scope
M0, compatibility spike Done, Oct 2026 Agents SDK and PartyServer samples on celld; Hotcell sandbox reattachment from an object.
M1, operating layer Released 19 Oct 2026 sobjects CLI and supervisor, TLS ingress with ACME, dashboard and storage inspector, conformance suite, install and porting guides. Single host.
M2, agent layer 7 Nov 2026 Hotcell Sandbox binding and Autopilot run objects (first versions merged).
M3, native engine, single node 21 Nov 2026 Node-native engine, sobjects build --strict, conformance parity with celld, then a two-week fault-injection soak before beta.
M4, multi-node and Teams 30 Nov 2026 Placement and migration through the bucket, rolling deploys, point-in-time recovery, multiple apps and tenants, SSO, audit logs, air-gapped install, Helm.

Next steps