Bring the middleware and router to native http.
 
$ npm install --save pure-http
Basic server:
const pureHttp = require('pure-http');
const app = pureHttp();
app.get('/', (req, res) => {
  res.send('Hello world');
});
app.listen(3000);
Existing server:
const http = require('http');
const pureHttp = require('pure-http');
const server = http.createServer();
const app = pureHttp({ server });
app.listen(3000);
Secure server:
const https = require('https');
const pureHttp = require('pure-http');
const server = https.createServer({
  key: ...,
  cert: ...,
});
const app = pureHttp({ server });
app.listen(3000);
server: Allows to optionally override the HTTP server instance to be used.
Default:
undefined.
onError: A handler when an error is thrown (Deprecated: It has been removed from 3.0.0).
Default:
((error, req, res) => res.send(error)).
onNotFound: A handler when no route definitions were matched (Deprecated: It has been removed from 3.0.0).
Default:
((req, res) => res.send("Cannot " + req.method + " " + req.url)).
views: An object to configuration render function.
Default:
undefined.
dir: A directory for the application’s views.
ext: The default engine extension to use when omitted.
engine: Registers the given template engine.
Router Options:
prefix: Allow append the path before each route.
Default:
undefined.
const { Router } = require('pure-http');
const router = Router();
router.get('/', (req, res) => {
  res.send('Hello world');
});
/* ... */
const pureHttp = require('pure-http');
const app = pureHttp();
app.use('/api', router);
app.listen(3000);
You can read more at API.md.
Please remember that your application code is most likely the slowest part of your application! Switching from Express to pure-http will (likely) not guarantee the same performance gains.
v12.18.4| Framework | Version | Requests/Sec | Latency | 
|---|---|---|---|
| pure-http (with cache) | latest | ~ 6,349 | 15.11ms | 
| pure-http | latest | ~ 6,255 | 15.39ms | 
| tinyhttp | 1.2.17 | ~ 4,942 | 19.44ms | 
| fastify | 3.14.0 | ~ 3,310 | 29.10ms | 
| express | 4.17.1 | ~ 2,188 | 43.87ms | 
v12.18.4| Framework | Version | Requests/Sec | Latency | 
|---|---|---|---|
| pure-http (with cache) | 2.x.x | ~ 8,792 | 10.92ms | 
| pure-http | 2.x.x | ~ 8,633 | 11.12ms | 
| polka | 0.5.2 | ~ 7,364 | 13.03ms | 
| express | 4.17.1 | ~ 3,588 | 26.86ms | 
| fastify | 3.8.0 | ~ 2,702 | 35.54ms | 
See more: BENCHMARKS
The code in this project is released under the MIT License.