先ほどGo言語のrouterを調べていたのだが、chiのREADMEの末尾のほう に書かれていることが気になった。

Looking beyond REST, I also recommend some newer works in the field:
要するにRESTだけじゃなくて他のものも見てみれば? ということだと受け取った。
今回はRPCが気になったので調べる。

RPCとは

RPCというのはブロックチェーン絡みのことをやっていたときに見たことがあるのだが、それが具体的に何なのかを調べたことがなかった。
ググったところ そもそも RPC ってなんだ というドンピシャの先人の知恵を見つけたので読む。

  • そもそもRPCとはremote procedure callの略である
  • その名の通り離れた場所にある(remote)手続きを(procedure)呼び出す(call)こと

という大変簡潔な理解が得られた。
では次にwebrpc, gRPCをそれぞれ調べる。

webrpc

https://github.com/webrpc/webrpc

webrpc is a design/schema-driven approach to writing backend servers for the Web. Write your server's api interface in a schema format of RIDL or JSON, and then run webrpc-gen to generate the networking source code for your server and client apps.

Webアプリケーション用のバックエンドサーバーを書くためのもので、インターフェースをRIDLかJSONで書くとサーバーとクライアント用の通信ソースコードを生成してくれる。

gRPC

https://grpc.io/

gRPC is a modern open source high performance RPC framework that can run in any environment.
It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.
Google製。
どんな環境でも動き、ブラウザ⇔バックエンド間の通信にも対応する。

ブラウザとの通信は gRPC-Web + React + Node.js + TypeScriptでシンプルなチャットサービスを作る を参考にできそう。