proquint

Identifiers that are readable, spellable, and pronounceable

npm install proquint
18 downloads in the last week
65 downloads in the last month

Proquint build status

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 = require("proquint");

var id = proquint.encode(Buffer([0x01, 0x02, 0x03, 0x04]));

console.log(id);

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.encode(buffer);
var encoded = proquint.encode(Buffer([0x01, 0x02]));

console.log(encoded);

decode

Decodes a proquint string into a buffer.

proquint.decode(string);
var buffer = proquint.decode("fahab-hasab");

console.log(buffer);

Example

Also see example.js.

// we're going to use the crypto module for getting random data
var crypto = require("crypto");

// this is proquint! go proquint!
var proquint = require("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 two
var id = crypto.randomBytes(8);

// buffers are awesome - they let us get nice hex strings to read
console.log(id.toString("hex"));

// here's how we encode a buffer
var encoded = proquint.encode(id);

// this guy is a regular old string
console.log(encoded);

// and this is the inverse!
var decoded = proquint.decode(encoded);

// another buffer!
console.log(decoded.toString("hex"));

Output:

1190b9a2591fb540
bikad-fokor-zihoj-bajir
1190b9a2591fb540

License

3-clause BSD. A copy is included with the source.

Contact

npm loves you