con - JSONよりも高速に使えるフォーマット
REST APIやGraphQLなどWeb APIのデファクトスタンダードとも言えるフォーマットになっているのがJSONです。しかし、そのJSONへのシリアライズ、パースにかかるコストは意外に大きいです。 そこで作られたtのがconです。JSONとYAMLを足したようなフォーマットで、JSONよりも高速なのが売りです。
conの使い方
conのフォーマットです。ハッシュの場合は波括弧、配列の場合はカギ括弧を使って表現します。
key "string"
pi 3.14
hash {
enable true
nothing nil
}
ports [
22
1234
8888
]
ライブラリの利用例です。to_con
を使います。
require "con"
con_any = CON.parse con_data
con_any.to_con
require "json"
con_any.to_json
conはJSONをパースするのに比べて1.3倍、逆にJSONとして出力するのに比べて約2倍高速なようです。もちろんこれはプログラミング言語によって変わるでしょう。conが受け入れられるかどうかは外部ライブラリの存在によるところが大きいですが、JSONもXMLが主流の中で一気に普及しただけに見逃せない存在かも知れません。
conはCrystal製のオープンソース・ソフトウェア(ISC License)です。
j8r/con: A simple, fast and readable JSON-compatible serialization format