rust_gpiozero 0.2.0

A library inspired by gpiozero written in Rust.
# rust_gpiozero

[![Build Status](](

A simple interface to GPIO devices with Raspberry Pi.

This library is based on [GPIOZero](

The idea is to get started with physical computing using Rust with little coding
by hiding the underlying complexity.

The library uses [BCM Pin numbering](

### Example : Blinking an LED


use rust_gpiozero::*;

fn main() {
    // Create a new LED attached to Pin 17
    let mut led = LED::new(17);
    // blink the LED
    led.blink(2.0, 3.0);


### Example : Wait for a Button Press

use rust_gpiozero::*;

fn main() {
    // Create a button which is attached to Pin 17
    let mut button = Button::new(17);
    println!("button pressed");


Compare this to using the crate `sysfs_gpio` to blink an LED on the Raspberry Pi :


extern crate sysfs_gpio;

use sysfs_gpio::{Direction, Pin};
use std::thread::sleep;
use std::time::Duration;

fn main() {
    let my_led = Pin::new(127); // number depends on chip, etc.
    my_led.with_exported(|| {
        loop {


## Install/Use

To use `rust_gpiozero`, first add this to your Cargo.toml:

 rust_gpiozero = "0.2.0"
Compiling your project on a Raspberry Pi directly can take significant time depending on the model. Ideally, you would cross compile your project then run it on the Raspberry Pi. 

[More information](

## Features

The following features are planned :

- [ ] Support for `embedded-hal`
- [ ] Support for common devices such as Accelerometer, Temperature sensors, etc

## Changelog


## License

[GNU General Public License v3.0](

## Credits
This library would not be possible without the great work of the maintainers of [GPIOZero]( and [rppal](

## Contributing
Thanks for your interest in `rust_gpiozero`. I am a newbie rustacean and just started using the language! I am using this project to learn more about Rust. Feel free to give feedback or send PRs. Your experiences and feedback will also benefit others who use this library.