Search docs

Jump between documentation pages.

Browse docs

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.

One app core, many runtimes
web-standard coreYour DaloyJS AppRequest → Response
runtimeNode.js@daloyjs/core/node
runtimeBun@daloyjs/core/bun
runtimeDeno@daloyjs/core/deno
edgeCloudflare Workers@daloyjs/core/cloudflare
serverlessVercel / Netlify@daloyjs/core/vercel
edge / serverlessFastly / AWS Lambda@daloyjs/core/fastly · /lambda
The core only ever sees a Request and returns a Response. Each thin adapter handles one platform's sockets, signals, or event shape, so the same app ships everywhere without a rewrite.

Pick a target

Runtimes (you own the process)

Edge & serverless (platform owns the process)

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:

ts
// modules-format (Cloudflare Workers, Deno, Bun, etc.)
export default {
  fetch(request: Request): Promise<Response> {
    return app.fetch(request);
  },
};

See also

  • Deployment: Docker, reverse proxies, health checks, and Node platform guides (Fly.io, Render, Railway, Heroku).
  • Scaffolder: pnpm create daloy ships runtime-specific templates.