Working on the Embedded Rust Book

TL;DR: Up to now, I haven't had as much time or motivation as I would have like to contribute to the Embedded Rust Book. However, I am excited to see the initial version of the book launch with the 2018 edition of Rust (which will ship with stable support for embedded)!, so I will be committing to write one chapter per two weeks, until the end of the year.

Read below for my plan, and how you can help!

May 2018 and beyond

Hey all, just a quick note on whats going on in my life right now. I'm leaving my current position at Geeny/Telefónica Next, and focusing on a personal project around Continuous Integration for Firmware and Hardware development for (at least) the next few months. This would help developers implement Hardware in the Loop testing as described by a previous blog post of mine.

Oh, and hopefully I'll find some time to relax for a couple weeks.

Tiny Rocket

At the recent 2018 Rust All Hands, I met up with Katharina @spacekookie, who works on an open source project that creates software for Embedded Linux Devices. She had talked with the other engineers on the project about including some Rust components, however with their limited flash storage space (8MB for the whole firmware, including operating system and all other software), she was worried that the Rust binaries wouldn't fit. The current webserver component for their project was measured in the 100's of KB, while the Rust binary she produced was already multiple MBs, even with a --release build!

Raumfahrer Projekt - Day Zero

Phew, it's been a busy six months or so since I've last posted. So busy, in fact, that I had two weeks of vacation left over from last year that I was able to roll over to this year, but it had to be used by the end of Q1.

Tomorrow (2018-02-19) kicks off my first day of vacation, and I wanted to share what I'm planning on doing for the next two weeks - something I'm calling The Raumfahrer Projekt.

Rocket + error_chain

Recently I've gotten the chance to work in Rust a little more often, and I've been using the wonderful web framework Rocket. Primarily, I've been using it to develop a REST server, serving and receiving JSON data. I've also been using error_chain, which is a great tool to avoid error handling boilerplate.

However, I was having difficulty getting them to work together the way that I wanted. In my mind, if my Rocket handler returned Ok(Json(T)), it would make sense to return the JSON in the body, and a return code of 200. If my Rocket handler returned Err(Json(T)), then the server should return 400 (or maybe 500), with my error in the body.

Next > >