Expand description
SEDSnet is a compact networking stack for embedded and host telemetry systems.
It provides runtime schema registration, compact packet packing, discovery-driven routing, reliable delivery, managed state synchronization, time synchronization, P2P service ports and streams, optional E2E payload cryptography, and C/Python bindings.
Most user-facing APIs live in:
config: schema + data type/endpoint configuration.router: routers, relays, sides, discovery, routing policy, P2P, and managed variables.packet:Packetand friends.wire_format: packet packing, unpacking, and wire inspection helpers.
Version 4.0.0 highlights:
- Telemetry endpoints and data types are runtime IDs with process-local registry metadata.
- The build no longer reads
telemetry_config.jsonor generates schema-specific Rust enums. - A JSON schema can still seed the runtime registry with
SEDSNET_STATIC_SCHEMA_PATH. - Nodes can export known endpoints/types, sync schemas through discovery, and register new schema entries over time.
- Discovery assigns compact node addresses and hostnames for P2P service traffic while broadcast endpoint telemetry continues to use endpoint subscriptions.
Modules§
- config
- Runtime telemetry configuration and schema registry.
- crypto
- Feature-gated cryptography provider interfaces.
- diagnostics
- discovery
- packet
- Telemetry packet core type and formatting helpers.
- relay
- router
- Telemetry Router
- timesync
- Time synchronization primitives, packet helpers, and network-clock utilities.
- wire_
format - Wire-format packing and unpacking of telemetry packets.
Macros§
- do_
vec_ log_ typed - Helper macro used by the C FFI (
c_api) to: - impl_
data_ as_ prim - Helper macros for implementing
Packetdata accessors for primitive slices. - impl_
from_ prim_ slices - Helper macros for implementing
Packetconstructors and accessors for primitive slices. - impl_
ledecode_ auto - Implement the [
LeDecode] trait for a numeric type with fixed size. - impl_
letype_ num - Implement the [
LeBytes] trait for a numeric type with a fixed byte width. - impl_
repr_ i32_ enum - Implement [
ReprI32Enum] for a concrete#[repr(i32)]enum and perform a compile-time size check to ensure it really is the same size asi32. - impl_
repr_ u32_ enum - Implement [
ReprU32Enum] for a concrete#[repr(u32)]enum and perform a compile-time size check to ensure it really is the same size asu32.
Structs§
- Endpoint
Meta - Message
Meta - Static metadata for a message type: element count and valid endpoints.
Enums§
- E2eEncryption
Policy - End-to-end cryptography preference for a data type.
- Message
Class - High-level classification of message kind.
- Message
Data Type - Primitive element type used by a message.
- Message
Element - Describes how many elements are present for a given message type.
- Reliable
Mode - Reliable delivery mode for a data type.
- Route
Selection Mode - Telemetry
Error - Rich error type used throughout the telemetry crate.
- Telemetry
Error Code - Numeric error codes used on the C/Python FFI boundary.
Constants§
- MAX_
VALUE_ DATA_ ENDPOINT - Maximum enum value for
DataEndpoint(inclusive), derived from the schema. - MAX_
VALUE_ DATA_ TYPE - Maximum enum value for
DataType(inclusive), derived from the schema. - MAX_
VALUE_ ROUTE_ SELECTION_ MODE - Maximum enum value for
RouteSelectionMode(inclusive).
Functions§
- current_
max_ data_ type_ id - current_
max_ endpoint_ id - data_
type_ size - Size in bytes of a single element for the given
MessageDataType. - endpoints_
from_ datatype - Return the default endpoints for a given
DataType. - get_
data_ type - Return the element data type (e.g.,
Float32,Int16,String) for a givenDataType. - get_
info_ type - Return the logical “info” type (Info/Error) for a given
DataType. - get_
message_ name - Return the message name for a given
DataType. - get_
needed_ message_ size - Return the total payload size (in bytes) required for a given
DataTypeunder the static schema. - is_
reliable_ type - Return whether the given
DataTypeis configured for reliable delivery. - message_
e2e_ encryption_ policy - Return the end-to-end cryptography policy for a data type.
- message_
meta - Lookup
MessageMetafor a givenDataTypeusing the generated config. - message_
priority - Return the queue priority for the given
DataType. - parse_
f64 - parse_
u8 - parse_
u128 - reliable_
mode - Return the reliable delivery mode for the given
DataType. - try_
enum_ from_ i32 - Try to convert an
i32into a#[repr(i32)]enumE. - try_
enum_ from_ u32 - Try to convert a
u32into a#[repr(u32)]enumE.
Type Aliases§
- Telemetry
Result - Common result alias for telemetry operations.