cmsis-pack-manager
Python manager for CMSIS-Pack index and cache with fast Rust backend
What it is and what it does
cmsis-pack-manager is a Python module backed by a Rust implementation for accessing device metadata stored in CMSIS PACKs—standardized ARM device definition files. It lets you look up processor types, flash algorithms, and memory layouts either programmatically in Python or via a command-line tool. The package is built as a compiled extension (hence the prebuilt wheels for multiple platforms and architectures), with runtime dependencies on appdirs, cffi, and pyyaml for configuration and file handling.
The module is designed for embedded systems developers and tooling authors who need to query ARM device information without parsing CMSIS PACKs manually. It has been actively maintained since 2017, supports Python 3.8 through 3.13, and runs on Linux, macOS, and Windows across multiple CPU architectures.
Use it for:
- Embedded development tools querying processor capabilities and memory layout for a target device
- Build systems looking up flash algorithm information for device programming
- IDE or debugger integration retrieving device-specific metadata from CMSIS standards
- Automated device inventory or compatibility checking against CMSIS PACK definitions
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Queries and manages device information from CMSIS PACKs, providing processor type, flash algorithm, and memory layout data through Python API or command-line interface.
Yes, if you work with ARM embedded systems and need to query CMSIS PACK device information. The package is actively maintained, has no known vulnerabilities, and offers a clean Python API backed by efficient Rust code. Medium install friction is manageable given prebuilt wheels; only a concern if you must build from source on an unsupported platform.
Install
cmsis-pack-manager on PyPI
pip
pip install cmsis-pack-manageruv
uv add cmsis-pack-managerpoetry
poetry add cmsis-pack-managerInstalling cmsis-pack-manager
Before you install
Medium install friction due to compiled Rust backend requiring build tools; however, prebuilt wheels are available for common platforms (Linux x86_64, ARM, macOS, Windows). Actively maintained with recent commits and stable across supported Python versions.
License in practice
Apache-2.0 is permissive and poses no significant licensing constraints; you may use, modify, and distribute the package freely in commercial or open-source projects.
Quickstart
pip install cmsis-pack-manager
import cmsis_pack_manager
# Query device information from CMSIS PACKs
Requires Rust toolchain if building from source; prebuilt wheels available for most platforms reduce this friction.
Verify before relying
- Specific API methods and return types for querying processor, flash, and memory information
- Whether the package automatically downloads/caches CMSIS PACKs or requires manual setup
- Performance characteristics when querying large numbers of devices
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — appdirs, cffi, pyyaml |
| Maintenance | actively maintained — 413 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,122,467/month — #4,332 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cmsis_pack_manager-0.6.0-py3-none-linux_armv6l.whl; cmsis_pack_manager-0.6.0-py3-none-macosx_10_12_universal2.whl; cmsis_pack_manager-0.6.0-py3-none-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl; cmsis_pack_manager-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; cmsis_pack_manager-0.6.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; cmsis_pack_manager-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; cmsis_pack_manager-0.6.0-py3-none-win32.whl; cmsis_pack_manager-0.6.0-py3-none-win_amd64.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
soldrSoldr is a Python wrapper that downloads Rust…
permissive · top 15,000 on PyPI
puccinialinInstalls Rust and Cargo into a temporary cache…
permissive · top 5,000 on PyPI
kwasmkwasm bundles KLayout's WebAssembly-compiled…
copyleft · top 15,000 on PyPI
bittensor-walletManages cryptographic keys and wallets for the…
permissive · top 15,000 on PyPI
membrowseAnalyzes binary size and memory footprint of…
unclear · top 15,000 on PyPI
clvm-rsRust-based implementation of the CLVM virtual…
permissive · top 15,000 on PyPI
maturinMaturin builds and publishes Python packages…
permissive · top 5,000 on PyPI
chia-rsProvides Python bindings to Rust crates for…
unclear · top 15,000 on PyPI
sccachesccache is a compiler caching wrapper that…
permissive · top 5,000 on PyPI
pywinptyPyWinpty creates and manages pseudoterminals on…
permissive · top 5,000 on PyPI