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
Deno http 1.0.5 16906
Node http 14.3.0 15746
Fastro 0.7.1 14006.4
Fastify 2.14.1 12663.8
Oak 4.0.0 11488.6
Abc 1.0.0-rc10 11395.4
Express 4.17.1 6539.1
PHP 7.3.11 6021.28
Python Flask 1.1.2 562.64

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());

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.7.1, then the full url is https://deno.land/x/fastro@0.7.1/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: