Qt GRPC, together with the Qt Protobuf module, enables fast and space-efficient communication with gRPC ™ servers. It integrates gRPC services seamlessly into the Qt framework, allowing communication across different programming languages or environments regardless of whether the server is based on Qt.
gRPC
is a cross-platform, high-performance Remote Procedure Call (RPC) framework. It uses the Protobuf compiler (
protoc
) to generate client and server interfaces from
service
sections in a protobuf schema for various programming languages. It is commonly used to connect services in microservices-style architectures or to link mobile applications and browsers with backend systems. For more details, see the
gRPC Introduction
.
Qt GRPC consists of C++ and Qt Quick APIs that handle the asynchronous nature of Remote Procedure Calls using the well-known
信号 & 槽
mechanism. It also provides command-line tools and a CMake API to streamline the generation of Qt-specific interfaces using
protoc
.
Qt GRPC currently supports client-side functionality. This means it can communicate with a gRPC-compatible server. This could be your own server with its protobuf API or a publicly available API, such as the Google APIs .
protoc
, the Protocol Buffers compiler, is required to run the Qt code generator plugins. See
Protoc Installation
.
注意: 见 Example of installation for Windows using vcpkg for instructions on installing gRPC and Protobuf , and running Qt GRPC examples.
To add protobuf files to a Qt-based project and generate the required source code, use the
protoc
compiler along with the
qtgrpcgen
and
qtprotobufgen
Qt plugins.
A minimal example of a CMake project file that uses Qt GRPC can look like this:
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 类型是可用的透过
QtGrpc
导入。要使用类型,添加以下 import 语句到 .qml 文件:
import QtGrpc
The Qt GRPC module is available under commercial licenses from Qt 公司 。此外,它在自由软件许可下也是可用的: GNU GPL (一般公共许可) 第 3 版 。见 Qt 许可 进一步了解细节。
Furthermore, Qt GRPC in Qt 6.8.5 may contain third party modules under the following permissive licenses:
| Apache 许可 2.0 |