Crate embedded_update
source · [−]Expand description
Firmware updates for embedded devices
The embedded-update crate implements a firmware update protocol for embedded devices connected to a firmware update service, which works in no_std (bare metal) environments.
Both the device to be updated and the update service are pluggable, so the protocol can be used with any device or service that implements the provided traits. This means you can use the library directly on an embedded device, or on a gateway that proxies multiple devices.
The library provides the InMemory and Serial reference implementations of the UpdateService trait, and the Simulator and Serial implementations for the FirmwareDevice trait.
Update service and device implementations can be added to embedded-update when types and traits for interacting with device flash and network connections are more widely available.
Supported update services
An implementation for Drogue Cloud can be found in Drogue Device.
Supported devices
Device side implementations can be found in Drogue Device.
Minimum supported Rust version (MSRV)
embedded-update requires two features from nightly to compile:
generic_associated_typestype_alias_impl_trait
These features are complete, but are not yet merged to stable.
Modules
Implementations of the FirmwareDevice trait.
Implementations of the UpdateService trait.
Structs
Represents a serde serializeable byte slice.
The current status of the firmware on a device
The updater process that uses the update service to perform a firmware update check for a device. If the device needs to be updated, the updater will follow the update protocol
Represents the current state of firmware and firmware being written on a device.
The status of the firmware being written to a device.
Configuration for the updater task.
Enums
Represents a command issued from the update service to a device.
The device status as determined after running the updater.
The error types that the updater may return during the update process.
Traits
Represents a device that can be updated by a FirmwareUpdater.
Type representing the firmware version
Trait for the firmware update service.