node-simpleflake
Distributed id generation for the lazy. Inspired by this article.
Generates ids consisting of a 41 bit time (millisecond precision with custom
epoch) followed 23 random bits. Result is a Buffer
with an added feature
of base58 and base10 conversions for producing compact and readable strings.
Custom epoch starts on 2000-01-01T00:00:00.000Z, which should be good until
around mid-2069.
Install
npm install simpleflake
Use
Generate an id using current time and a random sequence number:
var flake = require('simpleflake');
var id = flake();
id.toString('hex');
id.toString('base58');
id.toString('base10');
Generate an id using deterministic time and sequence:
var id = flake(Date.UTC(2014, 1, 1), 1);
Parse an id into its time and sequence components:
flake.parse(id);
flake.parse('9mCpPjW7D5a', 'base58');
flake.parse('3774763974302006457', 'base10');
Customise generation options (default values shown):
flake.options.epoch = Date.UTC(2000, 0, 1);
flake.options.timebits = 41;
License
MIT