Adapters & runtimes
DaloyJS is a REST API backend framework. The core only ever sees Request → Response. Runtime-specific concerns, sockets, signals, edge handlers, Lambda event shapes, live in thin adapters at the edge. Choose the adapter for the place you want to deploy your API.
Pick a target
Runtimes (you own the process)
Long-lived process on Node 24 LTS or Node 26+. Sane request/header/keep-alive timeouts and SIGTERM-driven graceful shutdown.
Native Bun.serve for REST APIs. Fast startup, built-in TLS, Unix sockets, and hot reload in dev.
Stable Deno.serve with AbortSignal-based shutdown. Runs anywhere, including Deno Deploy.
Edge & serverless (platform owns the process)
Modules-format Worker. wrangler.jsonc, nodejs_compat, and bindings for KV, R2, D1, DO, Queues, Hyperdrive.
Deploy a standalone REST API as a Vercel Node Function or Edge Function.
Edge Functions (Deno) and Functions v2 (Node, fetch-style). The v1 lambda shape is legacy.
JS Compute via @fastly/js-compute and the fetch-event listener model, wrapped by installFastlyListener.
API Gateway HTTP API v2.0, REST API v1.0, Function URLs, and streamifyResponse for streaming.
Roll your own
If your runtime exposes the web-standard Request / Response contract and isn't listed above, you don't need an adapter at all, pass the incoming request straight to app.fetch:
See also
- Deployment: Docker, reverse proxies, health checks, and Node platform guides (Fly.io, Render, Railway, Heroku).
- Scaffolder:
pnpm create daloyships runtime-specific templates.