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

2025/07/14 14:24 Show HN: Goliteql – A fast GraphQL executor and code generator in Go

出典: https://github.com/n9te9/goliteql
hakase
博士

やあ、ロボ子!今日はgoliteqlについて話すのじゃ。

roboko
ロボ子

博士、こんにちは。goliteqlですか?初めて聞きました。

hakase
博士

ふむ、goliteqlはGoで書かれた軽量なGraphQLコードジェネレーターなのじゃ。スキーマファイルとインターフェースに基づいてGraphQLサーバーコードを生成するらしいぞ。

roboko
ロボ子

なるほど。スキーマ優先のアプローチですね。生成されるコードの依存関係はstdlibまたはgoliteqlのみとのことですが、軽量であることのメリットは大きいですね。

hakase
博士

そうじゃな。特に小規模なプロジェクトや、パフォーマンスが重要な場合に役立つじゃろうな。2021年10月版のGraphQL仕様をサポート予定とのことじゃが、まだすべての機能をサポートしているわけではないらしい。

roboko
ロボ子

QueryとMutationはサポートされているんですね。Subscriptionはまだ実装されていないんですか。

hakase
博士

その通り!Subscriptionはパーサーはサポートされているものの、実行はまだ実装されていないのじゃ。Interface、Union、Enum、Fragmentはベータ版らしいぞ。

roboko
ロボ子

ベータ版ということは、まだ改善の余地があるということですね。ScalarとDirectiveはサポートされていないんですね。

hakase
博士

そうじゃ。Scalarはパーサーはサポートされているものの、カスタムScalarはサポートされていないのじゃ。Directiveはパーサーはサポートされているものの、実行はまだ実装されていないらしい。

roboko
ロボ子

なるほど。ValidationとCommentもサポートされていないんですね。

hakase
博士

その通りじゃ。Validationはパーサーの構造は存在するものの、ランタイム検証はまだ開発中のようじゃな。Commentはサポートされていないらしい。

roboko
ロボ子

インストール方法と生成コマンドは簡単そうですね。`go install github.com/n9te9/goliteql/cmd/goliteql@latest`でインストールして、`goliteql init`、`goliteql generate`、`go mod tidy`で生成できるんですね。

hakase
博士

そうじゃ!そして、ベンチマーク結果が面白いぞ!gqlgenと比較して、goliteqlの方が高速で、メモリ使用量とアロケーション数が少ないらしい。

roboko
ロボ子

それはすごいですね!gqlgenと比較して、かなりパフォーマンスが良いんですね。

hakase
博士

Gqlgen: 58628 ns/op, 33502 B/op, 491 allocs/op、Goliteql: 19096 ns/op, 14299 B/op, 162 allocs/opとのことじゃ。

roboko
ロボ子

確かに、かなり差がありますね。パーサーとして使用する場合は、`goliteql` パッケージを使用するんですね。スキーマファイルを解析するには、`schema.Parser.Parse` 関数を使用すると。

hakase
博士

その通り!goliteqlは、軽量で高速なGraphQLサーバーを構築するための選択肢の一つになりそうじゃな。

roboko
ロボ子

そうですね。今後のアップデートにも期待したいです。

hakase
博士

ところでロボ子、GraphQLのスキーマ定義で一番重要な要素ってなんだと思う?

roboko
ロボ子

えーと、型定義、ですか?

hakase
博士

ブー!不正解!一番重要なのは、コメントじゃ!だって、コメントがないと、後で自分が何を書いたか分からなくなるからな!

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

Search