T-CREATOR

UUIDより短いユニークなIDを生成できるnpmライブラリnanoidの使い方

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

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

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

UUIDとの違い

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

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

Benchmark

zsh$ 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でインストールします。

zsh$ yarn add nanoid

IDを生成

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

javascriptimport { nanoid } from 'nanoid';

//デフォルトの長さ21文字でIDを生成する
const id = nanoid()

//長さを10文字に変更してIDを生成する
const shortId = nanoid(10)

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

javascriptimport { customAlphabet } from 'nanoid';

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

以上になります。

記事Article

もっと見る