DEV Community

Cover image for Why you should ditch NPM UUIDv4. Faster and native, Node has you covered!
👨‍💻Pierre-Henry ✨
👨‍💻Pierre-Henry ✨

Posted on Edited on

Why you should ditch NPM UUIDv4. Faster and native, Node has you covered!

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.

Benchmark UUID VS Crypto RandomUUID

crypto.randomUUID(): 518.735ms
uuid.v4(): 532.768ms
⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025 ⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025

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
⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025 ⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025

Note

crypto.randomUUID() only generates UUIDv4 (random UUIDs), not UUIDv7 for instance. To generate UUIDv7, you need to use a library like uuid.


Top comments (4)

⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025
 
pierre profile image
👨‍💻Pierre-Henry ✨ • Edited

I can't wait to hear your thoughts and options! Do you use UUID package or the native crypto.randomUUID() 😊 Share them by commenting on this article 🤗

⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025
 
aberba profile image
Lawrence Aberba

The re several version of UUID v3, v5,... v7 whihc uuid package supports

⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025
 
pierre profile image
👨‍💻Pierre-Henry ✨ • Edited

@aberba To answer to your question, crypto.randomUUID() only generates UUIDv4 (random UUIDs), not v5, v7, ...

⭐ Must Read: pierre/you should ditch uuid node has you covered i - Kapook Update 2025
 
pierre profile image
👨‍💻Pierre-Henry ✨

@aberba Btw, I've just published on article you might like regarding GUID v7
dev.to/pierre/why-its-time-to-ditc...