# nerves_github_updater v0.1.0 - Table of Contents

> GitHub Releases OTA firmware updater for Nerves devices with signed release manifests.

## Pages

- [NervesGithubUpdater](readme.md)
- [Getting started](getting-started.md)
- [Firmware release manifest format](manifest-format.md)
- [Changelog](changelog.md)

## Modules

- Entry point
  - [NervesGithubUpdater](NervesGithubUpdater.md): GitHub Releases OTA firmware updater for Nerves devices.
  - [NervesGithubUpdater.Supervisor](NervesGithubUpdater.Supervisor.md): Library root supervisor for the firmware-update flow.

- Update pipeline
  - [NervesGithubUpdater.Fwup](NervesGithubUpdater.Fwup.md): Streams a `.fw` to `fwup --apply --framing` via an Erlang Port.
  - [NervesGithubUpdater.GithubClient](NervesGithubUpdater.GithubClient.md): Stateless HTTP client for GitHub Releases.
  - [NervesGithubUpdater.Manifest](NervesGithubUpdater.Manifest.md): Parses and validates `release-manifest.json`.
  - [NervesGithubUpdater.Signature](NervesGithubUpdater.Signature.md): Ed25519 signature verification for release manifests, using
`:crypto.verify/5`.
  - [NervesGithubUpdater.Updater](NervesGithubUpdater.Updater.md): Firmware update orchestration GenServer.

- Support
  - [NervesGithubUpdater.VersionCompare](NervesGithubUpdater.VersionCompare.md): Compare a GitHub release tag against the device's current firmware
version.

