Using no standard library crates with Webassembly

A Rust + Webassembly experiment using no_std crates

When working with Rust + Webassembly, you might want to use some crates in your project. Not all crates work out of the box with Webassembly yet, especially those that rely on System Libraries, File I/O, Networking, etc. With proposals such as WASI or WebAssembly Interface Types, these might work eventually but it isn’t the case yet. The Rust Wasm book suggests: A good rule of thumb is that if a crate supports embedded and #! [Read More]

Making mdBooks work offline

mdBook1 is a great utility to create online books from Markdown files. It is used extensively in the Rust community. Here are some books made with mdBook: The Rust Programming Language (“the book”)2 Embedded Book 3 mdBook user guide4 Motivation I usually read the books while commuting and this usually consumes mobile data. Given the contents don’t change that often, I thought it would be useful if they were cached. [Read More]
rust  mdbook  web 

Releasing rust_gpiozero v0.2.0

A new version packed with new features and improvements

For the past month I have been working on rust_gpiozero. This new release is a complete rewrite and uses Rene van der Meer(@golemparts)’s [rppal]( crate under the hood. It also uses Rust 2018 edition. Why rppal? Simply because Rene has done an incredible work on rppal. It provides first class support for the Raspberry Pis. Instead of trying to (poorly) reimplement the features, I think it is best to build upon the rppal. [Read More]

My Experience in Increasing Rust's Reach 2018

I recently had the privilege of participating the Increasing Rust’s Reach(IRR) program. The program aims to grow Rust’s community of project collaborators and leaders. Increasing Rust’s Reach brings together Rust team members and individuals who are underrepresented in Rust’s community and the tech industry for a partnership of three (3) months, from mid-May to mid-August. Each partnership agrees to a commitment of 3–5 hours per week working on a Rust Project. [Read More]

Physical Computing With Rust On Raspberry Pi

Use Rust to control LEDs, Buzzers, and more with the Raspberry Pi

A couple of months ago I released the rust_gpiozero1 crate. It is a port of the GPIO Zero2 library by the Raspberry Pi Foundation. The library provides a simple interface to control GPIO devices with a Raspberry Pi. Following this, recently ported the Raspberry Pi Foundation’s Physical Computing with Python3 guide for Rust. Why did I create the rust_gpiozero crate? After going through The Rust Programming language book, I decided to work on a side project to practice some of the concepts. [Read More]

Rust: Raw string literals

r#"What is this?"#

While working with Rust, you will often come across r#"something like this"#, especially when working with JSON and TOML files. It defines a raw string literal. When would you use a raw string literal and what makes a valid raw string literal? When would you use a raw string literal? First, let’s understand what a string literal is. According to the The Rust Reference1, A string literal is a sequence of any Unicode characters enclosed within two U+0022 (double-quote) characters, with the exception of U+0022 itself2. [Read More]

An I2C Rust driver for mma7660fc-based 3-Axis Digital Accelerometer

This is an I2C implementation for mma7660fc-based 3-Axis Digital Accelerometer. It is an embedded-hal driver as part of the weekly driver initiative by Jorge Aparicio. The Device The MMA7660FC is a ±1.5 g 3-Axis Accelerometer with Digital Output (I2C). It can be found on Seeed’s Grove 3-Axis Digital Accelerometer. It is made by NXP Semiconductor. Development For the development of this driver, I used the Grove 3-Axis Digital Accelerometer and tested on a Raspberry Pi 1 running latest version of Raspbian. [Read More]