The msgpack protocol implemented in pure node javascript.
JavaScript
Switch branches/tags
Pull request Compare This branch is 2 commits ahead, 7 commits behind chakrit:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
AUTHORS
README.markdown
msgpack.js
package.json
test.js

README.markdown

MSGPACK-JS-V5

Please see the original README.md from the source repository for more information.

This is a port of creationix/msgpack-js to support the new MsgPack v5 specification.

Please feel free to open issues/pull requests for support/discussion.

INSTALL

$ npm i msgpack-js-v5-ng --save

USAGE

var msgpack = require('msgpack-js-v5-ng');
var output = msgpack.decode(packed).value;

EXTENSION

Since there is no way to encode undefined inside the msgpack spec, an extension point is used for this purpose. Specifically, the fixext 1 type is used with all values being 0 to indicate undefined. On the wire, it requires 3 bytes and should looks like this:

0xd4 | 0x00 | 0x00

Where | is byte separator.

EXT / FIXEXT

Extensions are encoded/decoded to and from a simple 2-elements array tuple of the form [type, Buffer]. Where type is the msgpack extension type identifier and Buffer is the raw decoded value.

Special case for fixext 1 since it will always be 1-byte long a simple [type, value] is returned directly instead of wrapping it in node.js Buffer.

VERSIONING

This package will follows msgpack-js version for the time being. The version string will simply be appended with v5.

If and when this package diverges from the original, we can start our own versioning. Or this module could just be merged into the original msgpack-js module.