https://future-architect.github.io/articles/20220623a/
サービス間通信とIDL(インタフェース記述言語)連載の2日目のエントリーです。
本当はGraphQLネイティブなデータベースの紹介をしようとしたのですが、紹介しようとしていたものがまだベータでクライアントライブラリが公開されていない(空っぽのリポジトリしかない)みたいな感じで試せなかったので、急遽2022/6/1に公開されたばかりのgRPC関連のライブラリのConnectを紹介することにしました。
Connectの開発元が公開したブログは次のサイトにあります。
公式ドキュメントはこちらです。
なお、gRPCについての詳細はこのエントリーでは紹介しません。ちょうど、H.SakiさんがgRPCの詳しい紹介の記事を書いてくれているので、ぜひ、みなさんこちらを参照ください。
Connectとは何者かというと、現時点では純正のgRPCのGoコードの別実装ということになります。あえて作ったのは既存の実装にいろいろ不満があるからということです。
Connectはこれに対して次のような特徴を備えたGoのgRPCサーバー/クライアントフレームワークとなっています。
http.Handler
、http.Client
を利用しているため、サードパーティのライブラリを駆使しやすいConnectを開発したのは、Protobufからのコード生成やら、linterやら、いろいろやりやすくしてくれるツールであるbufを開発したところです。Protobufを知り尽くしているところが作ったライブラリになります。