-
Notifications
You must be signed in to change notification settings - Fork 1
Home
uupaa edited this page Jul 1, 2015
·
23 revisions
MessagePack.js is MessagePack implementation.
It implements the following functions.
| MessagePack.js | msgpack.js | |
|---|---|---|
| MessagePack spec | 2013 Spec | 2010 Spec |
| FIX_INT | ✅ | ✅ |
| INT8 | ✅ | ✅ |
| INT16 | ✅ | ✅ |
| INT32 | ✅ | ✅ |
| INT64 | ✅ | ✅ |
| FIX_UINT | ✅ | ✅ |
| UINT8 | ✅ | ✅ |
| UINT16 | ✅ | ✅ |
| UINT32 | ✅ | ✅ |
| UINT64 | ✅ | ✅ |
| nil (as Null) | ✅ | ✅ |
| Boolean | ✅ | ✅ |
| Infinity | ✅ | ✅ |
| FIX_MAP | ✅ | ✅ |
| MAP32 | ✅ | ✅ |
| MAP64 | ✅ | ✅ |
| FIX_ARRAY | ✅ | ✅ |
| ARRAY32 | ✅ | ✅ |
| ARRAY64 | ✅ | ✅ |
| FIX_STR | ✅ | ✅ |
| STR8 | ✅ | |
| STR16 | ✅ | ✅ |
| STR32 | ✅ | ✅ |
| BIN8 (as Uint8Array) | ✅ | |
| BIN16 (as Uint8Array) | ✅ | |
| BIN32 (as Uint8Array) | ✅ | |
| FIX_EXT | ✅ | |
| EXT8 | ✅ | |
| EXT16 | ✅ | |
| EXT32 | ✅ | |
| run on Browser | ✅ | ✅ |
| run on WebWorkers | ✅ | |
| run on Node.js | ✅ | |
| run on NW.js | ✅ | |
| UNICODE Surrogate Pairs | ✅ | |
| ADVANCED_OPTIMIZATIONS | ✅ | |
| Encode and Decode speed | 😃 | 😧 |
| USER_DEFINED_TYPE | ✅ |
MessagePack#encode の options.pack と MessagePack#decode の options.unpack に関数を指定することで、ユーザが独自に定義した型やクラスをエンコード/デコードできます。
MessagePack が元々サポートしている型(Native support types)と、ユーザ定義型(USER_DEFINED_TYPE)を併用すると、以下のように多様な型をサポートできます。
| Types | |
|---|---|
| undefined | Native (as nil) |
| null | Native (as nil) |
| Boolean | Native |
| Number | Native (as int/float) |
| String | Native |
| Array | Native (as Array) |
| Object | Native (as Map) |
| Uint8Array | Native (as BIN) |
| Date | USER_EXT_TYPE |
| Uint16Array | USER_EXT_TYPE |
| Uint32Array | USER_EXT_TYPE |
| Int8Array | USER_EXT_TYPE |
| Int16Array | USER_EXT_TYPE |
| Int32Array | USER_EXT_TYPE |
| Float32Array | USER_EXT_TYPE |
| Float64Array | USER_EXT_TYPE |
| ArrayBuffer | USER_EXT_TYPE |
| other type | USER_EXT_TYPE |