Getting Started
Build HTTP servers with web standard APIs like fetch, Request, and Response.
Quick Start (CLI)
Create a server entry:
server.ts
export default {
  fetch(req: Request) {
    return Response.json({ hello: "world!" });
  },
};
Then, run the server using your favorite runtime:
npx srvx
pnpx srvx
yarn dlx srvx
deno -A npm:srvx
bunx --bun srvx
You can also try examples in the online playground
Quick Start (API)
Instead of using the srvx CLI, you can directly import the serve method to define a self-listening server entry.
Create a server entry:
server.ts
import { serve } from "srvx";
const server = serve({
  fetch(request) {
    return Response.json({ hello: "world!" });
  },
});
Install srvx as a dependency:
npm i srvx
yarn add srvx
pnpm i srvx
bun i srvx
deno i srvx
Then, run the server using your favorite runtime:
node server.mjs
deno run --allow-env --allow-net server.mjs
bun run server.mjs
Starter Examples
| Example | Source | Try | 
|---|---|---|
elysia | examples/elysia | npx giget gh:h3js/srvx/examples/elysia srvx-elysia | 
express | examples/express | npx giget gh:h3js/srvx/examples/express srvx-express | 
h3 | examples/h3 | npx giget gh:h3js/srvx/examples/h3 srvx-h3 | 
hello-world | examples/hello-world | npx giget gh:h3js/srvx/examples/hello-world srvx-hello-world | 
hono | examples/hono | npx giget gh:h3js/srvx/examples/hono srvx-hono | 
jsx | examples/jsx | npx giget gh:h3js/srvx/examples/jsx srvx-jsx | 
node-handler | examples/node-handler | npx giget gh:h3js/srvx/examples/node-handler srvx-node-handler | 
service-worker | examples/service-worker | npx giget gh:h3js/srvx/examples/service-worker srvx-service-worker | 
websocket | examples/websocket | npx giget gh:h3js/srvx/examples/websocket srvx-websocket |