Skip to main content

Simple Management Protocol (SMP) Client for remotely managing MCU firmware

Project description

Simple Management Protocol (SMP) Client

smpclient implements the transport layer of the Simple Management Protocol. This library can be used as a dependency in applications that use SMP over serial (UART or USB), Bluetooth (BLE), or UDP connections. Some abstractions are provided for common routines like upgrading device firmware.

If you don't need a library with the transport layer implemented, then you might prefer to use smp instead. The SMP specification can be found here.

If you'd like an SMP CLI application instead of a library, then you should try smpmgr.

Install

smpclient is distributed by PyPI and can be installed with uv, pip, and other dependency managers.

Build with all transports:

smpclient[all]

Or none (UDP transport only):

smpclient

Or build with only the transports you need:

smpclient[serial] # Serial (UART, USB, CAN)
smpclient[ble] # Bluetooth Low Energy
smpclient[serial,ble] # Serial + BLE

The UDP transport has no additional dependencies and is always available.

User Documentation

Documentation is in the source code so that it is available to your editor. An online version is generated and available here.

Development Quickstart

Assumes that you've already setup your development environment.

  1. run uv sync when pulling in new changes
  2. run uv run task fix after making changes (fast)
  3. run uv run task all after making changes (thorough)
  4. add library dependencies with uv:
    uv add <my_new_dependency>
    
  5. add test or other development dependencies:
    uv add --group dev <my_dev_dependency>
    
  6. run tests for all supported python versions:
    uv run task matrix
    

Development Environment Setup

Install Dependencies

Create the venv

uv sync

Verify Your Setup

uv run task all

Enable the githooks

git config core.hooksPath .githooks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smpclient-7.1.0.tar.gz (4.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smpclient-7.1.0-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

Details for the file smpclient-7.1.0.tar.gz.

File metadata

  • Download URL: smpclient-7.1.0.tar.gz
  • Upload date:
  • Size: 4.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for smpclient-7.1.0.tar.gz
Algorithm Hash digest
SHA256 3aba6fbd520af052c0a983ec995f0a551463c65673f4afbee77f7a6c5081a36c
MD5 e76fd1375dddb096722d3e4c93ee68d4
BLAKE2b-256 247c307fa48d6d4a93a8b13c7449135b5e03f588dbcd474a318654bd9803fcba

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-7.1.0.tar.gz:

Publisher: release.yaml on intercreate/smpclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smpclient-7.1.0-py3-none-any.whl.

File metadata

  • Download URL: smpclient-7.1.0-py3-none-any.whl
  • Upload date:
  • Size: 50.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for smpclient-7.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fa28e8994e07151739d2fb9ad8805d10c3eff3c0d82b69768715a9424fe65ed
MD5 687bfc4d9fd2ac76ea752706326e42b4
BLAKE2b-256 b1624ec38366f3606ecf57c83a4193af172480e958f9c194a2e483cd5c2b9d8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-7.1.0-py3-none-any.whl:

Publisher: release.yaml on intercreate/smpclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page