InfoQ Homepage Embedded Software Dev Content on InfoQ
-
Rust Asynchronous Runtime Tokio Reaches 1.0
Tokio aims to provide building blocks to write reliable and fast asynchronous programs in Rust. Recently announced Tokio 1.0 supports TCP, UDP, timers, a multi-threaded, work-stealing scheduler, and more.
-
AWS Announces Amazon SageMaker Edge Manager
Recently AWS announced a new capability of SageMaker called Amazon SageMaker Edge Manager. This new capability in SageMaker makes it easy for customers to prepare, run, monitor, and update machine learning models on fleets of edge devices such as smart cameras, robots, and industrial machines.
-
C2Rust Aims to Enable C Transpilation to Rust
C2Rust is an open-source project that aims to make it possible to migrate C99-compliant code to Rust. Working on this relatively new tool has also allowed its creators to learn a few lessons about the way C code is written and to explore the current limits to Rust possibilities of replacing it at the ABI level.
-
Rust 1.45 Fixes Cast Unsoundness and Stabilizes Support for Web Framework Rocket
Rust 1.45 includes a fix for a long-standing float cast issue potentially causing undefined behaviour and stabilizes features used by popular Web framework Rocket.
-
TinyGo Aims to Bring Go to the Internet of Things
Google-sponsored TinyGo is a new LLVM-based Go compiler to make it possible to run Go programs on microcontrollers, including the Arduino Uno and the BBC micro.bit, as well as modern browsers using Web Assembly.
-
Azure Sphere, a Secure IoT Platform, Reaches General Availability
In a recent blog post, Microsoft announced the general availability (GA) of Azure Sphere, an end-to-end IoT Security Platform. The Azure Sphere platform focuses on three key areas including microcontroller units (MCUs), a secure operating system (OS), which is based upon Linux, and providing cloud security services including software updates and detecting emerging threats.
-
ZetZ is a Formally Verified Dialect of C
ZetZ, or ZZ for short, is a Rust-inspired C dialect that is able to formally verify your code by executing it symbolically at compile time in a virtual machine. InfoQ has spoken with ZZ creator and maintainer Avid Picciani.
-
Rust Moving Towards an IDE-Friendly Compiler with Rust Analyzer
Rust Analyzer is an experimental IDE/latency-oriented Rust compiler. This is an emerging endeavour within the Rust ecosystem, which is aimed at improving the IDE experience with Rust.
-
Rust Gets Zero-Cost Async/Await Support in Rust 1.39
After getting support for futures in version 1.36, Rust has finally stabilized async/.await in version 1.39. As Rust core team member Niko Matsakis explains, contrary to other languages, async/.await is a zero-cost abstraction in Rust.
-
iRobot’s Experience in Running ROS2 on Linux-Based Embedded Platforms
During ROSCon 2019, Alberto Soragna, Juan Oxoby, and Dhiraj Goel from iRobot presented their experience in using ROS 2 on a low-cost embedded platform. By experimenting with different Data Distribution Service (DDS) implementations they reduced the CPU and memory usage of their application, which improved performance.
-
Microsoft Presents Static TypeScript, a Fast Subset of TypeScript Targeting Embedded Devices
Microsoft recently submitted a research paper introducing Static TypeScript (STS), a subset of TypeScript targeting low-resource embedded devices, to the Managed Programming Languages and Runtimes 2019 (MPLR 2019) international conference. STS programs may run on devices with only 16 kB of RAM faster than embedded interpreters would, which would extend battery life of these devices.
-
IBM POWER Instruction Set Architecture Now Open Source
IBM has open sourced the POWER Instruction Set Architecture (ISA), which is used in its Power Series chips and in many embedded devices by other manufacturers. In addition, the OpenPOWER Foundation will become part of The Linux Foundation to further open governance.
-
Rust 1.36 Stabilizes Futures, Backports Non-Lexical Lifetimes, and More
Following its roadmap to Rust 2018, Rust 1.36's most awaited new feature is support for the Future trait, which is the first step towards bringing async/await to the language. Additionally, it backports non-lexical lifetimes (NLL) to improve the borrow checker, and introduces a new alloc crate to enable the creation of memory allocation-dependent libraries that do not require std.
-
Mozilla Announces WASI Initiative to Run Web Assembly on All Devices, Computers, Operating Systems
Mozilla recently announced a new standardization effort aiming at running the same WebAssembly code across all devices, machines and operating systems. The new standard, WebAssembly System Interface (WASI), defines a single conceptual operating system interface, which can be implemented by multiple, actual operating systems. Mozilla and Fastly are already shipping prototypal WASI implementations.
-
Rust 1.32 Improves Tracing, Modules, Macros, and More
Rust 1.32 includes a number of new language features meant to improve developer experience when tracing the execution of programs for debugging purposes. Additionally, it now uses the system allocator by default, completes work on the module system to make it easier to use, and more.