Getting Started
This tutorial walks from zero to a SubEtha program that the sidecar is actively observing. No prior knowledge of the substrate assumed, just a working Rust toolchain.
If you already know what Channel<T> and SidecarBox are and just
want a quick reminder of which primitive matches your shape, skip
to role-pair selection
.
The path through
Three short chapters. Reading them in order takes about twenty minutes.
- Installation . Confirms the toolchain builds against SubEtha and runs the substrate microbench.
- Cross-process round-trip in 30 lines
.
Two processes, one MMF file, a
SharedHashMapwritten by one process and read by the other. The end-to-end demo of the CXC family. - Reading sidecar observations
. What
the sidecar saw, via
InstanceStats. Layout of theObservationrecord. The op-kind histogram.
Chapter 2 uses a SharedHashMap, but the CXC channels (Channel<T> /
AdaptiveIpc<T>) answer three calling conventions on one handle: the
sync send / recv, send_blocking / recv_blocking (parks a
thread), and send_async / recv_async (suspends a task) - the choice
is per call site, not a second type. The
high-level API reference
lays out all three conventions, and
async: cost and scaling
covers when to
reach for each and what the async path measures.
After the tutorial you know enough SubEtha to read the How-To Guides for tasks and the Reference pages for the spec. Two pages worth reading early: concurrency and safety - whether you need locks (you do not), why the rings are thread- and process-safe, and the one thing you are responsible for; and tuning and overrides for every environment variable, Cargo feature, and build recipe. The bridges reference takes the same channels cross-host over QUIC, TCP, or the Sens-O-Matic reliable-FEC protocol.