awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Raspberry Pi GPIO Libraries

Ranking updated Jun 30, 2026

For a library for talking to GPIO pins on a Raspberry Pi, the first results are wiringpi/wiringpi (WiringPi is a low-level C library for controlling GPIO pins on Raspberry Pi boards with hardware register access, but it does not include native Python bindings in this repository, so it only partially satisfies the request for a Python library), golemparts/rppal (This Rust library directly controls the Raspberry Pi’s GPIO, PWM, I2C, SPI, and UART peripherals, but it is not a Python library—you would need to call it from Rust or via FFI, so it does not natively meet the Python library requirement) and hybridgroup/gobot (Gobot is a Go-based robotics framework that provides GPIO, I2C, SPI, and PWM control on Raspberry Pi, but it is a full framework written in Go rather than a Python library, so it does not match the Python-specific requirement). pikvm/pikvm and petoicamp/opencat-quadruped-robot round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Software libraries and drivers for interfacing with physical GPIO pins on Raspberry Pi hardware platforms.

Raspberry Pi GPIO Libraries

Find the best repos with AI.We'll search the best matching repositories with AI.
  • wiringpi/wiringpiWiringPi avatar

    WiringPi/WiringPi

    3,270View on GitHub↗

    WiringPi is a GPIO hardware control library and embedded hardware interface designed for managing General Purpose Input Output pins on single board computers. It provides a standardized software layer for interacting with hardware registers, facilitating low-latency pin manipulation. The project includes a GPIO command line interface that allows users to inspect pin states and manage hardware input and output levels directly from the terminal. It supports embedded hardware prototyping and hardware state monitoring, specifically targeting Raspberry Pi boards to interact with external electron

    WiringPi is a low-level C library for controlling GPIO pins on Raspberry Pi boards with hardware register access, but it does not include native Python bindings in this repository, so it only partially satisfies the request for a Python library.

    CGPIO Pin Controllers
    View on GitHub↗3,270
  • golemparts/rppalgolemparts avatar

    golemparts/rppal

    1,463View on GitHub↗

    This library provides a collection of low-level abstractions for interacting with hardware peripherals on Raspberry Pi devices using the Rust programming language. It serves as a type-safe interface for controlling physical pins and managing communication with external electronic components and sensors. The project distinguishes itself through its use of compile-time abstractions that map high-level function calls directly to hardware instructions, ensuring minimal runtime overhead. It provides consistent access to hardware by wrapping kernel-level device interfaces and memory-mapped register

    This Rust library directly controls the Raspberry Pi’s GPIO, PWM, I2C, SPI, and UART peripherals, but it is not a Python library—you would need to call it from Rust or via FFI, so it does not natively meet the Python library requirement.

    RustSerial Peripheral Interfaces
    View on GitHub↗1,463
  • hybridgroup/gobothybridgroup avatar

    hybridgroup/gobot

    9,425View on GitHub↗

    Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT applications. It provides a hardware abstraction layer with standardized drivers to interact with GPIO, I2C, SPI, and PWM interfaces across various single-board computers and microcontrollers. The framework functions as an IoT device orchestrator and BLE device manager, enabling the coordination of multiple sensors, actuators, and Bluetooth Low Energy peripherals. It includes specialized interfaces for drone control, allowing for the management of flight maneuvers and video streams

    Gobot is a Go-based robotics framework that provides GPIO, I2C, SPI, and PWM control on Raspberry Pi, but it is a full framework written in Go rather than a Python library, so it does not match the Python-specific requirement.

    GoGeneral Purpose Input Output ControllersGPIO Pin ControllersI2C Bus Interfaces
    View on GitHub↗9,425
  • pikvm/pikvmpikvm avatar

    pikvm/pikvm

    10,109View on GitHub↗

    PiKVM is an IP-KVM remote access solution for out-of-band server management. It enables remote control of a host computer's hardware and operating system through a web browser or VNC client, allowing access to the BIOS or boot sequence when the main operating system is unresponsive. The system provides remote hardware control by managing physical power switches and GPIO triggers. It emulates human interface devices, such as keyboards and mice, and supports the emulation of mass storage to mount virtual disk images for bare metal operating system installation and recovery. Additional capabili

    PiKVM is a complete IP-KVM remote access appliance for out-of-band server management, not a software library you integrate into Python projects to control GPIO pins — it uses GPIO as part of its hardware control but does not offer the Python API or protocol-level I2C/SPI access this search requires.

    GPIO Pin Controllers
    View on GitHub↗10,109
  • petoicamp/opencat-quadruped-robotPetoiCamp avatar

    PetoiCamp/OpenCat-Quadruped-Robot

    4,891View on GitHub↗

    OpenCat-Quadruped-Robot is a development framework and motion control API for building four-legged robots. It provides a comprehensive environment for quadruped robot development, featuring tools for locomotion gait design, inverse kinematics, and a layered control architecture that separates high-level intelligence from low-level motion. The project distinguishes itself as an embedded AI deployment tool, allowing users to train, quantize, and deploy machine learning models to vision modules for tasks such as object detection and visual target tracking. It further supports complex human-robot

    This is a framework for building quadruped robots, not a general-purpose GPIO control library for Raspberry Pi; while it may interact with hardware, it does not provide a dedicated Python API for low-level pin control, PWM, or I2C/SPI as the search specifies.

    C++Pulse Width Modulation ControllersI2C Servo Coordination
    View on GitHub↗4,891
  • rwaldron/johnny-fiverwaldron avatar

    rwaldron/johnny-five

    13,401View on GitHub↗

    Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots and IoT devices. It provides a standardized library for managing pins, motors, and displays across various microcontroller platforms, allowing developers to control sensors and actuators using a consistent JavaScript API. The framework is distinguished by its use of a plugin-based hardware abstraction system, which enables communication with diverse hardware platforms and protocols. It supports real-time hardware manipulation and debugging through a read-eval-print loop that a

    Johnny-Five is a JavaScript robotics framework that can control Raspberry Pi GPIO, but it is not a Python library, so it does not match the request for a Python GPIO control library.

    JavaScriptGPIO Pin ControllersPulse Width Modulation Controllers
    View on GitHub↗13,401
  • micropython/micropythonmicropython avatar

    micropython/micropython

    21,806View on GitHub↗

    MicroPython is a lean implementation of Python 3 optimized to run on microcontrollers and other resource-constrained systems. It serves as a cross-platform embedded runtime and hardware abstraction layer, providing a firmware framework that maps high-level software commands to specific microcontroller registers across diverse processor architectures. The project functions as an embedded language interpreter that enables rapid prototyping on hardware through an interactive read-eval-print loop. It supports a wide range of target environments, including ARM, ESP32, STM32, RISC-V, and WebAssembl

    MicroPython is a Python runtime for microcontrollers that includes GPIO, PWM, and I2C/SPI modules, but it is a complete firmware environment rather than a dedicated Raspberry Pi GPIO library for the mainstream Raspberry Pi boards.

    CGPIO Pin Controllers
    View on GitHub↗21,806
  • embassy-rs/embassyembassy-rs avatar

    embassy-rs/embassy

    8,813View on GitHub↗

    Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It enables the execution of multiple concurrent tasks to maximize energy efficiency and CPU usage, utilizing an async executor that puts the processor to sleep when idle. The framework includes a comprehensive set of embedded components, featuring a hardware abstraction layer for peripherals like GPIO, SPI, I2C, and UART, alongside a TCP/IP network stack and a USB device stack. It also provides a Bluetooth Low Energy host stack for wireless communication and a bootloader framework t

    Embassy is an async embedded framework for microcontrollers written in Rust, not a Raspberry Pi-specific GPIO library — it lacks Python support and targets bare-metal MCUs rather than the Linux-based Raspberry Pi you need.

    RustCooperative SchedulersEmbedded Async ExecutorsEmbedded Rust
    View on GitHub↗8,813
  • arendst/tasmotaarendst avatar

    arendst/Tasmota

    24,502View on GitHub↗

    Tasmota is a universal firmware platform for ESP8266 and ESP32 microcontrollers, designed to provide local control and management of smart home hardware. It functions as an event-driven automation controller that replaces proprietary factory firmware, allowing users to manage relays, sensors, and lighting systems without relying on external cloud services. The system is built on a modular driver architecture that enables dynamic hardware configuration and peripheral support through a web-based management interface. The platform distinguishes itself through a template-driven hardware mapping s

    Tasmota is firmware for ESP8266/ESP32 microcontrollers, not a Raspberry Pi GPIO library — it controls different hardware and does not provide a Python API for the Pi’s pins.

    CGPIO Pin ControllersPulse Width Modulation ControllersSerial Peripheral Interfaces
    View on GitHub↗24,502
  • node-red/node-rednode-red avatar

    node-red/node-red

    22,803View on GitHub↗

    Node-RED is a visual, low-code automation framework designed for building event-driven data processing workflows. It provides a browser-based programming environment where users connect hardware devices, APIs, and online services by wiring together functional nodes in a directed graph. This visual approach allows for the creation of complex logic paths without the need for traditional source code. The platform is distinguished by its pluggable node architecture and portable flow serialization. Logic is represented as JSON-based data structures, enabling flows to be easily versioned, shared, a

    Node-RED is a visual automation framework rather than a programmatic library for GPIO control, so while it can interface with hardware through nodes, it does not provide the direct Python-based GPIO API you are looking for.

    JavaScriptGPIO Pin Controllers
    View on GitHub↗22,803
  • esphome/esphomeesphome avatar

    esphome/esphome

    10,591View on GitHub↗

    ESPHome is a framework for creating and managing custom firmware for microcontrollers, specifically targeting ESP32 and ESP8266 architectures. It replaces the need for writing complex embedded C++ code by allowing users to define hardware behavior, pin configurations, and automation logic through simple, declarative text files. The system automatically compiles these configurations into optimized binary images, providing a streamlined path from design to deployment. The project distinguishes itself through a modular, component-based architecture that emphasizes local-first control, ensuring t

    ESPHome is a firmware framework for ESP32/ESP8266 microcontrollers, not a library for controlling GPIO on a Raspberry Pi; it targets different hardware and is not a Python-accessible API for Raspberry Pi use.

    C++GPIO Pin Controllers
    View on GitHub↗10,591
  • jomjol/ai-on-the-edge-devicejomjol avatar

    jomjol/AI-on-the-edge-device

    8,461View on GitHub↗

    AI-on-the-edge-device is an edge AI meter digitizer and computer vision image processor designed to convert images of analog and digital utility meters into numeric values. It functions as an IoT gateway that runs neural network inference locally on hardware to monitor water, power, and gas readings. The system is distinguished by its ability to handle both analog pointers and digital digits through custom-trained neural networks. It includes specialized tools for image alignment, region-of-interest extraction, and hardware-level lighting control to minimize glare on glass surfaces. To mainta

    This repository is a complete edge AI application for digitizing utility meters, not a reusable GPIO control library — it lacks the Python API and generic pin‑control interface the search asks for.

    C++GPIO Pin Controllers
    View on GitHub↗8,461
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
wiringpi/wiringpi3.3KClgpl-3.0Feb 8, 2026
golemparts/rppal1.5KRustMITJul 1, 2025
hybridgroup/gobot
9.4K
Go
NOASSERTION
Jan 7, 2026
pikvm/pikvm10.1K—GPL-3.0Jun 10, 2026
petoicamp/opencat-quadruped-robot4.9KC++MITApr 15, 2026
rwaldron/johnny-five13.4KJavaScriptNOASSERTIONOct 24, 2023
micropython/micropython21.8KCNOASSERTIONJun 12, 2026
embassy-rs/embassy8.8KRustapache-2.0Feb 19, 2026
arendst/tasmota24.5KCGPL-3.0Jun 23, 2026
node-red/node-red22.8KJavaScriptapache-2.0Feb 20, 2026

Related searches

  • a firmware framework for programming microcontrollers in Rust
  • an Arduino library for reading sensors and driving displays
  • an open source platform for microcontroller development
  • a toolkit for in-browser computer vision
  • an MQTT client library for IoT devices
  • a library for headless browser automation
  • Embedded, IoT and hardware
  • a real-time operating system for embedded microcontrollers