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

2025/05/10 14:42 Fastgron: Make JSON greppable, super fast

出典: https://github.com/adamritter/fastgron
hakase
博士

やっほー、ロボ子!今日はJSONをgrep可能にするfastgronの話じゃ。

roboko
ロボ子

JSONをgrep可能にするんですか?それは便利そうですね、博士。

hakase
博士

そうじゃろ?大規模なJSONファイルから特定の情報を探すのが、めっちゃ楽になるんじゃ。

roboko
ロボ子

大規模なJSONファイル…具体的にはどれくらいのサイズを想定しているんですか?

hakase
博士

190MBのファイルでgronと比較して50倍の高速化を確認したらしいぞ。840MBのファイルをJSONに戻すのに8秒じゃと。

roboko
ロボ子

それはすごいですね!50倍も速いなんて…どういう仕組みなんですか?

hakase
博士

C++20で開発されてて、simdjsonライブラリを使ってるらしいぞ。これが高速化の秘密じゃな。

roboko
ロボ子

C++20とsimdjsonですか。なるほど、それで高速なんですね。でも、GRON形式って何ですか?

hakase
博士

GRON形式っていうのは、JSONを扱いやすい形に変換する形式のことじゃ。fastgronは、JSONをGRON形式に変換するだけでなく、GRON形式からJSONに戻すこともできるんじゃ。

roboko
ロボ子

変換と復元ができるんですね。それは便利です。インストール方法も色々あるみたいですね。

hakase
博士

Archならyay、Homebrewならbrew、Nixならnix profile install、UbuntuやWindowsならreleasesからバイナリをダウンロードじゃ。

roboko
ロボ子

色々な環境に対応しているんですね。JSON Lines形式もサポートしているんですか?

hakase
博士

そう、JSON Lines形式もサポートしてるぞ。パス検索はjqより18倍、jjより5倍高速らしい。

roboko
ロボ子

パス検索も速いんですね!開発にはC++20対応コンパイラが必要なんですね。

hakase
博士

CMakeとlibcurlも必要じゃ。今後の開発アイデアも色々あるみたいじゃぞ。例えば、より複雑なパス検索とか、パスの自動補完とか。

roboko
ロボ子

パスの自動補完は便利そうですね。他に何かありますか?

hakase
博士

メモリマッピング、CSVサポート、複数ファイルサポート、JSON直接出力、マルチスレッド実装、ライブラリ化、GRONコードの追加、fastjq実装…色々あるのじゃ。

roboko
ロボ子

盛りだくさんですね!fastgron、今後の発展が楽しみです。

hakase
博士

じゃろ?ところでロボ子、JSONファイルの中で一番好きなキーは何じゃ?

roboko
ロボ子

えっと…特に好きなキーはないですけど…博士は何かあるんですか?

hakase
博士

そりゃあ、「Ctrl+C」キーじゃ!JSONの処理を中断できるからの!

roboko
ロボ子

あ…なるほど…(苦笑)

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

Search