Skip to main content
Deno 2 is finally here 🎉️
Learn more

purehttp

Build Coverage License Language Typescript
deno.land/x/purehttp Version Downloads

PureHTTP is a minimalist HTTP server framework with a small codebase, utilizing built-in URLPattern for efficient routing.

Usage

with Deno

import { Router } from "https://deno.land/x/purehttp/mod.ts";

const router = new Router();

router.get("/", () => {
  return Response.json({
    message: "Hello World",
  });
});
router.get("/articles/:id", ({ match }) => {
  return Response.json({
    id: match.pathname.groups.id,
  });
});

Deno.serve(router.dispatch.bind(router), {
  port: 8080,
});
deno run --allow-net --unstable server.ts

In addition to using Deno.serve, you can also use the HTTP server from the standard library by importing https://deno.land/std@0.167.0/http/server.ts.

Here is an example:

import { serve } from "https://deno.land/std@0.167.0/http/server.ts";

/* ... */

serve(router.dispatch.bind(router), {
  port: 8080,
});

Using the HTTP server from the standard library allows you to deploy your application to a Deno Deploy environment.

with NPM

npm install purehttp

Middlewares

CORS

The cors middleware from PureHTTP allows you to easily add CORS (Cross-Origin Resource Sharing) support to your routes.

import { cors } from "https://deno.land/x/purehttp/middlewares/cors.ts";

router.addRoute({
  method: ["GET", "POST", "OPTIONS", "CUSTOMMETHOD"],
  pattern: "/cors",
  middleware: cors({
    allowMethods: ["POST", "CUSTOMMETHOD"],
  }),
}, () => {
  return Response.json({ success: true });
});