C++ client guide#
This page is not written yet
It is a stub. It names what belongs here and where the source material is. It does not fake content.
Content follows the v1.0 tag on purpose: the normative section must describe what shipped, not what was planned.
What belongs on this page#
The embedded and native client. Cover the header-only library, the injected clock and randomness, and the transport interface a caller implements.
Source material: lib/valence/README.md (the vendorable front door), lib/valence/include/valence/client.hpp, and examples/valence_demo/demo.cpp.
DEMO-CANDIDATE:
examples/valence_demo/demo.cppwalked step by step as a live connect-and-print session.
Every client guide covers the same seven things#
Keep the order identical across languages, so a reader who knows one guide can skim another.
- Open the transport and complete the handshake.
- Handle the catalog: fetch, cache by etag, or pin it.
- Pass the ready gate.
- Adopt retained STATE before rendering anything.
- Send an intent and render the echo, never the request.
- Keep the session alive, and honor the deadman if you own a source.
- Handle NACKs, including the range fallback for a code you do not know.
Where to go next#
- Quickstart — the same seven steps, worked end to end.
- Hub implementer guide — the other side of this library: making firmware a conforming hub instead of a client.
- CLI guide — watch what your client did to the motion.