rch850 の上澄み

技術的な話題とか、雑談とか。タイトルを上澄みに変えました @ 2020/09/02

Rust で gRPC - tonic のチュートリアルをやった

Rust も gRPC もなんもわからん状態からのスタート。なんもわからんとかいいつつ cargo とか rustup が叩けるぐらいには環境ができあがってました。wasm 周りでなんか遊んでたときに入れたのかもしれない。

まず Rust で gRPC するには何を使ったらいいのか調べる。

どうやら tonic が良さそう。信仰とかよくわからないけどホイホイついて行っちゃいます。それと、これは後から思ったことだけど、ドキュメントが手厚かったのはとてもよかった。

まずはHello World チュートリアルをやってみる。

これがとても手厚い。あまり詰まらずに進めることができた。

コードを書いていたのは VSCode だったのだけど、helloworld.protoシンタックスハイライトが効いてないので vscode-proto3 拡張を入れた。Rust 自体はシンタックスハイライトが効いていたから拡張不要だと思ってたら、文法エラーを検出してくれなかったので Rust 拡張も入れた。

時にはコピペ、時には写経して、実行するところまで来た。検証用のクライアントとして GUIBloomRPCCLIgrpcurl が示されていた。grpcurl をチョイスして brew install grpcurl した。

$ grpcurl -plaintext -import-path ./proto -proto helloworld.proto -d '{"name": "Tonic"}' [::]:50051 helloworld.Greeter/SayHello
{
  "message": "Hello Tonic!"
}

無事動いた!

このあとチュートリアルはクライアント側の実装に進むのだけど、自分はブラウザから呼び出したかったのでスルーしました。