Skip to content

Installation

Oleksandr Geronime edited this page Jun 27, 2026 · 2 revisions

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.


macOS — Homebrew (Recommended)

brew tap OleksandrGeronime/serp
brew trust OleksandrGeronime/serp
brew install OleksandrGeronime/serp/serp-dev

To install the runtime-only package instead:

brew install OleksandrGeronime/serp/serp

Upgrade:

brew update && brew upgrade OleksandrGeronime/serp/serp-dev

Ubuntu / Debian — .deb Package

Download 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.deb

If dpkg reports missing dependencies, resolve them with:

sudo apt-get install -f

Upgrade: Download the new .deb files and re-run dpkg -i. The package manager replaces the previous version in place.


Verify the Install

serpgen --version

This should print the installed version of serpgen. If the command is not found, check that the install location is on your PATH.


CMake Integration

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.

Clone this wiki locally