Bindings (`env`)
env contains only names declared on the deployment. Version Metadata is a platform-injected read-only object: id, tag, timestamp.
export default { async fetch(request: Request, env: Env): Promise<Response> { const version = env.VERSION.id; return env.AUTH.fetch(request); },} satisfies ExportedHandler<Env>;{ "name": "front", "main": "src/index.ts", "services": [{ "binding": "AUTH", "service": "auth-worker" }], "version_metadata": { "binding": "VERSION", "tag": "release-1" }}Service Bindings: default/named fetch and RPC. The target must be a uniquely resolvable Worker name in the same account; deploy time freezes a target ID. entrypoint is optional.
Member signatures for KV / R2 / D1 / DO / Queue / Workflow / Assets / Images belong on those product pages. Config grammar: configuration · bindings.
Compatibility
Section titled “Compatibility”| Topic | Cloudflare | open-compute |
|---|---|---|
env.BINDING types |
Yes — Bindings and Service bindings | Yes |
| Version Metadata fields | Yes — version metadata | id, tag, timestamp |
| Service Bindings | Cross-region placement / global service discovery | Same-platform only; default/named fetch and RPC; target admission, deployment pins, capability lifetime, and recovery are local and fail closed |
| Dynamic Workers / Worker Loader | Loader API | Native load/get, modules, entrypoint/RPC, user tails and dynamic DO facets; explicit limits and experimental controls remain unavailable |
| Workers for Platforms dispatcher | Yes | Not provided |
| mTLS / Rate Limit / Secrets Store / AI binding | Yes | Not provided |
Dynamic Workers
Section titled “Dynamic Workers”Declare worker_loaders: [{ binding: "LOADER" }] to expose the native WorkerLoader API as env.LOADER.
The same get(id, callback) ID must describe immutable code; do not depend on cache hits or callback counts.
Namespaces are isolated by account, Script and binding. Version rollback retains the namespace; deleting and
recreating a Script gives it a new namespace. A Worker invocation permits 4 distinct children in flight,
and a DO context permits 10; concurrent calls to the same child count once.
Explicit limits, including {}, are rejected. CPU, memory and subrequest budget enforcement remains
unimplemented; nonempty streaming tails are rejected and experimental capabilities cannot be enabled.
See behavior differences. For the certified 2026-09-08 date, the pinned Pyodide
bundle is embedded in ocd, verified, and loaded from the instance’s private runtime cache. Other official
child date/flag combinations retain workerd’s native version selection. Script deletion returns 409 while an executed Version retains generation
background references; deletion can proceed after that generation ends. Automatic local collection of
child logs is a platform feature, not Cloudflare’s default parent Workers Logs behavior.