|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- # yeast
-
- [](http://unshift.io)[](http://browsenpm.org/package/yeast)[](https://travis-ci.org/unshiftio/yeast)[](https://david-dm.org/unshiftio/yeast)[](https://coveralls.io/r/unshiftio/yeast?branch=master)[](https://webchat.freenode.net/?channels=unshift)
-
- [](https://saucelabs.com/u/yeast)
-
- Yeast is a unique id generator. It has been primarily designed to generate a
- unique id which can be used for cache busting. A common practice for this is
- to use a timestamp, but there are couple of downsides when using timestamps.
-
- 1. The timestamp is already 13 chars long. This might not matter for 1 request
- but if you make hundreds of them this quickly adds up in bandwidth and
- processing time.
- 2. It's not unique enough. If you generate two stamps right after each other,
- they would be identical because the timing accuracy is limited to
- milliseconds.
-
- Yeast solves both of these issues by:
-
- 1. Compressing the generated timestamp using a custom `encode()` function that
- returns a string representation of the number.
- 2. Seeding the id in case of collision (when the id is identical to the previous
- one).
-
- To keep the strings unique it will use the `.` char to separate the generated
- stamp from the seed.
-
- ## Installation
-
- The module is intended to be used in browsers as well as in Node.js and is
- therefore released in the npm registry and can be installed using:
-
- ```
- npm install --save yeast
- ```
-
- ## Usage
-
- All the examples assume that this library is initialized as follow:
-
- ```js
- 'use strict';
-
- var yeast = require('yeast');
- ```
-
- To generate an id just call the `yeast` function.
-
- ```js
- console.log(yeast(), yeast(), yeast()); // outputs: KyxidwN KyxidwN.0 KyxidwN.1
-
- setTimeout(function () {
- console.log(yeast()); // outputs: KyxidwO
- });
- ```
-
- ### yeast.encode(num)
-
- An helper function that returns a string representing the specified number. The
- returned string contains only URL safe characters.
-
- ```js
- yeast.encode(+new Date()); // outputs: Kyxjuo1
- ```
-
- ### yeast.decode(str)
-
- An helper function that returns the integer value specified by the given string.
- This function can be used to retrieve the timestamp from a `yeast` id.
-
- ```js
- var id = yeast(); // holds the value: Kyxl1OU
-
- yeast.decode(id); // outputs: 1439816226334
- ```
-
- That's all folks. If you have ideas on how we can further compress the ids
- please open an issue!
-
- ## License
-
- [MIT](LICENSE)
|