trimid
v4.1.0
Published
A small unique id generator that is inspired by mongodb ObjectId with some modifications
Downloads
31
Readme
TrimId
Introduction
The trimid is an identifier generation system which provide mongodb's ObjectId system with following modifications.
- 5 bytes to store timestamp value (which will result in the date of 36812-02-20 UTC)
- 4 bytes to store machine id (which is a fnv1a32 hash of hostname by default)
- 4 bytes to store process / subprocess / thread identifier (which is a fnv1a32 hash of the process/thread ids)
- 3 bytes to store incrementing counter, which is randomly initialized
Installation
Use the following command to install the module:
npm install trimid
Usages
// Grab trimid module
const TrimId = require('trimid');
// Generate new trimid
const new_id = TrimId.NEW;
// Convert id to a comparable string (base32hex format)
const string_id = new_id.toString(); //01i20mgo1b3toqjm7oa21erbis
// Restore an trimid instance from base32hex string
const restore_id = TrimId.from('01i20mgo1b3toqjm7oa21erbis');
// Use the following statment if you want to change machine id and session id
TrimId._base('some hostname', `new_session_id,${process.pid}.${process.ppid}`);
// The generated id's machine id and session id will be changed
const id_with_new_machine_id = Trim.NEW;
Cli Usage
This module also provides a command that allow user generates a new uniqid string via CLI. To use the command, install the module globally first.
npm install -g trimid
The use the following command to generate base32hex uniqid string
uniqid
Or if you want to generate binanry stream and perform custom encoding yourself.
uniqid --binary | base64