/attoid

Secure URL-friendly unique string ID generator in <8 LOC

Primary LanguageTypeScriptMIT LicenseMIT

Atto ID

Secure URL-friendly unique string ID generator in ~8 LOC.

Build Status Coverage Status XO code style

This module generates secure, URL-friendly and truly random IDs. It was inspired mainly by Nano ID. It uses the new crypto.randomInt method introduced in Node.js v14.10.0. Besides limited compatibility, the performance is also relatively low in comparison with similar libraries (about 20k ops/sec).


Highlights

  • Tiny size (<8 LOC)
  • Same default ID length as in Nano ID
  • Bigger default dictionary (includes 2 additional characters - ~ and .)
  • Uses the truly random Crypto API
  • URL-friendly
  • Ability to customize dictionary
  • Well tested
  • Written in TypeScript

Install

$ npm install attoid

Usage

import {attoid} from 'attoid';

attoid(); // => V_SiU1mrfle.wZD9YbBQ

API

attoid(length?, dictionary?)

Returns a random string.

length

Type: number
Default: 21

Length of the generated string.

dictionary

Type: string
Default: aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890-._~

Custom dictionary, from which the string should be generated.

License

MIT © Antoni Kepinski