Skip to content

Commit

Permalink
update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Ulf Lilleengen committed Oct 6, 2023
1 parent 4859555 commit 884acff
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,28 @@
[![docs.rs](https://docs.rs/embedded-update/badge.svg)](https://docs.rs/embedded-update)
[![Matrix](https://img.shields.io/matrix/drogue-iot:matrix.org)](https://matrix.to/#/#drogue-iot:matrix.org)

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.
The `embedded-update` crate implements firmware update protocol for embedded devices connected to a firmware update service, which works in `no_std` 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.
Both the device to be updated and the update service are pluggable, so the protocol can be used with any device flash 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 requests across 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

* `Serial` - implements a serial update protocol for a device, that can be used over UART, USB Serial etc.
* `InMemory` - implements a hard coded update service that serves an update from memory.

See [drogue-device](https://github.com/drogue-iot/drogue-device) for additional update service implementations.
* (builtin) `Serial` - implements a serial update protocol for a device, that can be used over UART, USB Serial etc.
* (builtin) `InMemory` - implements a hard coded update service that serves an update from memory.
* (external) [Drogue Device `HttpUpdater`](https://github.com/drogue-iot/drogue-device) - implements an update protocol over HTTP using Drogue Cloud + Drogue Ajour.
* (external) [Drogue Device `LorawanService`](https://github.com/drogue-iot/drogue-device) - implements an update protocol over LoRaWAN using Drogue Cloud + Drogue Ajour.

## Supported devices

* `Serial` - implements a serial update protocol allowing to talk to a device implementing this protocol over UART, USB Serial etc.
* `Simulated` - implements a simulated device for testing update services.

See [drogue-device](https://github.com/drogue-iot/drogue-device) for additional device implementations.
* (builtin) `Serial` - implements a serial update protocol allowing to talk to a device implementing this protocol over UART, USB Serial etc.
* (builtin) `Simulated` - implements a simulated device for testing update services.

# Minimum supported Rust version (MSRV)

`embedded-update` requires two features from `nightly` to compile when using the `nightly` flag.
`embedded-update` requires a feature from `nightly` to compile when using the `nightly` flag.

* async_fn_in_traits
* impl_trait_projections

0 comments on commit 884acff

Please sign in to comment.