*Image is not under MIT license (c) [Cryptid-Creations](http://cryptid-creations.deviantart.com/)*
- zero dependencies!
- aiming for 100% test coverage, currently @ ~70%
- express.js syntax like with raw http performance
- setup & middlewares should work right out of the box with your expressjs project
- this is still "work in progress"!
- improving performance for inc. connections (not better than expressjs on benchmark results with keep-alive missing)
- implement more express apis, a lot of stuff is still missing e.g. res.type(), app.disable()
- implement custom cookie, query & body parser that can be toggled via config
- microbench to reach 99,5% performance of raw http module
- improve test coverage to 100%
- via
npm start
- via
npm test
npm run benchmark sandshark
npm run benchmark express
npm run benchmark raw
npm run benchmark restify
npm run benchmark hapi
-
or run all benchmarks in comparison via
npm run benchmarks
ornpm run benchmark all
-
to compare expressjs and sandshark run
npm run compare
-
each benchmark will spawn a server and worker making requests in their own child processes
-
the loadtest worker is limited to a single thread and makes at least 2500 requests
-
the benchmarks currently lack additional features such as body parsing, query params, path variables and cookies
-
there is a good chance to have far more place for optimizations
-
since hapi feels rather slow, feel free to send a pull requests if you think that I got something wrong
- on a MacBook Air 11' 2014 Intel i5 quad @ 1.4 GHz
- node version 6.5.0 & server modules are present in package.json devDependencies
[
{ raw: 1725 },
{ sandshark: 1692 },
{ express: 1223 },
{ restify: 1084 },
{ hapi: 687 }
]
- with keep-alive turned off
[
{ express: 488 },
{ raw: 426 },
{ sandshark: 373 },
{ restify: 318 },
{ hapi: 314 }
]
- i started this project after reading Node Performance hapi vs express vs restify
- since their benchmarks are from March 2015, i guess they are outdated ;)
- in their benchmarks raw http performance hits 8500 req/s and express only 3000 req/s
- my benchmarks actually show expressjs way closer to raw http performance so another guess is that their benchmarks contain possible errors, sadly they have not posted them online
- i would love to have further discussions on this, so please feel free to open issues or hit me up on twitter @silentleave or my website