mcumgr_smp/lib.rs
1// Author: Sascha Zenglein <zenglein@gessler.de>
2// Copyright (c) 2024 Gessler GmbH.
3
4//! A library that implements the SMP protocol.
5//!
6//! This library aims to be compatible with the Zepyhr SMP implementation.
7//! For more information, see <https://docs.zephyrproject.org/3.1.0/services/device_mgmt/smp_protocol.html>
8//!
9//! # Transport
10//! A transport implementation is provided for a number of different transports. Both
11//! sync and async versions exist, but due to implementation effort and available crates
12//! this varies for each transport type.
13//! See the [transport] module for more information.
14//!
15//! #### Bring your own transport
16//! [SmpFrame] is implemented in such a way that it uses raw bytes (i.e. [Vec]) to encode or decode
17//! messages. You can handle this conversion yourself and send these bytes over any channel.
18
19/// Implementation of a general [SmpFrame] that can have any payload.
20pub mod smp;
21
22#[cfg(feature = "payload-cbor")]
23pub mod application_management;
24#[cfg(feature = "payload-cbor")]
25pub mod os_management;
26#[cfg(feature = "payload-cbor")]
27pub mod shell_management;
28
29/// Implementations over Serial, BLE and UDP transports
30pub mod transport;
31
32pub use smp::*;