package

github.com/PlaceOS/driver

8.1.4 / published Aug 14, 2026 / repository

PlaceOS driver framework.

PlaceOS Driver

CI

The framework for running drivers on PlaceOS.

Requirements

  • libssh2 required for SSH support

Transport selection

Only the transports a driver declares are compiled into the binary, based on the discovery settings in the driver class body:

DeclarationTransports compiled
tcp_port 1234TCP + SSH
udp_port 1234UDP
uri_base "https://..."HTTP + websocket
none of the abovelogic only

Starting a module with a role the driver was not compiled for raises at module start, for example: driver was not compiled with HTTP transport support, declare 'uri_base' in the driver to enable it.

All transports can be forced into a binary with the -Dplaceos_all_transports compiler flag, by setting the PLACEOS_ALL_TRANSPORTS env var at build time, or by calling PlaceOS::Driver.load_all_transports after requiring the library. The test-harness sets the env var on its build service, as DriverSpecs launches every driver against a mock raw TCP server (role: 1) plus a mock HTTP server, regardless of the transports the driver uses in production.

API

  • DriverSpecs

    A place driver has 4 typical points of IO contact 1.

  • Object

    Object is the base type of all Crystal objects.

  • PlaceOS