-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Rylan Meilutis edited this page Feb 10, 2026
·
14 revisions
Sedsprintf_rs is a Rust telemetry transport and logging library with a shared schema, compact wire format, routing, and multi-language bindings (C/C++ and Python). It targets embedded and host environments and supports optional compression for senders and payloads.
- Router side tracking is internal. Most applications should call the plain RX APIs (
rx_serialized/rx) and only use side-aware variants when explicitly overriding ingress (custom relays, multi-link bridges, etc.). - TCP-like reliability is now available for schema types marked
reliable/reliable_mode, with ACKs, retransmits, and optional ordering. Enable per side and disable when the transport is already reliable. - All serialized frames include a CRC32 trailer for integrity checks. Corrupt frames are dropped; reliable modes trigger retransmit requests.
- Full changelog: v2.4.0...v3.0.0
These pages are written for readers who want a clear mental model before digging into code.
Step-by-step setup and usage by language.
Detailed pages that describe internals, data structures, and formats.
- technical/Index
- technical/Architecture
- technical/Telemetry-Schema
- technical/Wire-Format
- technical/Router-Details
- technical/Queues-and-Memory
- technical/TelemetryPacket-Details
- technical/Bindings-and-FFI
- src/ (source): core Rust library (schema, packet types, serialization, router/relay).
- sedsprintf_macros/ (source): proc-macros that generate schema constants.
- telemetry_config.json (source): schema source of truth (endpoints + data types).
- build.rs (source): generates C header and Python .pyi from the schema.
- C-Headers/ (source): generated C header (
sedsprintf.h). - python-files/ (source): Python package assets and generated .pyi.
- c-example-code/ (source) and python-example/ (source): runnable examples.
log(data) rx(bytes)
| |
v v
Router <---- deserialize ---- wire ---- serialize ----> Router
| \ | \
| \-- local endpoints | \-- local endpoints
| |
+-- tx(bytes) ------------------------------>+
Core ideas:
- Telemetry packets carry a schema-defined type, endpoints, sender name, and payload.
- Routers deliver packets to local endpoints and optionally relay them outward.
- The schema (DataType/DataEndpoint) is generated from telemetry_config.json (source).
If you want an implementation-level tour, go to technical/Architecture.