DEV Community

Cover image for Codebytes: Shorter UUIDs with collision prediction using nanoid
prakash chokalingam
prakash chokalingam

Posted on

3 1

Codebytes: Shorter UUIDs with collision prediction using nanoid

To generate an unique ID most of us use npm libraries and node utils like uuid, crypto.randomUUID. One of the major cons is these IDs are larger in size and the shorter UUID generation will increase the probability of duplicate IDs.

Here comes the saviour, nanoid - A tiny, secure, URL-friendly, unique string ID generator for JavaScript.

Since the bigger alphabet is being used in the UUID generation, nanoid can generate random unique ids within 21 chars.

And its 2x faster and safer than other UUID generators.

Wait... This will blow your mind!

mind blown

Nanoid is completely configurable from size to char's, to be used while generating the UUIDs. Then how does it avoid the probability of duplication? It comes with a collision calculator which helps to predict the probability of collision based on configuration.
collision calculator

It has support for various other programming languages. Checkout this awesome repo:

GitHub logo ai / nanoid

A tiny (124 bytes), secure, URL-friendly, unique string ID generator for JavaScript

Nano ID

Nano ID logo by Anton Lovchikov

English | Русский | 简体中文 | Bahasa Indonesia

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

“An amazing level of senseless perfectionism which is simply impossible not to respect.”

  • Small. 116 bytes (minified and brotlied). No dependencies Size Limit controls the size.
  • Safe. It uses hardware random generator. Can be used in clusters.
  • Short IDs. It uses a larger alphabet than UUID (A-Za-z0-9_-). So ID size was reduced from 36 to 21 symbols.
  • Portable. Nano ID was ported to over 20 programming languages.
import { nanoid } from 'nanoid'
model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
Enter fullscreen mode Exit fullscreen mode

  Made at Evil Martians, product consulting for developer tools.


Table of Contents

Image of Timescale

📊 Benchmarking Databases for Real-Time Analytics Applications

Benchmarking Timescale, Clickhouse, Postgres, MySQL, MongoDB, and DuckDB for real-time analytics. Introducing RTABench 🚀

Read full post →

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Explore a trove of insights in this engaging article, celebrated within our welcoming DEV Community. Developers from every background are invited to join and enhance our shared wisdom.

A genuine "thank you" can truly uplift someone’s day. Feel free to express your gratitude in the comments below!

On DEV, our collective exchange of knowledge lightens the road ahead and strengthens our community bonds. Found something valuable here? A small thank you to the author can make a big difference.

Okay