Skip to main content

openember-msgs protocol

openember-msgs is the shared message-protocol repository for OpenEmber and EmberLite. It holds .proto definitions, Nanopb options, and generation entry points — not the runtimes themselves.

Core principles:

  • Versioned separately: message definitions are maintained and tagged in openember-msgs.
  • Runtime-specific bindings: OpenEmber uses C++ Protobuf; EmberLite uses Nanopb C.
  • Zenoh routes, Protobuf shapes: Zenoh keys decide where messages go; Protobuf types define payload layout.
  • No copied protos: OpenEmber and EmberLite should not each maintain a private .proto tree.

Current packages

PackagePurpose
common/v1Shared types (Header, Status, …)
node/v1Node info, heartbeat, registry
lifecycle/v1Lifecycle state and transitions
diagnostics/v1Health / diagnostics
parameter/v1Parameter get/set/events
log/v1Structured logs
device/v1Device info and status
runtime/v1Process start/stop events

Both OpenEmber and EmberLite gate protocol generation with OPENEMBER_ENABLE_MSGS. Source selection is FETCH (default, pulls main) or LOCAL (path via OPENEMBER_MSGS_LOCAL_SOURCE).

Where to configure

In OpenEmber Kconfig:

Communication / Messages

Typical CMake overrides:

cmake -S . -B build \
-DOPENEMBER_MSGS_SOURCE=LOCAL \
-DOPENEMBER_MSGS_LOCAL_SOURCE=/path/to/openember-msgs

Disable when unused:

cmake -S . -B build -DOPENEMBER_ENABLE_MSGS=OFF