Web framework for developers obsessed with performance and simplicity

ci

Fastro 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 benchmark results:

Framework Version Router? Avg Req
Abc 1.0.0-rc8 962.3
Deno http 1.0.3 2197
Express 4.17.1 470.4
Fastify 2.14.1 1122.2
Fastro 0.6.0 1432.4
Node http 14.3.0 2464.6
Oak 4.0.0 1000.9

Check this folder to see the detail method.

Middleware

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

const middleware = (req: Request) => {
  req.hi = (word: string) => {
    req.send(word);
  };
};

server.use(middleware);

Plugin

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

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

server.register(routes);

How to use

This module uses the git release. If you want to pick a specific version, for example v0.6.0, then the full url is https://deno.land/x/fastro@v0.6.0/mod.ts. If you do not use the version, it will refer to master branch.

Examples

Check this folder to find out how to: