Ariel OS is an operating system for secure, memory-safe, low-power Internet of Things (IoT). It is based on Rust from the ground up and supports hardware based on 32-bit microcontroller architectures (Cortex-M, RISC-V, and Xtensa).
Ariel OS builds on top of existing projects from the Embedded Rust ecosystem, including Embassy, esp-hal, defmt, probe-rs, sequential-storage, and embedded-test. While those provide high-quality building blocks for a wide range of embedded applications, such projects do not provide the high level of integration that developers know from contemporary C-based operating systems for microcontrollers, such as RIOT or Zephyr for instance.
Ariel OS thus follows an approach whereby it simultaneously integrates many heterogeneous pre-existing crates, and adds missing operating system functionalities such as a preemptive multicore scheduler, portable peripheral APIs, additional network security facilities, as well as laze, a meta-build system to bind it all together. The result? A powerful framework that allows to write portable embedded Rust applications with minimal boilerplate, providing a batteries-included experience. Still have questions? Check out our FAQ and/or take a look at the Ariel OS book.
See the Getting Started page in the User Guide to get the hello-world
example running in less than 5 minutes.
Ariel OS makes use of selected Rust unstable features. For the time being, it is
recommended to use the nightly version pinned by rust-toolchain.toml
.
If you think you may have found an issue that represents a security risk to Ariel OS users, please report it privately using GitHub's Security section.
Ariel OS is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Copyright (C) 2020-2025 Freie Universität Berlin, Inria, Kaspar Schleiser
Contributions are very welcome! Please see our contributing guide for details.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Thanks to all the people who already contributed!