gRPC
をテンプレートにして作成
[
トップ
] [
タイトル一覧
|
ページ一覧
|
新規
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* gRPC
- Google製 RPC (HTTP/2を使用)
- 異なる言語間でも簡単に使用可能
*** 参考サイト
- https://qiita.com/gold-kou/items/a1cc2be6045723e242eb
- https://grpc.io/
*** 構成
**** RPC
- 言わずと知れた RPC (データはバイナリ)
**** Protocol Buffers
- 言語に依存しない RPC用データフォーマット
- proto ファイルに,データと通信情報等を記述する.
**** HTTP/2
*** 通信方法
- 1リクエスト,1レスポンス (Unary RPC)
- 1リクエスト,多レスポンス (Server streaming RPC)
- 多リクエスト,1レスポンス (Client streaming RPC)
- 多リクエスト,多レスポンス(Bidirectional streaming RPC)
** 実装
*** .NET (C#)
- grpc-dotne (HTTP/2 by .NET)
-- Unity では HTTP/2 by .NET のサポートなし
*** Unity
- Unity の Package Manager (UnityPM) では未対応
**** YetAnotherHttpHandler
- Unity用のHTTP/2(gRPC) Client
- https://github.com/Cysharp/YetAnotherHttpHandler
- Unity 2022 以降では既にインストール済み?
**** [[NuGetForUnity]] (Unity のパッケージをソースで管理)
- [[NuGet]] を使用
- https://github.com/GlitchEnzo/NuGetForUnity
- パッケージのインストール
-- gRPC, Protobuf 関連をインストール
-- MQTT 関連をインストール(必要なら)
*** Linux (Rocky Linux)
<pre>
dnf config-manager --set-enabled crb # CRBリポジトリ...
dnf install grpc grpc-*
dnf install protobuf-*
</pre>
**** Rust
<pre>
dnf install dotnet-*
dnf install cargo
</pre>
** 未整理
yum install cargo
yum install grpc
yum install grpc-*
yum protobuf-*
647 yum install dotnet-*
651 dnf config-manager --set-enabled crb
652 yum install protobuf-compiler
cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_CXX_COMPILER=$CXX \
-DCMAKE_CXX_FLAGS="-I$PREFIX/include $COMMON_CFLAGS" \
-DCMAKE_CXX_COMPILER_TARGET=$TARGET_TRIPLE \
-DCMAKE_C_COMPILER=$CC \
-DCMAKE_C_FLAGS="-I$PREFIX/include $COMMON_CFLAGS" \
-DCMAKE_C_COMPILER_TARGET=$TARGET_TRIPLE \
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_BUILD_TYPE=Release \
-DLIBCXX_CXX_ABI=libcxxabi \
-DLIBCXX_CXX_ABI_INCLUDE_PATHS="$BASEDIR/llvm-project/l...
-DLIBCXX_CXX_ABI_LIBRARY_PATH="$PREFIX/lib" \
-DLIBCXX_ENABLE_EXCEPTIONS=False \
-DLIBCXX_ENABLE_FILESYSTEM=False \
-DLIBCXX_ENABLE_MONOTONIC_CLOCK=False \
-DLIBCXX_ENABLE_RTTI=False \
-DLIBCXX_ENABLE_THREADS=False \
-DLIBCXX_ENABLE_SHARED=False \
-DLIBCXX_ENABLE_STATIC=True \
$BASEDIR/llvm-project/libcxx
bolt;clang;clang-tools-extra;compiler-rt;cross-project-...
Did you mean to enable it as a runtime in LLVM_ENABLE_R...
mkdir build_unwind
cd build_unwind
cmake -DCMAKE_BUILD_TYPE=Release ../libunwind/
make -j$(nproc)
make install
ldconfig
cmake -G "Unix Makefiles" \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_FLAGS="-I/opt/GIT/llvm-project/libcxx/inclu...
-DCMAKE_CXX_COMPILER_TARGET=$TARGET_TRIPLE \
-DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include...
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_MAIN_SRC_DIR="/opt/GIT/llvm-project/llvm" \
-DLIBCXXABI_LIBCXX_INCLUDE_DIRS="/opt/GIT/llvm-project/...
-DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/inclu...
-DLLVM_ENABLE_RUNTIMES="libunwind" \
-DLIBCXXABI_ENABLE_EXCEPTIONS=False \
-DLIBCXXABI_ENABLE_THREADS=False \
-DLIBCXXABI_TARGET_TRIPLE=$TARGET_TRIPLE \
-DLIBCXXABI_ENABLE_SHARED=False \
-DLIBCXXABI_ENABLE_STATIC=True \
../libcxxabi
LLVM_MAIN_SRC_DIR=/opt/GIT/llvm-project/llvm
-DCMAKE_BUILD_TYPE=Release \
c++: error: unrecognized command-line option ‘--print-res...
-DCMAKE_CXX_FLAGS=-Wno-error=aggressive-loop-optimizations"
cmake -G "Unix Makefiles" \
-DCMAKE_CXX_FLAGS="-I/opt/GIT/llvm-project/libcxx/inclu...
-DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include...
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_BUILD_TYPE=Release \
-DLIBCXXABI_LIBCXX_INCLUDE_DIRS="/opt/GIT/llvm-project/...
-DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/inclu...
-DLLVM_ENABLE_RUNTIMES="libunwind" \
-DLIBCXXABI_ENABLE_EXCEPTIONS=False \
-DLIBCXXABI_ENABLE_THREADS=False \
-DLIBCXXABI_TARGET_TRIPLE=$TARGET_TRIPLE \
-DLIBCXXABI_ENABLE_SHARED=False \
-DLIBCXXABI_ENABLE_STATIC=True \
../libcxxabi
終了行:
* gRPC
- Google製 RPC (HTTP/2を使用)
- 異なる言語間でも簡単に使用可能
*** 参考サイト
- https://qiita.com/gold-kou/items/a1cc2be6045723e242eb
- https://grpc.io/
*** 構成
**** RPC
- 言わずと知れた RPC (データはバイナリ)
**** Protocol Buffers
- 言語に依存しない RPC用データフォーマット
- proto ファイルに,データと通信情報等を記述する.
**** HTTP/2
*** 通信方法
- 1リクエスト,1レスポンス (Unary RPC)
- 1リクエスト,多レスポンス (Server streaming RPC)
- 多リクエスト,1レスポンス (Client streaming RPC)
- 多リクエスト,多レスポンス(Bidirectional streaming RPC)
** 実装
*** .NET (C#)
- grpc-dotne (HTTP/2 by .NET)
-- Unity では HTTP/2 by .NET のサポートなし
*** Unity
- Unity の Package Manager (UnityPM) では未対応
**** YetAnotherHttpHandler
- Unity用のHTTP/2(gRPC) Client
- https://github.com/Cysharp/YetAnotherHttpHandler
- Unity 2022 以降では既にインストール済み?
**** [[NuGetForUnity]] (Unity のパッケージをソースで管理)
- [[NuGet]] を使用
- https://github.com/GlitchEnzo/NuGetForUnity
- パッケージのインストール
-- gRPC, Protobuf 関連をインストール
-- MQTT 関連をインストール(必要なら)
*** Linux (Rocky Linux)
<pre>
dnf config-manager --set-enabled crb # CRBリポジトリ...
dnf install grpc grpc-*
dnf install protobuf-*
</pre>
**** Rust
<pre>
dnf install dotnet-*
dnf install cargo
</pre>
** 未整理
yum install cargo
yum install grpc
yum install grpc-*
yum protobuf-*
647 yum install dotnet-*
651 dnf config-manager --set-enabled crb
652 yum install protobuf-compiler
cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_CXX_COMPILER=$CXX \
-DCMAKE_CXX_FLAGS="-I$PREFIX/include $COMMON_CFLAGS" \
-DCMAKE_CXX_COMPILER_TARGET=$TARGET_TRIPLE \
-DCMAKE_C_COMPILER=$CC \
-DCMAKE_C_FLAGS="-I$PREFIX/include $COMMON_CFLAGS" \
-DCMAKE_C_COMPILER_TARGET=$TARGET_TRIPLE \
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_BUILD_TYPE=Release \
-DLIBCXX_CXX_ABI=libcxxabi \
-DLIBCXX_CXX_ABI_INCLUDE_PATHS="$BASEDIR/llvm-project/l...
-DLIBCXX_CXX_ABI_LIBRARY_PATH="$PREFIX/lib" \
-DLIBCXX_ENABLE_EXCEPTIONS=False \
-DLIBCXX_ENABLE_FILESYSTEM=False \
-DLIBCXX_ENABLE_MONOTONIC_CLOCK=False \
-DLIBCXX_ENABLE_RTTI=False \
-DLIBCXX_ENABLE_THREADS=False \
-DLIBCXX_ENABLE_SHARED=False \
-DLIBCXX_ENABLE_STATIC=True \
$BASEDIR/llvm-project/libcxx
bolt;clang;clang-tools-extra;compiler-rt;cross-project-...
Did you mean to enable it as a runtime in LLVM_ENABLE_R...
mkdir build_unwind
cd build_unwind
cmake -DCMAKE_BUILD_TYPE=Release ../libunwind/
make -j$(nproc)
make install
ldconfig
cmake -G "Unix Makefiles" \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_FLAGS="-I/opt/GIT/llvm-project/libcxx/inclu...
-DCMAKE_CXX_COMPILER_TARGET=$TARGET_TRIPLE \
-DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include...
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_MAIN_SRC_DIR="/opt/GIT/llvm-project/llvm" \
-DLIBCXXABI_LIBCXX_INCLUDE_DIRS="/opt/GIT/llvm-project/...
-DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/inclu...
-DLLVM_ENABLE_RUNTIMES="libunwind" \
-DLIBCXXABI_ENABLE_EXCEPTIONS=False \
-DLIBCXXABI_ENABLE_THREADS=False \
-DLIBCXXABI_TARGET_TRIPLE=$TARGET_TRIPLE \
-DLIBCXXABI_ENABLE_SHARED=False \
-DLIBCXXABI_ENABLE_STATIC=True \
../libcxxabi
LLVM_MAIN_SRC_DIR=/opt/GIT/llvm-project/llvm
-DCMAKE_BUILD_TYPE=Release \
c++: error: unrecognized command-line option ‘--print-res...
-DCMAKE_CXX_FLAGS=-Wno-error=aggressive-loop-optimizations"
cmake -G "Unix Makefiles" \
-DCMAKE_CXX_FLAGS="-I/opt/GIT/llvm-project/libcxx/inclu...
-DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include...
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_BUILD_TYPE=Release \
-DLIBCXXABI_LIBCXX_INCLUDE_DIRS="/opt/GIT/llvm-project/...
-DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/inclu...
-DLLVM_ENABLE_RUNTIMES="libunwind" \
-DLIBCXXABI_ENABLE_EXCEPTIONS=False \
-DLIBCXXABI_ENABLE_THREADS=False \
-DLIBCXXABI_TARGET_TRIPLE=$TARGET_TRIPLE \
-DLIBCXXABI_ENABLE_SHARED=False \
-DLIBCXXABI_ENABLE_STATIC=True \
../libcxxabi
ページ名: