Metadata-Version: 2.4
Name: apexos-silabs-firmware-client
Version: 0.3.0
Summary: Release-feed client for Silicon Labs radio firmware manifests, for ApexOS hardware components
Author-email: Advait Thakur <advait@apexinfosys.in>
License: Apache-2.0
Project-URL: repository, https://github.com/apexinfosysindia/silabs-firmware-client
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp
Requires-Dist: packaging
Requires-Dist: yarl
Provides-Extra: testing
Requires-Dist: tomli; extra == "testing"
Requires-Dist: coverage[toml]; extra == "testing"
Requires-Dist: pytest; extra == "testing"
Requires-Dist: pytest-xdist; extra == "testing"
Requires-Dist: pytest-asyncio; extra == "testing"
Requires-Dist: pytest-cov; extra == "testing"
Requires-Dist: pytest-timeout; extra == "testing"
Requires-Dist: aioresponses; extra == "testing"
Dynamic: license-file

# apexos-silabs-firmware-client

Release-feed client for Silicon Labs radio firmware manifests, used by ApexOS
hardware components (Zigbee/Thread radio boards).

This package is a maintained rebuild of a third-party firmware-update client
library, republished under the ApexOS namespace.

```python
from apex_silabs_firmware_client import (
    FirmwareUpdateClient,
    FirmwareManifest,
    FirmwareMetadata,
    ManifestMissing,
)
```

`FirmwareUpdateClient` takes a release-feed URL and an `aiohttp.ClientSession`;
it does not hard-code any endpoint. The feed is expected to speak the GitHub
releases API shape (a JSON list of releases with `tag_name`, `prerelease`,
`html_url` and `assets`), with a `manifest.json` asset per release describing
the firmware files (`filename`, `checksum`, `size`, `metadata`,
`release_notes`). Fetched firmware bytes are validated against the manifest's
size and checksum before being returned.

Which feed URL (if any) is used is decided by the caller; ApexOS currently
ships with the firmware release feed disabled at the platform level.

## Installation

```
pip install apexos-silabs-firmware-client
```

## License

Apache-2.0. See [LICENSE](LICENSE) for the full text.
