Gateway Supported Platforms¶
The protocol gateways target Linux-class host systems where external protocol SDKs are available. Unlike the core opensomeip stack (which runs on bare-metal RTOS targets), gateways require POSIX networking and depend on userspace libraries.
Platform Matrix¶
| Platform | Architecture | Compiler | CI Tested | Notes |
|---|---|---|---|---|
| Ubuntu (latest) | x86_64 | GCC | Primary CI platform | |
| Ubuntu (latest) | x86_64 | Clang | ||
| Fedora 42 | x86_64 | GCC | Container-based CI | |
| Fedora 42 | x86_64 | Clang | ||
| macOS (latest) | arm64 (Apple Silicon) | AppleClang | Local dev verified |
CI Pipeline¶
graph LR
PR[Push / PR] --> Ubuntu["Ubuntu (GCC + Clang)"]
PR --> Fedora["Fedora 42 (GCC + Clang)"]
PR --> Cov[Coverage]
PR --> San["Sanitizers (ASan + UBSan)"]
Ubuntu --> Tests1[Build + Test]
Fedora --> Tests2[Build + Test]
Cov --> Report[gcovr Report]
San --> |GCC + Clang| Tests4[Test under Sanitizers]
Tests1 --> Pub[Publish Results]
Tests2 --> Pub
Tests4 --> Pub
| Job | Platform | Compilers | Purpose |
|---|---|---|---|
| Build | Ubuntu | GCC, Clang | Build + test all gateway libraries and tests |
| Build (Fedora) | Fedora 42 | GCC, Clang | Fedora container build + test |
| Coverage | Ubuntu | GCC | Code coverage via gcovr |
| Sanitizers | Ubuntu | GCC, Clang | AddressSanitizer + UndefinedBehaviorSanitizer |
Gateway SDK Dependencies¶
CI installs all required SDKs from system packages and builds every gateway with the real libraries linked.
| Gateway | External SDK | CI Package (Ubuntu) | CI Package (Fedora) |
|---|---|---|---|
| common | None | — | — |
| iceoryx2 | iceoryx2-cxx | Not packaged (inprocess sim) | Not packaged (inprocess sim) |
| MQTT | Paho MQTT C++ | libpaho-mqttpp-dev |
paho-mqtt-cpp-devel |
| gRPC | gRPC + Protobuf | libgrpc++-dev |
grpc-devel |
| ROS2 | rclcpp + std_msgs | Not packaged (callback mode) | Not packaged (callback mode) |
| D-Bus | libsystemd | libsystemd-dev |
systemd-devel |
| Zenoh | zenohc | Not packaged | Not packaged |
| DDS | CycloneDDS | cyclonedds-dev |
cyclonedds-devel |
Building a gateway locally
Gateway CMake options like -DBUILD_GATEWAY_MQTT=ON are defined in the
opensomeip-gateways repository,
not in the core opensomeip repo.
Compiler Requirements¶
| Compiler | Minimum Version | C++ Standard |
|---|---|---|
| GCC | 9.0 | C++17 |
| Clang | 10.0 | C++17 |
| AppleClang | 12.0 | C++17 |