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.
As a note, this will be the first in a series of posts exploring content I will be presenting to the Rust DC group on June 15th, where I will be integrating Rust code on the nRF52 Development Kit to create a Rust-Powered Bluetooth Peripheral. See the meetup event for more information. This post will serve as the first introduction to a few topics, and I will be building on this information as I later discuss exact techniques that can be used to get Rust on more and more embedded systems. In general, I will be focusing on integrating Rust into existing C and C++ ecosystems, to reduce the barrier to entry for Embedded Rust Developers.
A quick note: I've added a section for "Native" Testing in my previous post regarding CI Testing Techniques for Embedded Systems. Its definitely an important technique that I should have mentioned from the start! Check it out here, and let me know if there are any other techniques that I missed. Thanks to Ludwig Knüpfer for bringing it to my attention.
I was wondering what solutions exist for CI in the embedded space. I'm trying to streamline and speed up project development ... and feel CI might help in that process. I come from a higher level language background and have seen tools like TeamCity and Vagrant manage the build-test-deploy pipeline, and was wondering if this is a thing in the embedded world too.
I recently received this email after talking about CI (Continuous Integration) for Embedded Systems in an IRC room. After a quick response, I thought that the subject was worth posting about. I'll cover a couple different techniques I have used at different companies, and try to list the benefits, challenges, and a little bit of detail for each. This information is knowledge that I have gathered over my years developing and testing embedded systems, ranging from safety critical Avionics, all the way down to rapidly prototyped IoT devices.
< < Back
Next > >
For Christmas, my lovely wife got me a Novation Launchpad Mk2. These are billed as the "iconic grid performance instrument", and some day I hope to actually make some music with it. Until then, its a really cool 9x9 button grid with RGB LEDs. Pefect for playing around with!