msgpack-js-v5-ng
v0.3.0-v5
Published
msgpack encoder and decoder in pure javascript based on creationix/msgpack-js updated to match the new v5 specification with string support.
Downloads
1
Readme
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.
- New spec: https://github.com/msgpack/msgpack/blob/master/spec.md
- Old spec: https://github.com/msgpack/msgpack/blob/master/spec-old.md
Please feel free to open issues/pull requests for support/discussion.
INSTALL
$ npm i msgpack-js-v5 --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.