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
On Windows, you may need to specify path to your OpenSSL installation:
npm install --openssl-root=/path/to/openssl
(Note: For a version compatible with nodejs v4, npm install simpleflake@1.0.1
)
Use
Generate an id using current time and a random sequence number:
var flake = ;var id = ; // <Buffer 34 62 a7 d5 c7 36 7c b9>id; // '3462a7d5c7367cb9'id; // '9mCpPjW7D5a'id; // '3774763974302006457'
Generate an id using deterministic time and sequence:
var id = ; // <Buffer 33 bf f7 7e 00 00 00 01>
Parse an id into its time and sequence components:
flake; // [ 1396671731598, 3570873 ]flake; // [ 1396671731598, 3570873 ]flake; // [ 1396671731598, 3570873 ]
Customise generation options (default values shown):
flakeoptionsepoch = Date;flakeoptionstimebits = 41;