2011年 09月 27日

シリアライザ

Storable

  • 常に同じシリアライズ結果にできる ($Storable::canonical)
  • 可読性なし
  • データサイズ大
  • データ形式が Perl 限定 (Ruby でもパースできるという噂が)
  • bless 状態を保持できる

Data::Dumper

  • 常に同じシリアライズ結果にできる ($Data::Dumper::Sortkeys = 1)
  • 可読性あり
  • データ形式が Perl 限定
  • bless 状態を保持できる

JSON::XS

  • 常に同じシリアライズ結果にできる ($json->canonical(1))
  • 可読性あり
  • バイト列を保存できない
    • JSON の仕様上文字列しかないのでバイト列を保存したければ Base64 したりしなくてはいけなくて使いにくい
  • Storable よりは早い

Data::MessagePack

  • 常に同じシリアライズ結果にできる ($mp->canonical(1))
  • データサイズ小
  • バイナリ
  • 可読性ほぼなし (Storable と違って文字列は読める)
  • 早い