Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback

Fast

Deno web framework with almost zero overhead.

test deno doc codecov

import fast from "https://deno.land/x/fast/mod.ts";

const app = fast();

app.get("/", () => "Hello, World!");

await app.serve();

More examples

Routing

import fast from "https://deno.land/x/fast@5.0.0/mod.ts";

const app = fast();

app.get("/ping", () => "Pong!");

await app.serve();
deno run -A --unstable https://deno.land/x/fast@5.0.0/examples/routing.ts

Route Parameters

import fast from "https://deno.land/x/fast@5.0.0/mod.ts";

const app = fast();

app.get("/:page", (ctx) => {
  const { page } = ctx.params;
  // ...
  return "<p>Hello, World</p>";
});

await app.serve();
deno run -A --unstable https://deno.land/x/fast@5.0.0/examples/params.ts

Assertions

import fast, { type Context } from "https://deno.land/x/fast@5.0.0/mod.ts";

const app = fast();

const missingEmail = {
  status: 400,
  code: "parameterMissing",
  message: `Missing required param: email.`,
};

const missingPassword = {
  status: 400,
  code: "parameterMissing",
  message: `Missing required param: password.`,
};

// We must explicitly type the `ctx` paramter.
// https://github.com/microsoft/TypeScript/issues/36931
app.post("/login", async (ctx: Context) => {
  const { email, password } = await ctx.body;
  ctx.assert(email, missingEmail);
  ctx.assert(password, missingPassword);
  // ...
  return { token: 123 };
});

await app.serve();
deno run -A --unstable https://deno.land/x/fast@5.0.0/examples/assert.ts