Qt GRPC

Qt GRPCモジュールとともに Qt Protobufモジュールとともに、サーバーとの高速でスペース効率のよい通信を可能にする。 gRPCサーバとの高速でスペース効率の良い通信を可能にします。gRPC サービスを Qt フレームワークにシームレスに統合し、サーバーが Qt ベースであるかどうかに関係なく、異なるプログラミング言語や環境間での通信を可能にします。

概要

gRPC は、クロスプラットフォームで高性能なリモートプロシージャコール(RPC)フレームワークです。Protobuf コンパイラ ( ) を使用して、さまざまなプログラミング言語用の protobuf スキーマの セクションからクライアントとサーバーのインターフェースを生成します。一般的には、マイクロサービススタイルのアーキテクチャでサービスを接続したり、モバイルアプリケーションやブラウザとバックエンドシステムをリンクしたりするために使用される。詳細はprotoc service gRPC入門を参照。

Qt GRPC gRPCはC++および APIで構成され、よく知られたQt Quick シグナル&スロット・メカニズムを使用してリモート・プロシージャ・コールの非同期性を処理します。また、 を使用して Qt 固有のインターフェースの生成を効率化するためのコマンドラインツールと CMake API も提供する。protoc

Qt GRPC は現在、クライアント側の機能をサポートしている。これは、gRPC互換のサーバーと通信できることを意味します。これは、protobuf APIを持つ独自のサーバーや、Google APIのような一般に利用可能なAPIを使用することができます。

モジュールの使用

モジュールの前提条件

  • protocQtコードジェネレータプラグインを実行するには、Protocol Buffersコンパイラが必要です。Protocのインストールを参照してください。
  • オプション:SSLサポート。
  • オプション:サンプルを実行するためのgRPC C++。

注: gRPCProtobuf のインストール、およびQt GRPC の例の実行については、vcpkg を使用した Windows 用のインストール例を参照してください。

C++ API

Protobuf ファイルを Qt ベースのプロジェクトに追加し、必要なソースコードを生成するには、qtgrpcgen およびqtprotobufgen Qt プラグインとともにprotoc コンパイラを使用します。

  • qtprotobufgen Tool はprotobufメッセージ定義から Qt クラスを生成します。このプロセスを自動化するには、qt_add_protobufCMake コマンドを使用します。
  • qtgrpcgen Tool はprotobufサービス定義からインターフェースを生成します。このプロセスを自動化するにはqt_add_grpcCMake コマンドを使用します。

Qt GRPC を使用する CMake プロジェクトファイルの最小例は次のようになります:

cmake_minimum_required(VERSION 3.16...3.22)
project(MyProject)

find_package(Qt6 REQUIRED COMPONENTS Protobuf Grpc)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)

qt_add_protobuf(MyApp
    PROTO_FILES
        path/to/messages.proto
)

qt_add_grpc(MyApp CLIENT
    PROTO_FILES
        path/to/service.proto
)

target_link_libraries(MyApp PRIVATE Qt6::Protobuf Qt6::Grpc)

QML API

QML API モジュールの QML 型はQtGrpc のインポートから利用できます。この型を使用するには、.qml ファイルに以下の import 文を追加してください:

import QtGrpc

記事とガイド

参考文献

ライセンスと帰属

Qt GRPC モジュールはThe Qt Company の商用ライセンスで利用できます。さらに、フリーソフトウェアライセンスでも利用可能です:GNU General Public License, version 3.詳細はQt ライセンスを参照してください。

さらに、Qt 6.9.0のQt GRPC 、以下の寛容なライセンスの下でサードパーティモジュールを含むことができます:

gRPC, version 1.50.1

Apache ライセンス 2.0

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.