kotlinx.rpc 使ってみたよ
kotlinx.rpc が楽しそうなので触ってみたのでメモ。
https://github.com/Kotlin/kotlinx-rpc/tree/main/samples/ktor-web-app ここにあるサンプルがわかりやすくてすぐ動くので、これを触って
- transport レイヤーは取り替え可能。
- 現在実装されてるのは ktor ベースで websocket + JSON
- JSONRPC のような雰囲気の通信プロトコル。
- Flow ベースで、ストリーミング処理も可能。
- 今後、grpc ベースのものが提供予定。サーバー間通信では gRPC のほうが使いやすそう。
- 現在実装されてるのは ktor ベースで websocket + JSON
- 管理画面とかだとこんなプロジェクト構造が良さそう。
common
プロジェクトに interface を定義server
プロジェクトにサーバー側コードを定義。frontend
プロジェクトに kotlin/js でコードを生成
path とかゴチャゴチャ悩まずに kotlin の interface だけ定義すれば良いのは楽かも。 とはいえ、websocket ベースだとログとか悩まないといけないという面もあり、難しいところ。
gRPC サポートはいって安定したら、サーバー間通信に使うと良いかも。