simpleflake

    2.0.0 • Public • Published

    node-simpleflake

    travis   npm

    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 = require('simpleflake');
    var id = flake();                         // <Buffer 34 62 a7 d5 c7 36 7c b9>
    id.toString('hex');                       // '3462a7d5c7367cb9'
    id.toString('base58');                    // '9mCpPjW7D5a'
    id.toString('base10');                    // '3774763974302006457'

    Generate an id using deterministic time and sequence:

    var id = flake(Date.UTC(2014, 1, 1), 1);  // <Buffer 33 bf f7 7e 00 00 00 01>

    Parse an id into its time and sequence components:

    flake.parse(id);                                  // [ 1396671731598, 3570873 ]
    flake.parse('9mCpPjW7D5a', 'base58');             // [ 1396671731598, 3570873 ]
    flake.parse('3774763974302006457', 'base10');     // [ 1396671731598, 3570873 ]

    Customise generation options (default values shown):

    flake.options.epoch = Date.UTC(2000, 0, 1);
    flake.options.timebits = 41;

    License

    MIT

    Install

    npm i simpleflake

    DownloadsWeekly Downloads

    1,702

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    11.4 kB

    Total Files

    7

    Last publish

    Collaborators

    • simonratner