-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
SERP ships two packages:
| Package | Contents |
|---|---|
serp |
Runtime shared libraries. Install on deployment targets that only need to run services, not build them. |
serp-dev |
Headers, CMake config, serpgen code generator, test engine, runtime debug adapters. Install on developer machines and CI. |
For development, install serp-dev. It includes everything in serp plus the build-time tooling.
brew tap OleksandrGeronime/serp
brew trust OleksandrGeronime/serp
brew install OleksandrGeronime/serp/serp-devTo install the runtime-only package instead:
brew install OleksandrGeronime/serp/serpUpgrade:
brew update && brew upgrade OleksandrGeronime/serp/serp-devDownload both .deb files from the Releases page and install with dpkg.
Replace x.y.z with the version you want to install:
VERSION=x.y.z
wget https://github.com/OleksandrGeronime/serp/releases/download/v${VERSION}/serp_${VERSION}_amd64.deb
wget https://github.com/OleksandrGeronime/serp/releases/download/v${VERSION}/serp-dev_${VERSION}_amd64.deb
sudo dpkg -i serp_${VERSION}_amd64.deb
sudo dpkg -i serp-dev_${VERSION}_amd64.debIf dpkg reports missing dependencies, resolve them with:
sudo apt-get install -fUpgrade: Download the new .deb files and re-run dpkg -i. The package manager replaces the previous version in place.
serpgen --versionThis should print the installed version of serpgen. If the command is not found, check that the install location is on your PATH.
Once serp-dev is installed, locate the package and link against the SERP libraries in your CMakeLists.txt:
find_package(Serp REQUIRED)
target_link_libraries(your_target
Serp::core
Serp::transport
Serp::logger_console
)find_package(Serp) reads the CMake config installed by serp-dev and exposes the Serp:: imported targets. No manual include path or library path configuration is needed.
Common Serp:: targets:
| Target | Purpose |
|---|---|
Serp::core |
Core runtime: EventLoop, service base, interface dispatch |
Serp::transport |
Transport abstraction layer |
Serp::logger_console |
Console logger adapter |
Specific transport backends (e.g., Serp::transport_dbus, Serp::transport_grpc) are linked only when that backend is used in the deployment spec.
Getting Started
The Development Model
Architecture Language
Code Generator
- Generator Overview
- Generated Code Layout
- Deployment Configurations
- Lifecycle Backends
- CMake Integration
Framework Internals
- Core Concepts
- Services & Lifecycle
- Methods
- Properties
- Notifications
- Timers & Watchdog
- Promises & Async
- Streams
- Commands
- Logging
- Test Engine
- Transports
- Runtime & Debug Tools
VS Code Plugin
Examples