skillfed

Adafruit-PureIO

Pure python (i.e. no native extensions) access to Linux IO including I2C and SPI. Drop in replacement for smbus and spidev modules.

adafruit-pureio v1.1.11 145.8K downloads/30d#11,115 on PyPI53
Permissive license MIT Abandoned released

What it is and what it does

Adafruit-PureIO is a pure Python library that wraps Linux kernel I2C and SPI interfaces, allowing direct hardware communication without compiled native extensions. It provides drop-in replacements for the smbus and spidev modules, making it useful for embedded systems like Raspberry Pi where you need to control I2C and SPI devices from Python code.

The package has no runtime dependencies and installs with low friction. However, it has been abandoned since its last release on 2023-05-25 with no active maintenance. The library was originally designed for embedded systems and IoT projects, but its lack of recent updates means it may not be compatible with newer kernel versions or Python releases without potential issues.

Use it for:

  • Communicate with I2C sensors and devices on a Raspberry Pi or other Linux single-board computer.
  • Control SPI peripherals like displays, memory chips, or analog converters from Python without native C extensions.
  • Replace smbus or spidev in existing projects when you need pure Python implementations.
  • Develop embedded applications that need direct hardware access on Linux systems without compilation.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides pure Python access to Linux I2C and SPI interfaces without native extensions, serving as a drop-in replacement for smbus and spidev modules.

Yes, but with caution. The package is suitable for existing projects already using it or for simple I2C/SPI communication on stable systems. However, do not adopt it for new projects without verifying compatibility with your kernel version and Python release, since maintenance has ceased. Consider checking for actively maintained alternatives if you need ongoing support.

Install

adafruit-pureio on PyPI

pip

pip install adafruit-pureio

uv

uv add adafruit-pureio

poetry

poetry add adafruit-pureio

Installing Adafruit-PureIO

Before you install

Low install friction with no runtime dependencies. However, the package is marked abandoned with the last commit in May 2023, raising concerns about maintenance and compatibility with current systems.

License in practice

MIT license is permissive and poses no restrictions on use, modification, or distribution in proprietary or open-source projects.

Quickstart

pip3 install Adafruit-PureIO

import Adafruit_PureIO.smbus
bus = Adafruit_PureIO.smbus.SMBus(1)

Requires Python 3.5 or higher and a Linux system with I2C/SPI kernel support.

Verify before relying

  • Whether the package remains compatible with modern Linux kernel versions and current Python 3.x releases.
  • Whether the ioctl interface it wraps has changed in recent kernel updates.
  • Active community or alternative maintained forks for this functionality.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.5.0)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 1,177 days since the last release
Last repo commit
First released
Downloads 145,848/month — #11,115 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: Adafruit_PureIO-1.1.11-py3-none-any.whl

Keywords: adafruit, blinka, micropython, pureio, ioctl, spi, i2c, python

Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: LibrariesTopic :: System :: Hardware

Tags

I2C SPI Linux accesspure python I2Csmbus replacementspidev alternativeraspberry pi I2C SPILinux ioctl wrapperhardware communication python
embedded-systemshardware-ioabandoned

More Libraries packages