0.10.0 • Published 9 years ago
msgpack-javascript v0.10.0
msgpack-javascript
JavaScript ES6 implementation of the MessagePack protocol.
Design Goals
- Isomorphic
- Single codebase to serve both Browser and Node environments
- Future Ready
- Source and tests written in ES6
Installation
npm i msgpack-javascript
Basic Usage
Import
import {Packer, Unpacker} from 'msgpack-javascript';
Pack
let packer = new Packer();
packer.packNil();
packer.packBoolean(true);
packer.packInt(0);
packer.packInt(255);
packer.packInt(65535);
packer.packInt(-2147483648);
packer.packInt(Date.now());
packer.packFloat(1.4e-45);
packer.packDouble(4.9e-324);
packer.packString('yo fibre');
packer.packArray([0, true, 'p']);
packer.packBinary([0, 10, 255]);
packer.packMap(new Map([[0, 'foo'], [1, 'bar']]));
Unpack
let unpacker = new Unpacker(packer.getBytes()),
actual = {};
unpacker = new Unpacker(packer.getBytes());
actual.nil = unpacker.unpackNil();
actual.boolean = unpacker.unpackBoolean();
actual.fixnum = unpacker.unpackInt();
actual.byte = unpacker.unpackInt();
actual.short = unpacker.unpackInt();
actual.int = unpacker.unpackInt();
actual.long = unpacker.unpackInt();
actual.float = unpacker.unpackFloat();
actual.double = unpacker.unpackDouble();
actual.string = unpacker.unpackString();
actual.array = unpacker.unpackArray();
actual.binary = unpacker.unpackBinary();
actual.map = unpacker.unpackMap();
Reflect
Packer.packValue allows packing of any value that may be identified as one of the standard value types (excluding Extended).
let packer = new Packer();
packer.packValue(); // packs nil
packer.packValue(true); // packs bool
packer.packValue(0); // packs pos fixint
packer.packValue(255); // packs uint8
packer.packValue(65535); // packs uint16
packer.packValue(-2147483648); // packs int32
packer.packValue(Date.now()); // packs uint64
packer.packValue(3.4028234 * Math.pow(10, 38)); // packs float32
packer.packValue(1.7976931348623157 * Math.pow(10, 308)); // packs float64
packer.packValue('yo fibre'); // packs fixed string
packer.packValue([0, true, 'p']); // packs fixed array
packer.packValue([0, 10, 255]); // packs bin8
packer.packValue(new Map([[0, 'foo'], [1, 'bar']])); // packs fixed map
packer.packValue({foo: 'bar'}); // throws error
Unpacker.unpackValue unpacks the next value by evaluating the prefix of the next byte to be read.
Type Mapping
Source Format => JavaScript Type
JavaScript Type => Output Format
64-bit Integers
Support for 64-bit integers is realised via npm package pg-long.
0.10.0
9 years ago
0.9.0
10 years ago
0.8.2
10 years ago
0.8.1
10 years ago
0.8.0
10 years ago
0.7.0
10 years ago
0.6.1
10 years ago
0.6.0
10 years ago
0.5.1
10 years ago
0.5.0
10 years ago
0.4.0
10 years ago
0.3.5
10 years ago
0.3.4
10 years ago
0.3.3
10 years ago
0.3.2
10 years ago
0.3.1
10 years ago
0.3.0
10 years ago
0.2.11
10 years ago
0.2.10
10 years ago
0.2.9
10 years ago
0.2.8
10 years ago
0.2.7
10 years ago
0.2.5
10 years ago
0.2.4
10 years ago
0.2.3
10 years ago
0.2.2
10 years ago
0.2.1
10 years ago
0.2.0
10 years ago