MessagePack-JS

cuzic です。

MessagePackJavaScript 実装を作成しましたので、公開しました。

GitHub においております。

サーバ側で生成した MessagePack の文字列をクライアント側の JavaScript で、

  var data = MessagePack.unpack(unescape("%a1%61"));
  alert(a);

と書けば Ruby で 'a'.to_msgpack に相当する MessagePack のシリアリゼーション結果を変数 data に格納します。

現在は以下の状態です。

  • MessagePack 形式のデコードが可能。
  • 整数、nil 、false 、true、浮動小数点、文字列、ハッシュ、配列 に対応
  • FireFox 3.6.3 と IE 8.0.6 で動作検証を実施。正常動作を確認。

作成した理由としては、以下の理由です。

  • 最近 JavaScript を勉強しているので、なにかを作って公開してみたかった。
  • MessagePack の仕様の美しさについて、某所で話題になっていた。
  • JSON が主流な JavaScript とのデータ連携を MessagePack に変更することで、サーバ負荷の低減、高速化が可能になる。

今後の予定としては、次の内容を進めていきたいと考えております。

  • MessagePack 形式のデコードだけでなくエンコードを可能に。
  • テストコードを追加。クロスブラウザな自動テストを可能に。
  • 各種ブラウザで利用可能かの検証の実施。
  • JSON フォーマットとの速度比較の実施

MessagePack-JS の作成にあたっては、http://github.com/nayutaya/msgpack-pure での Ruby 実装を参考にさせていただきました。