Skip to main content

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
Abc 1.0.0-rc10 10646.6
Deno http 1.0.5 16427.6
Express 4.17.1 6338.5
Fastify 2.14.1 12058
Fastro 0.6.2 14329
Node http 14.3.0 15454.6
Oak 4.0.0 11048.6
PHP 7.3.11 5721.2
Python Flask 1.1.2 547.5

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, done: Function) => {
  req.oke = () => req.send("oke");
  done();
};

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

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, 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 0.6.2, then the full url is https://deno.land/x/fastro@0.6.2/mod.ts. If you do not use the version, it will refer to master branch.

Examples

Check this folder to find out how to: