ちょうどこの記事を書く2週間ほど前に、Kotlin gRPCライブラリがリリースされたようなので調査してみました。
※ 2020/4/28のKotlin愛好会vol.21 にて発表予定の内容です。詳細な情報が書かれたスライドはこちらにアップロードします。
リリースについて
gRPC公式のライブラリが2週間前の2020/4/10にリリースされました(v0.1.1)。
Googleのブログからも少しだけ遅れて発表があったようです。
『Kotlin, meet gRPC: a new open-source project for modern apps』
リリースしてからまだ2週程度ですが、すでにGithubで241Star超えのようです。
また、gRPCの公式ドキュメントにも4/16にKotlinに関するQuickStartができました。
gRPCとは?
他の記事でよく取り上げられる内容なので割愛します。
Microserviceの文脈でよく取り上げられる技術です。
国内だとMericari, AbemaTV, dowangoなどで利用されているそうです。
元々のKotlinにおけるgPRCのステータス
awsome-grpcなるドキュメントにてライブラリが4つ紹介されていました。
grpc-kotlin
という同名の別ライブラリもあるのでご注意ください。(※今回の発表されたのはgrpc/grpc-kotlin
です)
またKotlinはJVM言語なので、当然JavaのgRPCライブラリを利用することもできます。
公式ライブラリのメリット
公式ドキュメントにて記載されているメリットは以下のとおりです。
- Kotlin製ライブラリなので、suspend functionやFlow APIを使い非同期プログラムがきれいに書ける
- GCPのCloud Runでも利用できる
まぁダントツで一番でかいメリットは、「gRPCが公式としてサポートしていること」だと思います。
デモコード
gRPCの公式ドキュメント内のQuickStartやgRPC Basics - Kotlin/JVM内に記載されているので割愛します。