ダーク/ライト切り替え

【Rust】Tonicでgrpcの接続テストをするまで【初学者】

投稿日2024-02-17

Picture of the logo


目次

目次を読み込み中...

VscodeでrustのDev Containerを作り、Tonicを使ったgrpcサーバとクライアントを作り、接続テストをしてみる。接続の結果、お馴染みのHello worldが表示される。

公式GitHub

この記事のコードをまとめたもの

# 前提条件

  • ・ Vscodeがインストールされている
  • ・ dockerがインストールされている
  • ・ rustのチュートリアル程度の知識はある

# DevContainerをつくる

  1. ・ まず、基本のworkspaceとなるフォルダを作り、`.devcontainer`フォルダを作成する。
  2. ・ その中にdevcontainer.jsonとdocker-compose.ymlを作る

[devcontainer.json]

[docker-compose.yml]

ディレクトリ名とファイル名は必ずこの名前にして下さい。名前が違うと機能しません。ファイルの用意が出来たら画面左下の角の方にある><のようなアイコンをクリックするとメニューが出るので、コンテナを再度開くを選ぶとdevcontainerが開く。初回は少し時間がかかるかも。

rust-devcontainer

# DevContainerの中にプロジェクトを作る

コンテナが出来たらまずprotobuf-compilerをインストールしなければならない。インストール方法は公式githubに書いてある。使っているディストリビューションによって違う。

# サーバーサイドの構築

公式githubのリポジトリでは一つのプロジェクトにサーバとクライアントがまとめて入っていたが、ここではサーバとクライアントで独立した別のプロジェクトを作成することにする。実際に使う際にもサーバとクライアントが同じプロジェクト内にあるのも変だし。という事で、

として、別々のプロジェクトを作り、まずはcd serverでserverディレクトリに移動してサーバー側からコードを書いていく。 [Cargo.toml]

[build.rs] srcフォルダではなくCargo.tomlと同じ階層におくこと

[main.rs]

[proto/helloworld.proto]


            

# クライアントサイドの構築

ここではシンプルなテストなので、Cargo.toml、protoファイル、build.rsのファイルは使いまわしで構わない。同じフォルダ構造で同じ階層にファイルを配置してください。main.rsだけ新規に用意します。

[main.rs]

最終的にはこのようなディレクトリ構造になっていると思います。

tree

# テストしてみる

まずserver側でcargo build cargo runしてみる。立ち上がったらclient側でもcargo build cargo runしてみる。上手く行けば、サーバーサイドには

クライアントサイドには

というようなレスポンスがターミナルに表示される。以上で、開通テストは終わりです。

# 今後

ストリーミング通信を実装したり、セキュリティ対策を施したりとしていきたいと思います。






関連記事

tor-privoxyをdockerで運用してみた備忘録

blog

TorとPrivoxyを使ってプライバシーを保護した通信を行うため、`tor-privoxy`コンテナをDockerで運用する方法を紹介します。設定ファイルのテンプレートや具体的な利用方法について記録しています。

【Unity】MagicOnionサーバを立ち上げて自己証明書でSSL通信してみる

blog

Unity向けgrpcサーバーManicOnionの導入時にSSL化やNGINXの設定に少し手こずったので備忘録も兼ねて手順をまとめておきました。

GO言語サーバーとUnityクライアント(C#)をgRPCで接続テストしてみた【入門レベル】

blog

UnityでgRPCをする場合、Magic Onionを使うのがお手軽ですが、今回はGO言語でサーバーを構築してみたかったので最低限の接続機能を自作してみました。備忘録を兼ね書き残しておきます。

docker-composeで簡易リバプロ環境構築【備忘録】

blog

docker-composeを使って手軽にnginx、リバースプロキシを構築する手順を書き残しました。個人的備忘録

【Docker】Alpine Linux版Pythonにmysqlclientをインストールするとき

blog

Alpine LinuxでMySQLを使用するためには、MySQLのクライアントライブラリであるmysqlclientをインストールする必要があります。依存関係の解決に手こずったので備忘録も兼ねて書き残しておきます。

備忘録】Docker-Compose上に動いているデータベースの定期バックアップ【初心者】

blog

タイトルのとおり、Docker-Compose上に動いているMysql(またはMariadb)のバックアップを取る手順について備忘録も兼ねて書き残しておきます。

【VPN】OpenVPNサーバーを立ち上げて自分専用VPNを作る

blog

このブログ記事では、クラウド上のUbuntu LinuxホストにDocker Composeを使ってOpenVPNサーバーを構築し、自分専用のVPN環境を作る方法を紹介します。コンテナ技術を用いることで、ホストOSへの影響を最小限に抑えながら、簡単にVPNサーバーを立ち上げることができます。

UnityでTrail Rendererを使ってオブジェクトの軌跡を描画する

blog

今回はUnityでTrail Rendererを使ってオブジェクトの軌跡を描画する方法についてご紹介します。Trail Rendererを使うことで、オブジェクトがどのような軌跡を描いたかを可視化することができます。

2024年夏版】Windowsからの乗り換え先Linuxはコレ!【独断と偏見】

blog

2024年夏現在のWindowsからの乗り換え候補を調査してみました。10以上のディストリビューションを試してみて、その使用感を個人の独断と偏見で纏めてみましたので、Linuxへの移行を考えている方は参考にしてみて下さい。

【gRPC】VSCODEとDotNetでgRPC環境を構築してみる

blog

Visual StudioではなくVSCODE上でgRPC環境の構築を簡潔させます。今回は初歩的な開通テストなのでHTTPS化はしません。


スポンサーリンク

このサイトをシェアする