A collection of middleware to use with oak. 🐿️ 🦕

View the Project on GitHub oakserver/middleware

oak middleware

ci deno doc

A collection of middleware for the oak framework.


Each middleware has its own module, as well as all the middleware being via the root mod.ts. If you just want everything, you can simply import the mod.ts, for example:

import * as oakMiddleware from "https://deno.land/x/oak_middleware/mod.ts";
import { Application } from "https://deno.land/x/oak/mod.ts";

const app = new Application();


Also consider using a tagged version of the middleware so that changes to the main branch won’t provide unexpected results in your code. For example, to use version v0.1.0 you would do the following:

import * as oakMiddleware from "https://deno.land/x/oak_middleware@v0.1.0/mod.ts";

If you just want specific middleware, you can just import it from its module:

import { responseTimeHeader } from "https://deno.land/x/oak_middleware/observability/response_time_header.ts";

If you want to manage all your external dependencies in one place, just follow the convention of deps.ts and re-export what you want:

export { responseTimeHeader } from "https://deno.land/x/oak_middleware@v0.1.0/observability/response_time_header.ts";
export { Application } from "https://deno.land/x/oak@4.0.0/mod.ts";

And then in your other modules, just import from deps.ts:

import { Application, responseTimeHeader } from "./deps.ts";

const app = new Application();
// ...
await app.listen({ port: 80 });


This section contains middleware that is intended to be used with the .use() method on the application.


This is middleware that is used for instrumentation and observability of a server created with oak.


A middleware that will set the response time for other middleware in milliseconds as X-Response-Time which can be used for diagnostics and other instrumentation of an application. Utilise the middleware before the “real” processing occurs.

import { responseTimeHeader } from "https://deno.land/x/oak-middleware/mod.ts";
import { Application } from "https://deno.land/x/oak/mod.ts";

const app = new App();

// other middleware

await app.listen(":80");

Router Middleware

This section contains middleware designed to work with the oak Router.

Copyright 2020 the oak authors. All rights reserved.