hat === Generate random IDs and avoid collisions. ![hat](http://substack.net/images/hat.png) examples ======== hat --- ````javascript var hat = require('hat'); var id = hat(); console.log(id); ```` output: ```` 0c82a54f22f775a3ed8b97b2dea74036 ```` rack ---- ````javascript var hat = require('hat'); var rack = hat.rack(); console.log(rack()); console.log(rack()); ```` output: ```` 1c24171393dc5de04ffcb21f1182ab28 fabe2323acc1b559dee43d4a1e16cbeb ```` methods ======= var hat = require('hat'); hat(bits=128, base=16) ---------------------- Generate a random ID string with `bits` of data in a `base`. Leading zeros are appended such that all outputs for a given number of bits have equal length. var rack = hat.rack(bits=128, base=16, expandBy) ------------------------------------------------ Make a new hat rack. Call `rack()` repeatedly to generate new IDs which are checked for collisions. If `expandBy` is specified, increment `bits` by this amount if too many collisions occur. If `expandBy` isn't specified, `rack()` will throw if too many collisions occur during generation. Optionally call `var id = rack(data)` to store `data` at the new ID. You can get the data out again with `rack.get(id)` and set the data with `rack.set(id, value)`.