Rust で gRPC - tonic のチュートリアルをやった
Rust も gRPC もなんもわからん状態からのスタート。なんもわからんとかいいつつ cargo
とか rustup
が叩けるぐらいには環境ができあがってました。wasm 周りでなんか遊んでたときに入れたのかもしれない。
まず Rust で gRPC するには何を使ったらいいのか調べる。
どうやら tonic が良さそう。信仰とかよくわからないけどホイホイついて行っちゃいます。それと、これは後から思ったことだけど、ドキュメントが手厚かったのはとてもよかった。
まずはHello World チュートリアルをやってみる。
これがとても手厚い。あまり詰まらずに進めることができた。
コードを書いていたのは VSCode だったのだけど、helloworld.proto
のシンタックスハイライトが効いてないので vscode-proto3 拡張を入れた。Rust 自体はシンタックスハイライトが効いていたから拡張不要だと思ってたら、文法エラーを検出してくれなかったので Rust 拡張も入れた。
時にはコピペ、時には写経して、実行するところまで来た。検証用のクライアントとして GUI の BloomRPC と CLI の grpcurl が示されていた。grpcurl をチョイスして brew install grpcurl
した。
$ grpcurl -plaintext -import-path ./proto -proto helloworld.proto -d '{"name": "Tonic"}' [::]:50051 helloworld.Greeter/SayHello { "message": "Hello Tonic!" }
無事動いた!
このあとチュートリアルはクライアント側の実装に進むのだけど、自分はブラウザから呼び出したかったのでスルーしました。