#author("2025-09-18T09:10:02+00:00","default:iseki","iseki")
#author("2025-09-18T09:11:52+00:00","default:iseki","iseki")
* 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/libcxxabi/include" \
  -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-tests;libc;libclc;lld;lldb;mlir;openmp;polly;pstl;flang.
  Did you mean to enable it as a runtime in LLVM_ENABLE_RUNTIMES?


 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/include -I/usr/local/include" \
  -DCMAKE_CXX_COMPILER_TARGET=$TARGET_TRIPLE \
  -DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include -I/usr/local/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/libcxx/include" \
  -DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/include" \
  -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-resource-dir’; did you mean ‘--print-search-dirs’?



-DCMAKE_CXX_FLAGS=-Wno-error=aggressive-loop-optimizations"




cmake -G "Unix Makefiles" \
  -DCMAKE_CXX_FLAGS="-I/opt/GIT/llvm-project/libcxx/include -I/usr/local/include" \
  -DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include -I/usr/local/include" \
  -DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
  -DCMAKE_BUILD_TYPE=Release \
  -DLIBCXXABI_LIBCXX_INCLUDE_DIRS="/opt/GIT/llvm-project/libcxx/include" \
  -DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/include" \
  -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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS