gRPCKotlin自体は、既に2020年4月にオープンソースプロジェクト化を発表していますが、今回、Googleが発表したのは、オープンソースコミュニティ上で様々なバグフィクスと改善を重ねた結果としてリリースすることができた1.0の発表です。

素晴らしいですね。Googleさんの発表はこちらです。

Googleの発表に「At Google, we’ve been building more of our apps and backends with Kotlin to take advantage of its expressiveness, safety, and excellent support for writing asynchronous code with coroutines.」と記載がありますが、Googleは、Kotlinを使って(Kotlinコルーチンを使用した非同期コードの記述に対する豊富な表現、安全性、充実サポートを活用し)多くのアプリとバックエンドを構築したとしています。

Androidアプリ開発のイメージが強いKotlinですが、様々な用途の開発に使えるプログラミング言語ですので、もし機会がKotlinを学んでみるのもプログラミングの幅が広がり楽しいかもしれません。

Kotlinとは

Kotlinは、主にAndroidアプリを開発する為の静的型付けのオブジェクト指向プログラミング言語です。Androidアプリの開発というイメージが強いのですが、サーバーサイド/クラウドバックエンドでも開発者に利用されている言語です。

静的型付け

静的型付けとは、変数やサブルーチンの因数や返り血について、プログラマーが予め、それらを扱う方法(ここでは型という)を決めていることを「静的型付け(static typing)」と言います。逆にコンパイラやインプリンタがプログラム実行時に変数などを想定し型を決める場合は、「動的型付け」となります。

gRPC

gRPCとは、Googleが開発したリモートプロシージャコール(Remote Procedure Call)です。gRPCは、プロトコルバッファ(プロトとも言う)(言語に依存しない高性能データ交換)に基づいて構築され、プロトと効率の良い通信を行う為のネットワークプロトコルを追加します。プロトは、IDLを使ったAPI仕様を.protoファイルとして定義し、.protoファイルをコンパイルしてサーバー/クライアントのひな型コードを生成するのが特長で、言語に依存することなく実装を生成できるのが大きなgRPCのメリットです。

gRPC-Web、gRPC-Goがいいですね(^^)/

.protoファイル

メッセージHelloRequest {文字列名= 1 ; } 

メッセージHelloReply {文字列メッセージ= 1 ; } 

service Greeter { 
  rpc SayHello (HelloRequest )returns (HelloReply ){} }   

gRPC通信のイメージ

gRPC Stub >>> Request >>> gRPC Server >>> Response >>> gRPC Stub