Skip to main content

Crate epics_libcom_rs

Crate epics_libcom_rs 

Source
Expand description

EPICS libCom for Rust: the layer an IOC is built on, with no record system above it.

This is epics_base_rs::runtime and epics_base_rs::net lifted out of epics-base-rs (issue #55) so a consumer — a protocol client, a gateway, pvxs-rs — can take the concurrency and socket primitives without taking the database with them. The name is C’s: libCom is where upstream EPICS keeps epicsThread, epicsTime, errlog, envDefs and osiSock, which is exactly this crate’s two modules.

epics-base-rs re-exports both modules at their original paths, so epics_base_rs::runtime::… and epics_base_rs::net::… still resolve and nothing downstream had to change.

  • runtime — the task seam and its two backends, epicsThread-parity priority bands, errlog, the EPICS string/environment types, the general-time provider.
  • net — the EPICS protocols’ shared socket layer: per-NIC async UDP, interface enumeration, loopback multicast. Host-only; the wire constants beside it compile for every target, RTEMS included.
  • walltimeWallTime, the wall-clock instant runtime::time returns. It lived in epics_base_rs::types and moved down with its producer; epics-base-rs re-exports it at types::WallTime.

§Features

Modules§

net
Cross-platform networking primitives shared by epics-ca-rs, epics-pva-rs, and epics-bridge-rs.
runtime
The concurrency, timing, logging and OS-facing primitives an IOC is built on — C libCom’s epicsThread / epicsTime / errlog / envDefs half.
walltime
WallTime — a wall-clock instant with full EPICS nanosecond precision on every platform.

Macros§

rt_debug
Debug-level runtime log line. Routes through the tracing facade.
rt_error
Error-level runtime log line. Routes through the tracing facade.
rt_info
Info-level runtime log line. Routes through the tracing facade.
rt_warn
Warn-level runtime log line. Routes through the tracing facade.

Constants§

EXEC_BACKEND
Which runtime::task backend this build selected — true for the reactor-free std-thread runtime::background executor, false for tokio.