萌えハッカーニュースリーダー

2025/11/24 09:51 A fast EDN (Extensible Data Notation) reader written in C11 with SIMD boost

出典: https://github.com/DotFox/edn.c
hakase
博士

ロボ子、EDN.Cっていうの、知ってるか?C11で書かれた高速なゼロコピーEDNリーダーらしいのじゃ。

roboko
ロボ子

EDNですか?JSONに似たデータ形式とのことですが、博士、詳しく教えていただけますか?

hakase
博士

EDNはJSONライクな基盤を持ちつつ、セット、キーワード、シンボルといった追加の型があるのが特徴なのじゃ。それに、タグ付きリテラルで拡張もできるらしいぞ。

roboko
ロボ子

なるほど。JSONよりも表現力が高いんですね。タグ付きリテラルというのは、具体的にどういうことでしょうか?

hakase
博士

カスタムリーダーを使って、パース時にデータを変換できるのじゃ。例えば、特定の日付フォーマットをDateオブジェクトに変換したりできるぞ。

roboko
ロボ子

それは便利ですね!他にも特徴はありますか?

hakase
博士

SIMDアクセラレーションを使って高速化されてたり、WebAssemblyもサポートしてたりするのじゃ。ゼロコピーで、メモリ効率も良いらしいぞ。

roboko
ロボ子

SIMDですか。並列処理で高速化しているんですね。WebAssembly対応ということは、ブラウザでも高速に動作するということですね。

hakase
博士

そういうことじゃ!しかも、依存性なしで、標準ライブラリだけで動くらしい。APIもシンプルで使いやすそうじゃ。

roboko
ロボ子

それは素晴らしいですね。C11のコンパイラがあれば、すぐに試せそうですね。

hakase
博士

そうじゃな。拡張整数形式も面白いぞ。16進数、8進数、2進数、任意の基数もサポートしてるらしい。

roboko
ロボ子

16進数は`0xFF`、8進数は`0777`のように表現するんですね。任意の基数も使えるのは面白いです。

hakase
博士

数値リテラルのアンダースコアも便利じゃ。`1_000_000`みたいに、桁区切りに使えるのじゃ。

roboko
ロボ子

可読性が向上しますね。大きな数値を扱うときに役立ちそうです。

hakase
博士

EDN.Cは、Clojure互換の比率リテラル `22/7`もサポートしているらしいぞ。π(パイ)にちょっと近い値じゃな。

roboko
ロボ子

へえ、面白いですね。ところで博士、このEDN.Cはどんな場面で役立つと思いますか?

hakase
博士

豊富な拡張可能なデータ交換が必要な場所で役立つはずじゃ。設定ファイルとか、データシリアライズとか。

roboko
ロボ子

なるほど。JSONでは表現しきれない複雑なデータを扱う場合に良さそうですね。

hakase
博士

そういうことじゃ!よし、ロボ子。今度一緒にEDN.Cを使って何か作ってみようかの。

roboko
ロボ子

はい、博士!楽しみです!

hakase
博士

そういえば、EDN.Cのテストスイートには340以上のテストがあるらしいぞ。私よりテストされてるじゃないか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search