NanoID – Alternative To UUID

Hey coders ?

If you are a JavaScript developer, I am pretty much sure that you have used the npm package UUID at least once in your development journey.

For those who don’t know what is UUID. It is an npm package to generate a unique string ID. Simi…


This content originally appeared on DEV Community and was authored by Bibek

Hey coders ?

If you are a JavaScript developer, I am pretty much sure that you have used the npm package UUID at least once in your development journey.

For those who don't know what is UUID. It is an npm package to generate a unique string ID. Similar packages are available in other languages too.

But in this article I am not going to discuss UUID, rather I will discuss another awesome npm package to generate a unique ID known as NanoID.

What is NanoID?

A tiny, secure, URL-friendly, unique string ID generator for JavaScript.

Why NanoID?

  • It is smaller in size as it has no dependencies.
  • It is 60% faster than UUID.
  • It uses cryptographically strong random APIs.
  • It uses a larger alphabet than UUID (A-Za-z0-9_-).

We can control the behaviour of alphabets to be used.

NanoID is available in almost all the most used programming languages.

Disclaimer: All the above claims are picked from the package's docs itself. ?

Implementation

It is very easy to implement. Will write the code in a Node.js environment using CommonJS import.

Basic Way

It will generate the ID synchronously.

// Importing
const { nanoid } = require("nanoid");

// It will generate and return an ID with 21 characters
const id = nanoid();

Async way

It will generate the ID asynchronously.

// Importing async API
const { nanoid } = require("nanoid/async");

// It will generate and return an ID with 21 characters
const id = await nanoid();

Custom Size

You can also pass the required ID's size as an argument.

// Importing
const { nanoid } = require("nanoid");

// It will generate and return an ID with 10 characters
const id = nanoid(10);

Reducing the size will increase the collisions probability.

Non-Secure

If you want performance and not concerned with security, then you can use the non-secure way.

// Importing non-secure API
const { nanoid } = require("nanoid/non-secure");

const id = nanoid();

Custom Character or Size

You can control what characters you want to be included in your ID.

// Importing customAlphabet API
const { customAlphabet } = require("nanoid");

// First Param: Characters
// Second Param: ID size
const nanoid = customAlphabet("123456789qwerty", 8);

// Generated ID would be like: "q15y6e9r"
const id = nanoid();

You can also use the customAlphabet with async way and non-secure way.

// Importing async API
const { customAlphabet} = require("nanoid/async");

// Importing non-secure API
const { customAlphabet} = require("nanoid/non-secure");

You can also check for the ID collision probability here.

Thank you for reading ?

If you enjoyed this article or found it helpful, give it a thumbs-up ?

Feel free to connect ?

Twitter | Instagram | LinkedIn


This content originally appeared on DEV Community and was authored by Bibek


Print Share Comment Cite Upload Translate Updates
APA

Bibek | Sciencx (2021-05-23T16:15:46+00:00) NanoID – Alternative To UUID. Retrieved from https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/

MLA
" » NanoID – Alternative To UUID." Bibek | Sciencx - Sunday May 23, 2021, https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/
HARVARD
Bibek | Sciencx Sunday May 23, 2021 » NanoID – Alternative To UUID., viewed ,<https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/>
VANCOUVER
Bibek | Sciencx - » NanoID – Alternative To UUID. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/
CHICAGO
" » NanoID – Alternative To UUID." Bibek | Sciencx - Accessed . https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/
IEEE
" » NanoID – Alternative To UUID." Bibek | Sciencx [Online]. Available: https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/. [Accessed: ]
rf:citation
» NanoID – Alternative To UUID | Bibek | Sciencx | https://www.scien.cx/2021/05/23/nanoid-alternative-to-uuid/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.