On utilizing rust programming language for Internet of Things

Rust, as being a systems programming language, offers memory safety with zero cost and without any runtime penalty like high level languages while providing complete memory safety unlike others like C, C++ or Cyclone. Todays world is in a transition from dumb devices to smart devices that are connected to the Internet all the time. Low cost embedded hardware is a key element for this kind of devices. Software needs to be smaller, lighter and power efficient. How one can operate with such limited hardware while preserving reliability? At the end, high level designs require runtime penalties while low level designs are known for memory unsafety and complicated design paradigms. Rust is higher level than other systems programming languages, has a rich standard library and compile-time abstractions for blazingly fast execution. While being completely available in mobile world, Internet of Things (IoT) devices are to be operated by all known mobile hardware as well. To this end, Rust, pushes limits of systems programming for two different views; first, at the core of hardware, running as daemon and talking to firmware, second, as a mobile controller software talking to mobile operating system. In this study, we summarize some concepts, employed in Rust, in terms of embedded systems development to clarify the appropriateness of using Rust within IoT world.