# SEDSnet Documentation
SEDSnet 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.
The current release is v4.0.21. Untrusted discovery counts are bounded by the remaining wire payload
before collection storage is reserved, so malformed or truncated traffic is rejected instead of
halting an embedded router with a Rust capacity-overflow panic. Discovery snapshots are coalesced per
sender and destination, keeping embedded transmit memory bounded without losing other boards.
See [Changelogs](Changelogs) for version highlights and release notes.
## Start here (easy overview)
These pages are written for readers who want a clear mental model before digging into code.
- [Overview](Overview)
- [Concepts](Concepts)
- [Examples](Examples)
- [Glossary-and-Abbreviations](Glossary-and-Abbreviations)
- [Changelogs](Changelogs)
## How-to guides (practical steps)
Step-by-step setup and usage by language.
- [Build-and-Configure](Build-and-Configure)
- [Release-Checklist](Release-Checklist)
- [Time-Sync](Time-Sync)
- [Usage-Rust](Usage-Rust)
- [Usage-C-Cpp](Usage-C-Cpp)
- [Usage-Python](Usage-Python)
- [Troubleshooting](Troubleshooting)
## Technical reference (deep dive)
Detailed pages that describe internals, data structures, and formats.
- [Technical-Index](Technical-Index)
- [Technical-Architecture](Technical-Architecture)
- [Technical-Telemetry-Schema](Technical-Telemetry-Schema)
- [Technical-Wire-Format](Technical-Wire-Format)
- [Technical-Discovery-and-Internal-Formats](Technical-Discovery-and-Internal-Formats)
- [Technical-Router-Details](Technical-Router-Details)
- [Technical-Queues-and-Memory](Technical-Queues-and-Memory)
- [Technical-Packet-Details](Technical-Packet-Details)
- [Technical-Bindings-and-FFI](Technical-Bindings-and-FFI)
## Repo layout (high level)
- [src/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/src): core Rust library (schema,
packet types, packing, router/relay).
- [sedsnet_macros/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/sedsnet_macros): support
macros for Rust integrations.
- Application-owned schema JSON: optional runtime schema seed supplied through
`SEDSNET_STATIC_SCHEMA_PATH`, `SEDSNET_STATIC_IPC_SCHEMA_PATH`, or explicit registration APIs.
The crate does not ship a default user schema.
- [build.rs](https://github.com/Rylan-Meilutis/sedsnet/blob/main/build.rs): tracks build metadata and
optional embedded schema bytes; user schemas are not compiled into normal crate builds.
- [C-Headers/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/C-Headers): C ABI header
(`sedsnet.h`).
- [python-files/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/python-files): Python package
assets and type hints.
- [c-example-code/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/c-example-code),
[python-example/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/python-example),
[rust-example-code/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/rust-example-code), and
[rtos-example-code/](https://github.com/Rylan-Meilutis/sedsnet/tree/main/rtos-example-code):
integration examples.
## Data flow at a glance
```
log(data) rx(bytes)
| |
v v
Router <---- unpack ---- wire ---- pack ----> Router
| \ | \
| \-- local endpoints | \-- local endpoints
| |
+-- tx(bytes) ------------------------------>+
```
Core ideas:
- Telemetry packets carry a runtime-schema-defined type, endpoints, sender name, and payload.
- Routers deliver packets to local endpoints and optionally relay them outward.
- User schema is registered at runtime by API, optional JSON seed, endpoint handler registration,
or discovery sync.
If you want an implementation-level tour, go to [Technical-Architecture](Technical-Architecture).