Skip to content

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. Compile the ones your target needs; every unfilled role falls back to a Core Null object.

Read across a row for what a platform gives you, down a column for who provides a capability. Capabilities are coarser than roles: TLS is the Stream role with a TLS backend, and time / host are plain callbacks rather than a vtable.

Platform × capability matrix

Platform Wraps Network TLS At-rest crypto Files OS primitives Time & host
Posix POSIX / BSD sockets
Windows Win32 / Winsock
FreeRTOS FreeRTOS kernel
FreeRTOS-Plus-TCP FreeRTOS-Plus-TCP
lwIP (Raw API) lwIP Raw API
OpenSSL OpenSSL ≥ 3.0
Mbed TLS Mbed TLS
FatFs ChaN FatFs
FreeRTOS-Plus-FAT FreeRTOS-Plus-FAT
C11 atomics <stdatomic.h>

The at-rest-crypto column is the keyed policies (HMAC-SHA256, AES-256-GCM); the unkeyed CRC-16 policy is Core. Buffer, Store, and Structured Data are roles Core fills directly (with a Posix message-queue buffer option) — they're under Roles, not here.

Bring your own

No shipped platform for your target? Filling a role is implementing one vtable. The role pages state each contract; Porting is the full guide.

Or let us do it.

We build and support SolidSyslog platform adapters — your RTOS, network stack, filesystem or crypto library — and the tests that prove them. Talk to us about it.