Docs / Serverless Objects / Compatibility

Compatibility

Which Workers APIs and bindings Serverless Objects has tested on celld and the native engine, which are reported upstream only, and known gaps.

Cloudflare's APIs are the compatibility contract. These tables separate behavior the project has tested from functionality that celld lists upstream. A celld capability is not automatically a Serverless Objects guarantee.

The conformance results are one local run on macOS arm64 using Wrangler 4.150.0 and celld 0.6.2, plus a run against Cloudflare. They are not a cross-platform or Cloudflare production certification.

Bindings

Binding celld 0.6.2 Native engine Notes
Durable Objects Tested Tested See the API table below.
KV Upstream-reported Not yet The conformance suite tests Durable Object storage, not the separate Workers KV binding.
D1 Upstream-reported Not yet
R2 Upstream-reported Not yet
Queues Upstream-reported Not yet
Workflows Upstream-reported Not yet Not covered by conformance.
Containers (ctx.container) Partial, tested once with Docker Not documented See Containers below.
Service bindings Not covered Not yet The native engine refuses a config that declares them.
Static assets Preflight support Not yet The CLI requires assets.directory, or discovers Vite output for @cloudflare/vite-plugin projects. The native engine refuses a config that declares assets.
vars Used by tested apps Yes The Hotcell binding reads its settings from vars on celld.
Workers AI, Vectorize, Hyperdrive, Browser Rendering, Email Workers Not provided by celld 0.6.2 Not provided Serverless Objects does not implement replacements.

"Upstream-reported" means celld 0.6.2 lists the binding, and this project's conformance suite does not exercise it. Check celld's release documentation for exact limits.

Durable Objects APIs

Area Status Evidence or limitation
Durable Object IDs Tested on Wrangler, celld and native Named IDs, unique IDs, string conversion and validation.
Durable Object KV storage Tested on Wrangler, celld and native Get, put, list, delete, ranges and structured-clone values.
SQLite storage and SQL cursors Tested on Wrangler, celld and native SQL execution, cursors, raw rows, errors and database size. SQLite-backed classes require new_sqlite_classes.
Transactions Tested on Wrangler, celld and native transactionSync and async transaction commit and rollback.
RPC and input gates Tested on Wrangler, celld and native Structured arguments and results, error propagation, serialized increments and blockConcurrencyWhile.
Alarm API and delivery Tested on Wrangler, celld and native Set, delete and delivery.
Alarm across restart Tested on celld and native A pending alarm fired after restarting the process. Not tested on Wrangler.
deleteAll() clears alarm Tested Requires compatibility date 2026-02-24 or later.
Basic WebSockets Tested on Wrangler, celld and native Upgrade, echo, attachment, tags and auto-response.
WebSocket hibernation Tested on celld and native The object was evicted with a socket open, and the next message reached a new instance with tags and attachment intact. Not run on Wrangler. Sockets across a cell move between nodes are not tested.
Facets Not tested
Migrations Limited celld 0.6.2 accepts tag and new_sqlite_classes; rename, delete and transfer migrations are rejected.
Point-in-time recovery celld 0.6: no. Native: yes, in durable mode Native engine with --backup-mode durable has getCurrentBookmark, getBookmarkForTime, onNextSessionRestoreBookmark and ctx.abort().

Agents SDK and PartyServer

Area Status
Agents SDK state, SQL, schedules, addressing, @callable() RPC Passes the conformance Agents suite on Cloudflare, Wrangler, celld and native.
Agents SDK through sobjects deploy and sobjects up A minimal agents 0.28.1 app ran behind TLS ingress on celld 0.6.2 with SeaweedFS: routing, setState, this.sql, schedule() (including one pending across a node restart) and the WebSocket protocol matched wrangler dev.
Agents SDK chat agents, MCP, Workflows, official samples Not run through the CLI.
PartyServer Tested only directly on celld in the M0 spike.

Containers and @cloudflare/sandbox 1.0

celld 0.6.2 runs Wrangler containers classes on a local Docker or Podman engine. A Durable Object using stock @cloudflare/sandbox 1.0.1 (Files.writeFile, readFile, ctx.container.exec) worked once on macOS with an image built FROM alpine plus sandbox-shim copied from cloudflare/sandbox:1.0.1.

Gaps seen on macOS:

  • exec() straight after start() fails with "No such container" while the container is still being created.
  • enableInternet: false is not enforced; celld logs a warning.
  • container.images is undefined.

Not tested: Linux, S3Mount, DirectoryBackup, sleep and restart.

For a sandbox backed by Hotcell instead, see Hotcell sandbox binding, which follows the Sandbox SDK 0.x shape.

Product and topology

Capability Status
Single-host sobjects up Implemented and smoke-tested.
Multi-node operations, tenancy, SSO, audit log Not provided by this pre-alpha. celld's own multi-node capabilities don't imply these control-plane features.
Cloudflare-hosted production behavior Not tested. Local results don't certify production Cloudflare behavior.

Test record