Skip to content
/ attoid Public

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

License

Notifications You must be signed in to change notification settings

xxczaki/attoid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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