The Node.js performance palette


Performance is far from everything in a business, but what exactly is productivity worth if what you produce is absolute garbage? There is a balance between performance and productivity and you can easily tip the scale either way if not being cautious. One of the biggest mistakes is blindly following others without any kind of scepticism, such as blindly using the project with the most GitHub stars.

This list employs critical thinking by putting the most overhyped Node.js modules under the microscope and assigning them a score based on benchmarking results. Grades are meant to be rough pointers and should always be validated with your own benchmarks.

Meaning Symbol
Very good 👌
Good 👍
Not good 😐
Very bad 👎
Absolutely horrible 💩
Most used :octocat:
Delusive :trollface:
Biased 💲

HTTP routers and helpers

Project Grade Extra
Sails.js 💩
Hapi.js 💩
Express.js 👎 :octocat:
Koa.js 👎
Fastify 👍 Focuses on faster JSON serialization
Polka 👌 Aims to be a drop-in replacement of Express.js

"Real-time" pub/sub, wrappers and helpers

Project Grade Extra
Socket.IO 💩 :octocat: :trollface:
Engine.IO 💩
Feathers.js 💩
SocketCluster 👎
Primus 😐

WebSocket implementations

Project Grade Extra
faye-websocket-node 👎
websockets/ws 😐 :octocat:
turbo-ws 💩 :trollface:
websocket-node 👎
uws 👌 💲

Parsers, validators & formatters

Project Grade Extra
csv-parser 👍
node-csv 💩 :octocat:
micnic/uv 💩 :trollface:

Database connectors

todo

  • Mongoose?
  • MongoDB?
  • Redis?