- ×
✨ The simple web framework for Node.js with zero dependencies.
Filed under application tools › frameworksShow Allpure-http
Bring the middleware and router to native http.
Installation
$ npm install --save pure-http
Usage
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);
Application Options:
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 from3.0.0
).Default:
((error, req, res) => res.send(error))
.onNotFound
: A handler when no route definitions were matched (Deprecated: It has been removed from3.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
.
Router
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);
API References
You can read more at API.md.
Benchmarks
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.
- Machine: Ubuntu-s-1vcpu-1gb-sgp1-01, x86-64, Ubuntu 18.04.5 LTS, Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, 16GB RAM.
- Node:
v12.18.4
- Run: Tue, 16 Mar 2021 16:09:01
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 - Machine: Ubuntu-s-1vcpu-1gb-sgp1-01, x86-64, Ubuntu 18.04.5 LTS, Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, 16GB RAM.
- Node:
v12.18.4
- Run: Fri, 13 Nov 2020 21:07:21
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
License
The code in this project is released under the MIT License.