GitXplorerGitXplorer
d

proquint

public
44 stars
7 forks
1 issues

Commits

List of commits on branch master.
Unverified
a09ed3274705e6410fd1d6a896a09653ab5f4e48

Merge pull request #1 from naomik/master

ddeoxxa committed 11 years ago
Unverified
8fdeb4f8a9a253bdb9f4df9b7662f335210e4ede

Improve decode speed by ~50%; nbd

committed 11 years ago
Unverified
7614811fb8b16bfa47762b40f043a40198f3227b

add travis-ci stuff

ddeoxxa committed 11 years ago
Unverified
74eab03e8305fdb73cdcc5e00fda9f11fcb3704e

bump version

ddeoxxa committed 11 years ago
Unverified
830d9cd947c93cfc6e17ea0325bbc4b61641eb17

code import

ddeoxxa committed 11 years ago
Unverified
74c5d30eec12f01d47fb05a8958a5e5f88eccc5e

ignore node_modules

ddeoxxa committed 11 years ago

README

The README file for this repository.

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