@zenginehq/uclid
v1.2.3
Published
<div align="center">
Downloads
209
Keywords
Readme
Universally Unique, Compact, Lexicographically Sortable Identifier
UUID can be suboptimal for many uses-cases because:
- It isn't the most character efficient way of encoding 128 bits of randomness
- UUID v1/v2 is impractical in many environments, as it requires access to a unique, stable MAC address
- UUID v3/v5 requires a unique seed and produces randomly distributed IDs, which can cause fragmentation in many data structures
- UUID v4 provides no other information than randomness which can cause fragmentation in many data structures
Instead, herein is proposed UCLID:
- 128-bit compatibility with UUID
- 1.21e+24 unique UCLIDs per millisecond
- Lexicographically sortable!
- Canonically encoded as a 22 character string, as opposed to the 36 character UUID
- Uses Bitcoin's base58 for better efficiency and readability (6 bits per character) (URL safe)
- Monotonic sort order (correctly detects and handles the same millisecond)
Installation
npm install --save uclid
Import
TypeScript, ES6+, Babel, Webpack, Rollup, etc.. environments
import { uclid } from 'uclid'
uclid() // 1C4qEmGwVVz7hL4r2TrphQ
CommonJS environments
const UCLID = require('uclid')
UCLID.uclid()
Usage
To generate a UCLID, simply run the function!
import { uclid } from 'uclid'
uclid() // 1C4qEmGwfjYxZH4uS31jbg