{"_id":"scuid","_rev":"252398","name":"scuid","description":"Collision-resistant IDs optimized for horizontal scaling and performance","dist-tags":{"latest":"1.1.0"},"maintainers":[{"name":"npm:jhermsmeier","email":""}],"time":{"modified":"2021-06-03T16:16:00.000Z","created":"2016-10-30T16:04:11.608Z","1.1.0":"2018-02-04T23:31:14.503Z","1.0.2":"2017-08-26T20:44:45.554Z","1.0.1":"2016-10-30T16:04:11.608Z"},"users":{},"author":{"name":"Jonas Hermsmeier","email":"jhermsmeier@gmail.com","url":"https://jhermsmeier.de"},"repository":{"type":"git","url":"git+https://github.com/jhermsmeier/node-scuid.git"},"versions":{"1.1.0":{"name":"scuid","version":"1.1.0","description":"Collision-resistant IDs optimized for horizontal scaling and performance","author":{"name":"Jonas Hermsmeier","email":"jhermsmeier@gmail.com","url":"https://jhermsmeier.de"},"license":"MIT","keywords":["id","cuid","uid","unique","uuid","guid","rng","prng"],"main":"lib/scuid.js","dependencies":{},"devDependencies":{"cuid":"^2.0.2","matcha":"^0.7.0","tap-diff":"^0.1.1","tape":"^4.8.0","tape-catch":"^1.0.6"},"peerDependencies":{},"optionalDependencies":{},"homepage":"https://github.com/jhermsmeier/node-scuid","repository":{"type":"git","url":"git+https://github.com/jhermsmeier/node-scuid.git"},"bugs":{"url":"https://github.com/jhermsmeier/node-scuid/issues"},"scripts":{"benchmark":"matcha --reporter plain","test":"tape test/*.js | tap-diff"},"gitHead":"84e96962ff5eaae2ab2bcc2a9fae615e15204695","_id":"scuid@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jhermsmeier","email":"jhermsmeier@gmail.com"},"dist":{"shasum":"d3f9f920956e737a60f72d0e4ad280bf324d5dab","size":3453,"noattachment":false,"key":"/scuid/-/scuid-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/scuid/download/scuid-1.1.0.tgz"},"maintainers":[{"name":"npm:jhermsmeier","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scuid-1.1.0.tgz_1517787073542_0.455530728911981"},"directories":{},"publish_time":1517787074503,"_hasShrinkwrap":false,"_cnpm_publish_time":1517787074503},"1.0.2":{"name":"scuid","version":"1.0.2","description":"Collision-resistant IDs optimized for horizontal scaling and performance","author":{"name":"Jonas Hermsmeier","email":"jhermsmeier@gmail.com","url":"https://jhermsmeier.de"},"license":"MIT","keywords":["id","cuid","uid","unique","uuid","guid","rng","prng"],"main":"lib/scuid.js","dependencies":{},"devDependencies":{"cuid":"^1.3.8","matcha":"^0.7.0","tap-diff":"^0.1.1","tape":"^4.8.0","tape-catch":"^1.0.6"},"peerDependencies":{},"optionalDependencies":{},"homepage":"https://github.com/jhermsmeier/node-scuid","repository":{"type":"git","url":"git+https://github.com/jhermsmeier/node-scuid.git"},"bugs":{"url":"https://github.com/jhermsmeier/node-scuid/issues"},"scripts":{"benchmark":"matcha --reporter plain","test":"tape test/*.js | tap-diff"},"gitHead":"73fbe68b5d662fe0a251841e2e375ec9a9d656c1","_id":"scuid@1.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"jhermsmeier","email":"jhermsmeier@gmail.com"},"dist":{"shasum":"3e62465671a0b87435e3a377957a20e45aac5b40","size":3447,"noattachment":false,"key":"/scuid/-/scuid-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/scuid/download/scuid-1.0.2.tgz"},"maintainers":[{"name":"npm:jhermsmeier","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scuid-1.0.2.tgz_1503780284582_0.6325753268320113"},"directories":{},"publish_time":1503780285554,"_cnpm_publish_time":1503780285554,"_hasShrinkwrap":false},"1.0.1":{"name":"scuid","version":"1.0.1","description":"Collision-resistant IDs optimized for horizontal scaling and performance","author":{"name":"Jonas Hermsmeier","email":"jhermsmeier@gmail.com","url":"https://jhermsmeier.de"},"license":"MIT","keywords":["id","cuid","uid","unique","uuid","guid","rng","prng"],"main":"lib/scuid.js","dependencies":{},"devDependencies":{"cuid":"~1.3.8","matcha":"~0.7.0","tap-diff":"~0.1.1","tape":"~4.6.2","tape-catch":"~1.0.6"},"peerDependencies":{},"optionalDependencies":{},"homepage":"https://github.com/jhermsmeier/node-scuid","repository":{"type":"git","url":"git+https://github.com/jhermsmeier/node-scuid.git"},"bugs":{"url":"https://github.com/jhermsmeier/node-scuid/issues"},"scripts":{"benchmark":"matcha --reporter plain","test":"tape test/*.js | tap-diff"},"gitHead":"fdfe3785bc6478a67fb4a07609e54805cc71b045","_id":"scuid@1.0.1","_shasum":"98f7cfc7484ac5f8214c88f8fec01ec7df350901","_from":".","_npmVersion":"2.15.11","_nodeVersion":"7.0.0","_npmUser":{"name":"jhermsmeier","email":"jhermsmeier@gmail.com"},"dist":{"shasum":"98f7cfc7484ac5f8214c88f8fec01ec7df350901","size":3455,"noattachment":false,"key":"/scuid/-/scuid-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/scuid/download/scuid-1.0.1.tgz"},"maintainers":[{"name":"npm:jhermsmeier","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/scuid-1.0.1.tgz_1477843451063_0.26122008240781724"},"directories":{},"publish_time":1477843451608,"_cnpm_publish_time":1477843451608,"_hasShrinkwrap":false}},"readme":"# scuid\n[![npm](https://img.shields.io/npm/v/scuid.svg?style=flat-square)](https://npmjs.com/package/scuid)\n[![npm license](https://img.shields.io/npm/l/scuid.svg?style=flat-square)](https://npmjs.com/package/scuid)\n[![npm downloads](https://img.shields.io/npm/dm/scuid.svg?style=flat-square)](https://npmjs.com/package/scuid)\n[![build status](https://img.shields.io/travis/jhermsmeier/node-scuid.svg?style=flat-square)](https://travis-ci.org/jhermsmeier/node-scuid)\n\nCollision-resistant IDs optimized for horizontal scaling and performance.\n\nA slim, alternative, and compatible implementation of [cuid] for node,\nalso featuring a wide range of options, as well as custom random number generator support.\nIt can serve as a drop-in replacement, and is also faster than [cuid].\n\n[cuid]: https://github.com/ericelliott/cuid\n\n## Install via [npm](https://npmjs.com)\n\n```sh\n$ npm install --save scuid\n```\n\n## Usage\n\n```js\nvar scuid = require( 'scuid' )\n```\n\n**Generate an ID**\n\n```js\nvar id = scuid()\n> 'ciux3hs0x0000io10cusdm8r2'\n```\n\n**Generate a slug**\n\n```js\nvar slug = scuid.slug()\n> '6x1i0r0'\n```\n\n**Get the process' fingerprint**\n\n```js\nvar fingerprint = scuid.fingerprint()\n> 'io10'\n```\n\n**Use a custom (P)RNG**\n\n```js\n// Create a random number generator;\n// It has to have a method called `random`\nvar generator = {\n  random: function() {\n    return 5 // chosen by fair dice roll\n  }\n}\n\n// Create a custom scuid instance\nvar scuid = require( 'scuid' ).create({\n  rng: generator\n})\n```\n\n**Use other custom options**\n\nNote that fiddeling with these might make your IDs incompatible with [cuid]'s guarantees.\n\n```js\nvar scuid = require( 'scuid' ).create({\n  prefix: 'c', // the ID's prefix\n  base: 36, // radix used in .toString() calls (2-36)\n  blockSize: 4, // block size to pad and trim to\n  fill: '0', // block padding character\n  pid: process.pid, // process ID\n  fingerprint: scuid.createFingerprint( [pid], [hostname] ), // Machine fingerprint\n  rng: Math, // Random number generator\n})\n```\n\n## Tests\n\nJust like `cuid`, collision resistance for both – slugs and IDs – is tested\nover 1 million and 2 million iterations respectively.\nTo run the tests, run:\n\n```\n$ npm test\n```\n\n## Benchmarks\n\n```\n$ npm run benchmark\n```\n\n```\nscuid\n  id ............................................. 573,618 op/s\n  slug ........................................... 673,732 op/s\n  fingerprint .................................... 131,156,394 op/s\n\ncuid\n  id ............................................. 445,260 op/s\n  slug ........................................... 531,770 op/s\n  fingerprint .................................... 125,159,685 op/s\n```\n","_attachments":{},"homepage":"https://github.com/jhermsmeier/node-scuid","bugs":{"url":"https://github.com/jhermsmeier/node-scuid/issues"},"license":"MIT"}