In this post, you will see the reason why you shouldn't use anymore the uuid
NPM package anymore for generating Universally Unique Identifiers.
If you have worked income important backend NodeJS applications, you are probably familiar with the uuid
package. However, there is a less common, but core Node module called crypto
, available since NodeJS v14.17.
According to my benchmark, the core module randomUUID()
from node:crypto
performs better and quicker in terms of speed and reliability. Additionally, it is natively accessible in Node.js since v14.17 without the necessity of installing a 3rd-party package like uuid
.
Note: My benchmark was run with Node v18.18.1
// Run: node benchmark-uuid-vs-core-crypto.js
// native randomUUID crypto benchmark
const { randomUUID } = require("crypto");
console.time("crypto.randomUUID()");
for (let time = 0; time < 10_000_000; time++) {
randomUUID();
}
console.timeEnd("crypto.randomUUID()");
// uuid package benchmark
const { v4 } = require("uuid");
console.time("uuid.v4()");
for (let time = 0; time < 10_000_000; time++) {
v4();
}
console.timeEnd("uuid.v4()");
// note, I've used 10_000_000 with _ which are numeric separators
// https://github.com/pH-7/GoodJsCode#-clearreadable-numbers
Top comments (2)
I can't wait to hear your thoughts and options! 😊 Share them by commenting on this article 🤗
The re several version of UUID v3, v5,... v7 whihc uuid package supports