20 June 2011

[Smalltalk] StOMP発表しました


このたびStOMPというバイナリのシリアライザを開発しました。本日各種ML等にアナウンスしておきました。

StOMPの開発の動機となったのは、とにかく自分で隅から隅まで把握できるバイナリのシリアライザが欲しいなと思ったことでした。私はSIXXというXMLシリアライザの開発者でもあるので、ベースとなるフォーマットをXMLからMessagePackに移し替えればすぐにできるのではないかな、という軽いノリで作りはじめました。

SIXXの時に比べると、同等の機能を有しつつコードはだいぶすっきりしたものになりました。そして当然ですが、バイナリなのでXMLに比べればたいそうコンパクトで速いです。

マルチSmalltalk処理系に対応したシリアライザとしてはSRPというものが既にあるのですが、ベンチマークを取った結果からすると、幸いにしてStOMPのほうが勝っています。

読み込みに関してはFuelというPharoのシリアライザがたいそう速く、これには及びません。Fuelは読み込みが速くなるようにフォーマット上の工夫を行っているのですが、StOMPは単純な方式で作られています。このため読み込みの分野でFuelに勝つということは、大きな変更を行わない限りないでしょう。

とはいえStOMPはRPCやKVSなどで小さなデータを繰り返しシリアライズ・デシリアライズするという使い方を想定しているので、今のままでも良いのかなと思っています。

使い方はきわめてシンプルです。

皆さん是非お使いください。