Skip to content
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

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
Clone this wiki locally