-
Notifications
You must be signed in to change notification settings - Fork 1
Home
uupaa edited this page Apr 19, 2015
·
23 revisions
MessagePack.js は MessagePack の JavaScript 実装です。
以下の機能を実装しています。
| MessagePack.js | msgpack.js | |
|---|---|---|
| MessagePack spec | Ver 2013 | Ver 2010 |
| FIX_INT | YES | YES |
| INT8 | YES | YES |
| INT16 | YES | YES |
| INT32 | YES | YES |
| INT64 | YES | YES |
| FIX_UINT | YES | YES |
| UINT8 | YES | YES |
| UINT16 | YES | YES |
| UINT32 | YES | YES |
| UINT64 | YES | YES |
| nil (as Null) | YES | YES |
| Boolean | YES | YES |
| Infinity | YES | YES |
| FIX_MAP | YES | YES |
| MAP32 | YES | YES |
| MAP64 | YES | YES |
| FIX_ARRAY | YES | YES |
| ARRAY32 | YES | YES |
| ARRAY64 | YES | YES |
| FIX_STR | YES | YES |
| STR8 | YES | NO |
| STR16 | YES | YES |
| STR32 | YES | YES |
| BIN8 (as Uint8Array) | YES | NO |
| BIN16 (as Uint8Array) | YES | NO |
| BIN32 (as Uint8Array) | YES | NO |
| FIX_EXT | YES | NO |
| EXT8 | YES | NO |
| EXT16 | YES | NO |
| EXT32 | YES | NO |
| run on Browser | YES | YES |
| run on WebWorkers | YES | NO |
| run on Node.js | YES | NO |
| run on node-webkit | YES | NO |
| UNICODE Surrogate Pairs | YES | NO |
| ADVANCED_OPTIMIZATIONS | YES | NO |
| Encode and Decode Speed | Quickly | Slowly |
| USER_DEFINED_TYPE | YES | NO |
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 |