短いUUIDを生成できるnpmライブラリnanoidの使い方

JavaScriptTypeScriptnpm
短いUUIDを生成できるnpmライブラリnanoidの使い方
Memo
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

nanoidはランダムで生成された短い文字列を作成するためのnpmライブラリです。
一意のIDの生成に利用でき一般的に利用されるUUIDより短い文字数で生成が可能です。

UUIDとの違い

UUIDは、ランダム性の高いバージョン4のUUIDや、時刻やMACアドレスなどから生成されるバージョン1のUUIDなど、さまざまなバージョンがあります。
また、UUIDは、16進数の32文字(ハイフンを除く)で表されます。

一方、nanoidは、ランダムで生成された短い文字列を作成するためのライブラリで、生成される文字列はURLセーフであり、A-Za-z0-9_-の64文字からなります。
文字列の長さは、デフォルトで21文字ですが、その長さを変更することもできます。

Benchmark

$ node ./test/benchmark.js
crypto.randomUUID         21,119,429 ops/sec
uuid v4                   20,368,447 ops/sec
@napi-rs/uuid             11,493,890 ops/sec
uid/secure                 8,409,962 ops/sec
@lukeed/uuid               6,871,405 ops/sec
nanoid                     5,652,148 ops/sec
customAlphabet             3,565,656 ops/sec
secure-random-string         394,201 ops/sec
uid-safe.sync                393,176 ops/sec
shortid                       49,916 ops/sec

Async:
nanoid/async                 135,260 ops/sec
async customAlphabet         136,059 ops/sec
async secure-random-string   135,213 ops/sec
uid-safe                     119,587 ops/sec

Non-secure:
uid                       58,860,241 ops/sec
nanoid/non-secure          2,744,615 ops/sec
rndm                       2,718,063 ops/sec

使い方

インストール

yarnコマンドまたはnpmでインストールします。

terminal
$ yarn add nanoid

IDを生成

インストールしたライブラリをimportして利用します。

javascript
import { nanoid } from 'nanoid'; //デフォルトの長さ21文字でIDを生成する const id = nanoid() //長さを10文字に変更してIDを生成する const shortId = nanoid(10)

利用する文字列を指定してIDを生成することも可能です

import { customAlphabet } from 'nanoid';

//A-Za-z0-9の62文字を使用して長さ10文字のIDを生成する
const alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
const customId = customAlphabet(alphabet, 10)()

以上になります。

終わりに

最後までご覧いただきありがとうございます。
この記事では短いUUIDを生成できるnpmライブラリnanoidの使い方について紹介させていただきました。

これからも皆様の開発に役立つ情報を提供していきたいと考えています。
今後ともよろしくお願いいたします。