bot18
Version:
A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f
68 lines (51 loc) • 1.61 kB
Markdown
idgen
-----
Minimal ID generator
[](http://travis-ci.org/carlos8f/node-idgen)
Features (vs. traditional UUIDs):
- Uses [base64url](http://tools.ietf.org/html/rfc4648#section-5) encoding
for compactness and readability. I think hex-based UUIDs are too long and
hard to identify at a glance. base64url works nicely in URLs and can
be generated from a Buffer.
- Supports deterministic IDs by passing in a Buffer, created using SHA or HMAC for example.
- Supports generating any length ID (adjust length to increase uniqueness or compactness).
- Can produce cryptographically secure random strings.
Install
=======
```bash
$ npm install idgen
```
Usage
=====
```javascript
var idgen = require('idgen');
// simple 8-character opaque id
idgen(8);
// returns: 1WWQ1OEc
// more collision-proof 16-character id:
idgen(16);
// returns: C1574ad7cX6ztPsD
// from a Buffer:
idgen(Buffer('8da307895368fcca53995503407f950c3291eb1d34af51237f500ac7e5bdf009', 'hex'));
// returns: jaMHiVNo_MpTmVUDQH-VDDKR6x00r1Ejf1AKx-W98Ak
// to get the Buffer back,
Buffer('jaMHiVNo_MpTmVUDQH-VDDKR6x00r1Ejf1AKx-W98Ak', 'base64').toString('hex')
// returns: 8da307895368fcca53995503407f950c3291eb1d34af51237f500ac7e5bdf009
// from a Buffer, truncated to 16 characters:
idgen(16, Buffer('8da307895368fcca53995503407f950c3291eb1d34af51237f500ac7e5bdf009', 'hex'));
// returns: jaMHiVNo_MpTmVUD
```
CLI version
===========
```bash
$ npm install -g idgen
$ idgen
1WWQ1OEc
$ idgen 16
C1574ad7cX6ztPsD
$ echo -n "carlos" | idgen
Y2FybG9z
```
License
=======
MIT