DEV Community

Cover image for Unique Identifiers: UUID vs NanoID
Răzvan Stătescu
Răzvan Stătescu

Posted on • Originally published at Medium

Unique Identifiers: UUID vs NanoID

I think every developer used unique identifiers at least once in their life. You can use those to generate a primary key in a database, a unique filename, etc.

In this article, I'll compare the popular UUID with the rising start NanoID.

UUID vs NanoID

UUID

This is one of the most popular libraries to generate unique identifiers right now.

  • It's small in size (483 bytes)
  • 11.6k starts on Github and over 59 million weekly downloads on NPM
  • It has zero dependencies
  • Supports for CommonJS, ECMAScript Modules and CDN builds
  • Supports for all major browsers (including IE 11 😅)
  • It's secure and well documented

Quickstart

Install

npm install uuid

Generate UUID

ES6 syntax

import { v4 as uuidv4 } from 'uuid';
uuidv4(); 
Enter fullscreen mode Exit fullscreen mode

CommonJS syntax

const { v4: uuidv4 } = require('uuid');
uuidv4(); 
Enter fullscreen mode Exit fullscreen mode

NanoID

NanoID is a tiny, secure, URL-friendly, unique string ID generator for JavaScript.

It's not as popular as UUID but it has grown very fast in the last period and looks very promising. It has 14.5k starts on Github right now (more than UUID).

  • Very small in size (130 bytes - minified and gzipped)
  • No dependencies
  • 2 times faster than UUID
  • Safe (it uses a hardware random generator)
  • Shorter IDs (21 symbols) than UUID (because it uses a larger alphabet)
  • Available in 19 programming languages
  • Supports modern browsers, Node.js and React Native

Quickstart

Install

npm i nanoid

Generate NanoID

import { nanoid } from 'nanoid'
cosnt id = nanoid() 
Enter fullscreen mode Exit fullscreen mode

Conclusion

I've recently started using NanoID in my projects and it's working very well. I like the fact that the strings are shorter.

If you want to reach me, check out my twitter.


Article posted using bloggu.io. Try it for free.

Top comments (0)