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
もっと見る- article
Dockerの利用していないゴミを掃除しディスクスペースを解放するいくつかのやり方を紹介
- article
Next.js のバンドルサイズを可視化する@next/bundle-analyzer の紹介
- article
VSCodeでTypescriptファイルのimport補完で相対パスではなくエイリアスするための設定
- article
【解決方法】TypeScript発生したTS2564 エラーの対処
- article
express で IP を取得する際などに利用する req.connection 非推奨(deprecated)の対処
- article
【解決方法】docker-composeでコンテナを立ち上げた際に発生するConflictエラーの対処