Cottage is the fastest, simple, and intuitive HTTP router framework for Koa.js.
- Fastest HTTP Router / Framework on Node - See performance
- Simple code - Aren't you tired using
res.send
orctx.body
? Why can't we justreturn
the response? - Additional Sugar Features
Installation
Cottage requires Node v8.0.0 or higher.
$ npm install cottage
Example
import { Cottage, Response } from 'cottage';
const app = new Cottage();
// just simple return would be enough
app.post('/', async ctx => 'Hello world!');
app.get('/auth', async ctx => {
// needs fancy response code?
return new Response(401, { error: 'unauthorized' });
});
// cottage is built on the top of Koa.
app.use(anyKoaMiddleware());
(new Koa).use(app.callback()).listen(...);
// or a simple shorthand without importing Koa.
app.listen(8080, () => console.log('Independent!'));
Performance
Benchmark have been ran on Intel Xeon E3-1250v3 @ 3.50ghz with Node.js 6.1.0 single instance. Tested from Github API sample using wrk
Framework | Mean Throughput (req/sec) | Stddev |
---|---|---|
[email protected] | 15130.12 | 142.45 |
[email protected] | 11455.67 | 201.95 |
[email protected] | 12279.01 | 157.33 |
[email protected] | 2402.31 | 53.14 |
As the benchmark result shows, cottage is the fastest framework in Node.js.
Why?
Cottage uses Radix Tree for URL routing, which is faster than any other data structures. Also, cottage uses technique called "middleware precomposition", which precomposes middleware only at first time, not the every runtime.