Skip to main content
Module

x/fastro/benchmarks/_template.md

Fast and simple web application framework for deno
Go to Latest
File

fastro

ci

Fastro is web framework for developers obsessed with performance and simplicity.

It is inspired by Fastify & Express.

import { Fastro } from "https://deno.land/x/fastro/mod.ts";
const server = new Fastro();
server.get("/", (req) => req.send("root"));
await server.listen();

Benchmarks

If performance is important to you, here are the Hello World benchmark results:

Framework Version Router? Avg Req
${text}

Check this folder to see the details.

Middleware

You can add new properties or functions to the default request. This is similar to the express middleware.

const middleware = (req: Request, done: Function) => {
  req.oke = () => req.send("oke");
  done();
};

server
  .use(middleware)
  .get("/", (req) => req.oke());

Decorator

Another way to add a new property or function to the fastro instance and request object is to use a decorator. This is similar to the fastify decorator.

server
  .decorate((instance) => instance.ok = "ok")
  .decorate((instance) => instance.hello = (payload: string) => payload)
  .decorateRequest((req) => req.oke = "oke request");

server
  .get("/", (req) => req.send(server.ok))
  .get("/hello", (req) => req.send(server.hello("hello")))
  .get("/oke", (req) => req.send(req.oke));

Plugin

You can add new properties or functions to the fastro instance. You can also use all default instance functions, include decorator, create routes & middleware. This is similar to the fastify plugin.

const routes = function (fastro: Fastro, done: Function) {
  fastro
    .get("/", (req) => req.send("root"))
    .post("/", (req) => req.send("post"))
    .put("/", (req) => req.send("put"))
    .delete("/", (req) => req.send("delete"));
  done();
};

server.register(routes);

How to use

This module uses the git release. If you want to pick a specific version, for example ${fastro_version}, then the full url is https://deno.land/x/fastro@${fastro_version}/mod.ts. If you do not use the version, it will refer to master branch and breaking changes may be made without warning.

Examples

Check this folder to find out how to: