optimal-id
is a small optimized library that generates an optimized string based id value suitable for nosql database unique keys.
It is based upon the research and works of Peter Zaitsev and Karthik Appigatla.
Assuming a standard v1 UUID of "4a6b9f70-b678-11eb-a7b6-032e6afcbc8e"
This code provides the string "11ebb6784a6b9f70a7b6032e6afcbc8e"
- rearranges bytes of timestamp for ordered ids
- removes separator dash characters because we don't need to waste 4 bytes per id
- zero third-party dependency libraries for a smaller payload
Install the package into your project.
npm install --save optimal-id
yarn add optimal-id
optimal-id
- module exported from npm packageoptId
- interface exported from modulegenerate
- function that returns optimal idsoptId.generate(numIds?: number): OptimalId[]
OptimalId
- type exported from module if using TypeScript
var optId = require('optimal-id').optId;
// generate one id
var id = optId.generate()[0];
// generate multiple ids
var NUM_IDS_TO_GENERATE = 100;
var ids = optId.generate(NUM_IDS_TO_GENERATE);
or
const { optId } = require('optimal-id');
// generate one id
const [id] = optId.generate();
// generate multiple ids
const NUM_IDS_TO_GENERATE = 100;
const ids = optId.generate(NUM_IDS_TO_GENERATE);
or
import { optId, OptimalId } from 'optimal-id';
// generate one id
const [id]: OptimalId[] = optId.generate();
// generate multiple ids
const NUM_IDS_TO_GENERATE = 100;
const ids: OptimalId[] = optId.generate(NUM_IDS_TO_GENERATE);
This library has been developed by Richard Marks, is copyright 2021, and licensed under the MIT License.
See LICENSE.md for full legal details.
This library depends on Node.js being built with support for the crypto
module.