A collection of Python libraries ported and adapted for MicroPython, enabling standard and ecosystem packages on embedded devices.
micropython-lib is a collection of Python libraries ported and adapted for MicroPython, enabling developers to use standard Python modules and popular ecosystem packages on embedded devices. It solves the problem of limited library availability in MicroPython by providing compatible, often reduced-functionality versions of familiar tools. This allows writing more complex applications on microcontrollers without reinventing common functionality.
Embedded developers and IoT engineers using MicroPython on resource-constrained devices who need access to Python libraries for hardware interaction, data processing, or system utilities. Also valuable for Python developers transitioning to embedded systems who want to reuse their existing knowledge.
Developers choose micropython-lib because it provides the largest collection of MicroPython-compatible libraries in one place, maintained by the MicroPython project itself. It offers practical trade-offs between functionality and resource usage, with multiple installation methods tailored for embedded workflows.
Core Python libraries ported to MicroPython
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides drop-in replacements for Python standard library modules and reduced-functionality versions of ecosystem packages, enabling familiar coding patterns on microcontrollers as noted in the README's categories.
Supports multiple installation options including mip package manager, mpremote tool, firmware freezing, and manual copying, catering to various embedded workflows as detailed in the Usage section.
Includes MicroPython-only packages for hardware drivers and Bluetooth, addressing unique embedded needs not covered by standard Python, such as those in the 'micropython' directory.
Maintained by the MicroPython project with community contributions, ensuring compatibility with MicroPython releases and ongoing updates, as highlighted in the Contributing section.
Many modules are ports with reduced functionality or missing methods, as admitted in the README, which can limit their utility for complex applications requiring full Python capabilities.
When using the manual file copying method, developers must inspect manifest.py files to resolve dependencies, adding overhead and potential for errors compared to automated package managers.
The library only includes a curated subset of Python packages, and not all are up-to-date with their CPython counterparts, restricting the range of available tools for advanced use cases.