Skip to content

SolidSyslog

SolidSyslog is a structured RFC 5424 syslog library for embedded and industrial systems, built to give shipping products the audit trail the EU Cyber Resilience Act and IEC 62443 expect. This documentation is organised around what you came to do.

See a complete integration, one commit at a time, with every byte measured: solid-syslog-example (CMake) and solid-syslog-example-make (Make).

Pick a lane:

  • Core: the library itself — the protocol, the pipeline, and the portable pieces that run the same everywhere.
  • Integrate it: get a syslog stack compiling and sending in your product.
  • Platforms: what reaches your hardware — the shipped adapters, and how to write one for a target we don't cover.
  • Compliance: the CRA, IEC 62443, the RFCs, and the security posture.
  • API reference: the public contracts, by audience.
  • Maintaining the library: building, testing, and releasing SolidSyslog itself.

Core

  • Core: what is always compiled and depends on nothing external — the syslog protocol, the assembly, buffering, storage and sending pipeline, and the portable role implementations. Where a platform exists to reach your hardware, Core exists to be the same everywhere.

Integrate

Everything you need to consume SolidSyslog in your product.

Platforms

A platform is a set of adapters wrapping one upstream thing — a network stack, a TLS library, a filesystem, an OS — behind the library's vtables. Each page says what that platform ships and what wiring it needs; the pages above speak of them in the general case.

  • Platform × capability matrix: start here. Read across a row for what a platform gives you, down a column for who provides a capability.
  • Porting guide: nothing shipped fits your target. The role model, the anatomy of an adapter (instance shape, the no-malloc static pool, the error convention), the invariants every adapter must honour, and the vtable role contracts, each with its shipped reference implementation.
  • The roles: each role's vtable contract, and the backends that realise it.

Compliance

API reference

The public headers are split by the job your code is doing: logging an event or draining the queue each include only SolidSyslog.h, while the setup that builds the logger includes SolidSyslogConfig.h plus one header per component it wires. The API reference explains that split, introduces the platforms and roles behind the config struct, and links the full generated reference — Headers, Data structures, Functions, and Macros.

Maintaining

For contributors and maintainers of SolidSyslog itself (not for consuming it, which is Integrate above).