periph is a Go library that unifies hardware I/O on single-board computers and embedded Linux devices, exposing clean interfaces for GPIO, I²C, SPI, UART, PWM, and more. Its philosophy is “no daemon, no codegen”—you link a Go package and speak directly to the hardware via stable abstractions, keeping deployments simple and auditable. The project auto-detects host capabilities at runtime and selects the best driver backend, smoothing over kernel and board differences across Raspberry Pi, BeagleBone, and other platforms. A large set of device drivers (sensors, displays, LED controllers, storage, RTCs) give you batteries-included building blocks for prototypes and production systems. Command-line tools like periph-info help verify wiring, enumerate buses, and inspect capabilities before you ship. The API favors composability and testability, so you can mock buses and pins and keep logic unit-testable even when targeting real hardware.
Features
- Unified Go interfaces for GPIO, I²C, SPI, UART, PWM, 1-Wire and more
- Host detection and backend selection for popular SBCs and kernels
- Growing catalog of sensor and display drivers with examples
- Zero-daemon, zero-codegen deployment with plain static binaries
- CLI utilities for board inspection, bus probing, and quick validation
- Mockable connections for unit tests and CI without hardware attached