Qt GRPC
Qt GRPC, en association avec le Qt Protobuf module, permet une communication rapide et peu gourmande en mémoire avec les gRPC™ serveurs. Il intègre de manière transparente les services gRPC dans le framework Qt, permettant ainsi la communication entre différents langages de programmation ou environnements, que le serveur soit ou non basé sur Qt.
Présentation
gRPC est un framework multiplateforme et hautement performant deappel de procédure à distance (RPC). Il utilise le compilateur Protobuf (protoc) pour générer des interfaces client et serveur à partir des sections « service » d’un schéma Protobuf pour divers langages de programmation. Il est couramment utilisé pour connecter des services dans des architectures de type microservices ou pour relier des applications mobiles et des navigateurs à des systèmes backend. Pour plus de détails, consultez l’introduction à gRPC.
Qt GRPC Qt Quick Il se compose d’API C++ et d’API qui gèrent la nature asynchrone des appels de procédure à distance (RPC) à l’aide du mécanisme bien connu « protocSignals & Slots ». Il fournit également des outils en ligne de commande et une API CMake pour rationaliser la génération d’interfaces spécifiques à Qt à l’aide d’ .
Qt GRPC prend actuellement en charge les fonctionnalités côté client. Cela signifie qu’il peut communiquer avec un serveur compatible gRPC. Il peut s’agir de votre propre serveur doté de son API protobuf ou d’une API accessible au public, telle que les API Google.
Utilisation du module
Prérequis du module
protoc, le compilateur Protocol Buffers, est nécessaire pour exécuter les plugins du générateur de code Qt. Voir Installation de Protoc.- Facultatif : prise en charge de SSL.
- Facultatif : gRPC C++ pour exécuter les exemples.
Remarque : consultez l’exemple d’installation sous Windows à l’aide de vcpkg pour obtenir des instructions sur l’installation d’ gRPC et de Protobuf, ainsi que sur l’exécution des exemples d’ Qt GRPC.
API C++
Pour ajouter des fichiers protobuf à un projet basé sur Qt et générer le code source requis, utilisez le compilateur protoc avec les plugins Qt qtgrpcgen et qtprotobufgen.
- L’outil qtprotobufgen génère des classes Qt à partir de définitions de messages Protobuf. Utilisez la commande CMake qt_add_protobuf pour automatiser ce processus.
- L’outil qtgrpcgen génère des interfaces à partir de définitions de services protobuf. Utilisez la commande CMake ` qt_add_grpc ` pour automatiser ce processus.
Voici à quoi peut ressembler un exemple minimal de fichier de projet CMake utilisant Qt GRPC:
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)API QML
Les types QML du module sont disponibles via l’importation ` QtGrpc `. Pour utiliser ces types, ajoutez la déclaration d’importation suivante à votre fichier .qml :
import QtGrpcArticles et guides
- Qt GRPC Guide du client
- Commandes CMake dans Qt6 GRPC
- Qt GRPC Considérations de sécurité
- Qt GRPC Présentation des intercepteurs
Références
Exemples
Licences et mentions
Le module « Qt GRPC » est disponible sous licence commerciale auprès de The Qt Company. Il est également disponible sous licence de logiciel libre : la Licence publique générale GNU, version 3. Pour plus de détails, consultez la page Licences Qt.
Par ailleurs, le module « Qt GRPC » de Qt 6.12.0 peut contenir des modules tiers sous les licences permissives suivantes :
Licence Apache 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.