Proquint
Identifiers that are readable, spellable, and pronounceable.
Overview
A "proquint" (see here) is a method of encoding an integer (or really, a sequence of 0 or more 16-bit words) as a sequence of 5-character, pronounceable strings. This is to facilitate easy communication of the identifier via "wetware" (read: human) channels.
Note that because proquint operates on 16-bit (2-byte) words, all the buffers you put into it will need to have lengths that are multiples of 2. You'll probably get awesome stack traces if you don't. Yay!
Super Quickstart
Code:
var proquint = ; var id = proquint; console;
Output:
fahab-hasab
Installation
Available via npm:
$ npm install proquint
Or via git:
$ git clone git://github.com/deoxxa/proquint.git node_modules/proquint
API
encode
Encodes a buffer to a proquint string.
proquint;
var encoded = proquint; console;
decode
Decodes a proquint string into a buffer.
proquint;
var buffer = proquint; console;
Example
Also see example.js.
// we're going to use the crypto module for getting random datavar crypto = ; // this is proquint! go proquint!var proquint = ; // you can use whatever you like for this, as long as you can get the identifier// to fit into a buffer with a length that is a multiple of twovar id = crypto; // buffers are awesome - they let us get nice hex strings to readconsole; // here's how we encode a buffervar encoded = proquint; // this guy is a regular old stringconsole; // and this is the inverse!var decoded = proquint; // another buffer!console;
Output:
1190b9a2591fb540
bikad-fokor-zihoj-bajir
1190b9a2591fb540
License
3-clause BSD. A copy is included with the source.
Contact
- GitHub (deoxxa)
- Twitter (@deoxxa)
- ADN (@deoxxa)
- Email (deoxxa@fknsrs.biz)