A minimal HTTP framework. No magic.

Type-safe routes, Zod validation, and OpenAPI generation. Define your API with schemas, not decorators.

Every request has a path.

Hectoday HTTP chooses clarity over convenience.
Inbound request. Outbound response.
Nothing hidden. Nothing assumed.
Start here. The rest follows.

Install

npm install @hectoday/http

Why

Most frameworks abstract HTTP away. @hectoday/http does the opposite.

You work directly with Request, Response, headers, status codes and routing. So you actually learn how the web works, not just how to use a framework.

Example

import { route, setup } from "@hectoday/http";

const app = setup({
  handlers: [
    route.get("/", {
      resolve: () => new Response("Hello HTTP"),
    }),
  ],
});

Deno.serve(app.fetch);

No wrappers. No custom response objects. Just HTTP.

Principles

  • Web standards first — Built on the Fetch API
  • Explicit control flow — You decide what happens
  • Minimal surface area — Small API, easy to reason about
  • Education-first — Clarity over convenience

Good for

  • Learning HTTP properly
  • Teaching web fundamentals
  • Understanding request lifecycles
  • Building APIs

Learn the protocol. Then build the abstractions.

Fast.

On Deno, @hectoday/http reaches 140–159k requests/sec — outperforming every Node.js framework, including bare node:http.

Built on Web Standards. Deno.serve speaks the same protocol natively. No translation layer. Near-zero overhead.

159k

req/sec on Deno

~4%

framework overhead

1–2µs

Zod validation cost

RouteDeno.serve@hectoday/httpOverhead
GET /159,018143,651~10%
GET /json154,254158,882~0%
GET /user/:id157,747140,358~11%

Apple M4 Pro, macOS 15, Deno 2.7.4. Measured with wrk — 4 threads, 128 connections, 10s × 5 iterations.

Ship your API with confidence.