proton-bridge/internal/frontend/bridge-gui
Romain Le Jeune 3ca56cfab3 fix(GODT-2458): Wait for both bridge and bridge-gui to be ended before restarting on crash. 2023-03-07 15:44:58 +00:00
..
bridge-gui fix(GODT-2458): Wait for both bridge and bridge-gui to be ended before restarting on crash. 2023-03-07 15:44:58 +00:00
bridge-gui-tester
bridgepp feat(GODT-2446): Attach logs to sentry reports for relevant bridge-gui exceptions. 2023-03-06 18:36:40 +01:00
BridgeSetup.cmake
CMakeLists.txt
FindQt.cmake
README.md

README.md

bridge-gui

bridge-gui is the graphical user interface for Bridge. It's a C++ Qt application that communicates with the bridge executable via gRPC remote procedure call, on a local-only TLS-secured connection.

Components

bridge-gui consists in 3 components:

  • bridge-gui: The Bridge-GUI application itself. It's a QML Qt application that implements the bridge gRPC service to communicate and interact with the bridge application written in Go.
  • bridge-gui-tester: A Qt widgets test application that offers a dummy gRPC server implementing the Bridge gRPC service. It can be used as a debugging and development tool, as it can simulate the server side (bridge) portion of the gRPC service.
  • bridgepp: bridgepp (for bridge++) is a C++ static library that contains the code shared by bridge-gui and bridge-gui-tester.

Bridge gRPC service

The bridge gRPC service that allows communications between bridge-gui, and the bridge Go application (or bridge-gui-tester) is defined in ../grpc/bridge.proto.

Supported platforms

bridge-gui runs on the same platforms as the bridge app:

  • Linux x64.
  • macOS x64 and Apple Silicon.
  • Windows x64.

Requirements:

  • A C++ development toolchain (GCC/Clang/ MSVC, CMake, Ninja). An easy way to get all the needed tools is to use a modern IDE such as CLion, Qt Creator or Visual Studio Code that will check and install or use their bundled versions of the tools.
  • Qt 6. Use the online installer to install the latest stable release of Qt for your platform and compiler.

First build

bridge-gui uses vcpkg, Microsoft multi-platform C/C++ dependency manager to get the source code and build gRPC and its dependencies (protobuf, zlib, ...). vcpkg is managed as a git submodule in extern/vcpkg,relative to the root of the bridge source tree. A pair of scripts is provided to perform the initialization of vcpkg, the retrieval and compilation of gRPC and a first build of the bridge-gui project components:

  • build.sh: a shell script to use on macOS and Linux.
  • build.ps1: a PowerShell script for Windows.