Qt GRPC
Qt GRPCwird zusammen mit dem Qt Protobuf Modul eine schnelle und speicherplatzsparende Kommunikation mit gRPC™ Servern. Es integriert die Dienste von gRPC nahtlos in das Qt-Framework und ermöglicht so die Kommunikation über verschiedene Programmiersprachen oder Umgebungen hinweg, unabhängig davon, ob der Server auf Qt basiert.
Übersicht
gRPC ist ein plattformübergreifendes, leistungsstarkes Remote-Procedure-Call-Framework (RPC). Es nutzt den Protobuf-Compiler (protoc), um Client- und Server-Schnittstellen aus den Abschnitten „ service “ in einem Protobuf-Schema für verschiedene Programmiersprachen zu generieren. Es wird häufig verwendet, um Dienste in Microservices-Architekturen miteinander zu verbinden oder mobile Anwendungen und Browser mit Backend-Systemen zu verknüpfen. Weitere Details finden Sie in der gRPC-Einführung.
Qt GRPC besteht aus C++- und Qt Quick -APIs, die die asynchrone Natur von Remote Procedure Calls mithilfe des bekannten „Signals & Slots“-Mechanismus handhaben. Es bietet außerdem Befehlszeilentools und eine CMake-API, um die Generierung von Qt-spezifischen Schnittstellen mithilfe von protoc zu optimieren.
Qt GRPC Derzeit werden clientseitige Funktionen unterstützt. Das bedeutet, dass eine Kommunikation mit einem gRPC-kompatiblen Server möglich ist. Dabei kann es sich um Ihren eigenen Server mit dessen Protobuf-API oder um eine öffentlich verfügbare API handeln, wie beispielsweise die Google-APIs.
Verwendung des Moduls
Voraussetzungen für das Modul
protoc, der Protocol-Buffers-Compiler, ist für die Ausführung der Qt-Code-Generator-Plugins erforderlich. Siehe Installation von Protoc.- Optional: SSL -Unterstützung.
- Optional: gRPC C++ zum Ausführen der Beispiele.
Hinweis: Anweisungen zur Installation von „ gRPC “ und „Protobuf“ sowie zur Ausführung der „ Qt GRPC “-Beispielefinden Sie im Beispiel zur Installation unter Windows mit vcpkg.
C++-API
Um Protobuf-Dateien zu einem Qt-basierten Projekt hinzuzufügen und den erforderlichen Quellcode zu generieren, verwenden Sie den protoc -Compiler zusammen mit den Qt-Plugins „ qtgrpcgen “ und „ qtprotobufgen “.
- Das Tool „qtprotobufgen“ generiert Qt-Klassen aus Protobuf-Nachrichtendefinitionen. Verwenden Sie den CMake-Befehl „qt_add_protobuf“, um diesen Vorgang zu automatisieren.
- Das Tool „qtgrpcgen“ generiert Schnittstellen aus Protobuf-Dienstdefinitionen. Verwenden Sie den CMake-Befehl „qt_add_grpc“, um diesen Vorgang zu automatisieren.
Ein minimales Beispiel für eine CMake-Projektdatei, die „ Qt GRPC “ verwendet, könnte wie folgt aussehen:
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
Die QML-Typen des Moduls sind über den Import „ QtGrpc “ verfügbar. Um die Typen zu verwenden, fügen Sie die folgende Importanweisung in Ihre .qml-Datei ein:
import QtGrpcArtikel und Anleitungen
- Qt GRPC Client-Handbuch
- CMake-Befehle in Qt6 GRPC
- Qt GRPC Sicherheitshinweise
- Qt GRPC Übersicht über Interceptoren
Referenzen
Beispiele
Lizenzen und Quellenangaben
Das Modul „ Qt GRPC “ ist unter kommerziellen Lizenzen von The Qt Company erhältlich. Darüber hinaus ist es unter freien Softwarelizenzen verfügbar: der GNU General Public License, Version 3. Weitere Informationen finden Sie unter „Qt-Lizenzierung “.
Darüber hinaus kann „ Qt GRPC “ in Qt 6.12.0 Module von Drittanbietern enthalten, die unter den folgenden freizügigen Lizenzen stehen:
Apache-Lizenz 2.0 |
© 2026 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.