RIOT - The friendly OS for IoT https://riot-os.org
  • C 91.7%
  • C++ 2.9%
  • Makefile 2.8%
  • Python 2.2%
  • Linker Script 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Martine Lenders 64af291d7d
Merge pull request #22813 from RIOT-OS/pr/bump_riotdocker
makefiles/docker.inc.mk: bump riotdocker version after `murdock-worker` update
2026-10-02 17:46:39 +00:00
.cargo .cargo: Revert to branch reference for riot-wrappers 2026-05-12 09:59:07 +02:00
.github treewide: remove references to vagrant 2026-09-15 18:55:01 +02:00
.vscode .vscode: disable CMake window, detect .mdx as Markdown 2026-05-08 16:03:50 +02:00
boards Merge pull request #22271 from baptleduc/port-radiolib 2026-09-28 20:49:18 +00:00
bootloaders examples: shorten subfolders' names 2025-02-21 09:55:24 +01:00
core core: annotate function declarations with access attribute 2026-06-10 12:34:42 +02:00
cpu cpu/l4f120: temporarily disable rust support 2026-10-01 11:59:01 +02:00
dist dist/tools/compile_commands: consider GCC spec files 2026-10-01 11:59:01 +02:00
doc Merge pull request #22271 from baptleduc/port-radiolib 2026-09-28 20:49:18 +00:00
drivers drivers/kw41zrf: use absolute path for INCLUDE 2026-10-01 11:59:01 +02:00
examples Merge pull request #22788 from crasbe/pr/guides_wrong_board 2026-09-25 18:03:01 +00:00
fuzzing
kconfigs *Kconfig*: Modify Kconfig to remove dep model 2024-03-27 10:28:12 +01:00
LICENSES LICENSES: add GPL version 3.0 2026-09-19 22:13:40 +02:00
makefiles makefiles/libc/picolibc: use picolibc headers with LLVM 2026-10-01 11:59:01 +02:00
pkg pkg/cmsis-nn: disable warning for LLVM20 2026-10-01 11:59:01 +02:00
sys sys/net/gnrc/netif/init_devs: increase socket_zep stack size 2026-10-01 11:59:01 +02:00
tests tests/unittests: disable native32 CI temporarily 2026-10-02 16:18:34 +02:00
.clang-format .clang-format: Update style 2026-09-14 12:25:43 +02:00
.clang-tidy .clang-tidy: add two more exceptions 2026-08-01 12:36:43 +02:00
.editorconfig .editorconfig: remove wrong key tab_size 2025-10-30 09:49:48 +01:00
.gitattributes .gitattributes: mark generated files as linguist-generated 2026-04-14 11:21:19 +02:00
.gitignore treewide: remove references to vagrant 2026-09-15 18:55:01 +02:00
.mailmap .mailmap: Add more e-mail addresses of maribu 2025-01-27 10:43:42 +01:00
.murdock .murdock: add changed boards to quickbuild 2026-09-28 15:11:38 +02:00
.murdock.yml ci: build github merge train branches with murdock 2023-11-07 13:05:56 +01:00
CITATION.cff
CODE_OF_CONDUCT.md doc: standardize capitalizations and fix urls 2025-09-23 18:19:14 +02:00
CODEOWNERS CODEOWNERS: adjust AnnsAnns roles, delegate guides / starlight 2026-08-13 12:22:48 +02:00
CODING_CONVENTIONS.md CODING_CONVENTIONS: add info about code blocks, update Python copyright 2026-05-29 16:07:58 +02:00
CODING_CONVENTIONS_C++.md doc: standardize capitalizations and fix urls 2025-09-23 18:19:14 +02:00
CONTRIBUTING.md CONTRIBUTING.md: add section about extractive contributions 2026-09-18 10:26:02 +02:00
doc.txt treewide: remove deprecated RIOT_FILE_* macros 2026-01-14 11:01:47 +01:00
features.yaml Merge pull request #22261 from benpicco/periph/dac_dma 2026-09-21 13:58:09 +00:00
GOVERNANCE.md Merge pull request #22199 from jkarinkl/governance-update-weekly-meeting 2026-07-18 10:53:14 +00:00
Kconfig *Kconfig*: Modify Kconfig to remove dep model 2024-03-27 10:28:12 +01:00
LICENSE
LOSTANDFOUND.md doc: standardize capitalizations and fix urls 2025-09-23 18:19:14 +02:00
MAINTAINING.md MAINTAINING: minor updates 2026-06-22 11:06:21 +02:00
Makefile doc: standardize capitalizations and fix urls 2025-09-23 18:19:14 +02:00
Makefile.base makefiles: replace shell commands with built-in functions 2026-09-17 10:28:42 +02:00
Makefile.dep makefiles: filter stdio_default with STDIO_MODULES 2026-07-03 16:23:25 +02:00
Makefile.features buildsystem: fix boards/Makefile.features inclusion 2025-03-28 11:48:32 +01:00
Makefile.include Makefile.include: compute RIOT_VERSION_CODE without $(shell) 2026-09-30 10:59:55 +02:00
README.md doc: move static images to doc/resources 2026-07-04 12:29:02 +02:00
release-notes.txt release-notes.txt: 2026.07 2026-08-20 13:13:34 +02:00
SECURITY.md SECURITY.md: Update public PGP key 2026-01-13 11:22:37 +01:00
SUBSYSTEMS.md SUBSYSTEMS.md: add @maribu 2023-06-13 15:03:01 +02:00
uncrustify-riot.cfg uncrustify: replace deprecated nl_func_var_def_blk 2024-05-08 12:37:35 +02:00

Nightly CI status master GitHub release License API docs Getting Started Guide Mastodon Matrix

RIOT Logo

RIOT OS: The friendly Operating System for IoT

RIOT is an open-source microcontroller operating system, designed to match the requirements of Internet of Things (IoT) devices and other embedded devices. It supports a range of devices that are typically found in the Internet of Things (IoT): 8-bit, 16-bit and 32-bit microcontrollers.

RIOT is based on the following design principles: energy-efficiency, real-time capabilities, small memory footprint, modularity, and uniform API access, independent of the underlying hardware (this API offers partial POSIX compliance).

RIOT is developed by an international open source community which is independent of specific vendors (e.g. similarly to the Linux community). RIOT is licensed with LGPLv2.1, a copyleft license which fosters indirect business models around the free open-source software platform provided by RIOT, e.g. it is possible to link closed-source code with the LGPL code.

Getting Started

Features

RIOT provides features including, but not limited to:

  • Platforms Supported
    • 200+ boards based on AVR, MSP430, ESP8266, ESP32, RISC-V, ARM7, and ARM Cortex-M
    • The native port allows to run RIOT as-is on Linux and BSD. Multiple instances of RIOT running on a single machine can also be interconnected via a simple virtual Ethernet bridge or via a simulated IEEE 802.15.4 network (ZEP).
  • Programming Environment
    • Write native code in C, C++, or Rust
    • Rely upon POSIX APIs, user friendly hardware abstractions and standard embedded Rust interfaces
    • Integrate dynamic runtimes such as MicroPython, elm (JavaScript) and WASM
  • Network Features and Protocols
    • IPv6
    • IPv4 via lwIP
    • 6LoWPAN (RFC4944, RFC6282, RFC6775 and RFC7668)
    • UDP
    • TCP
    • RPL (storing mode, P2P mode)
    • CoAP
    • MQTT via paho-mqtt and MQTT-SN
    • LwM2M
    • Bluetooth (BLE) via NimBLE
    • LoRaWAN
    • UWB
    • CAN
    • CNN-Lite
    • LwIP
    • IEEE 802.15.4
    • Ethernet (also via USB)
    • SLIP (or ethos networking via Serial)
    • Dose (single pair ethernet like networking on serial interface UART)
  • System Features
    • a preemptive, tickless scheduler with priorities, optional periodic round robin within priorities
    • flexible memory management
    • high resolution, long-term timers
    • MTD abstraction layer for memory devices
    • File System integration
  • Security Features
    • OTA updates via SUIT
    • PSA Cryptographic API
    • DTLS, EDHOC
  • Device Drivers
    • SPI, I2C, UART, USB, CAN
    • RTC, PWM, Timer
    • ADC, DAC
    • Various sensors: Environmental sensors, IMUs, magnetometers, particulate matter sensors
    • Various actuators: Servos, motors, dimmers, switches, RGB LEDs
    • Displays and touchscreens
    • GNSS

Community

You can ask for help on the Forum or on Matrix. Please send bug reports and feature requests to our GitHub issue tracker

  • The Forum is the default place to start asking for help. Our Forum provides an archive of prior questions and answers.
  • For chat, we use #riot-os:matrix.org on the Matrix chat network.

Governance

For how our community is structured and governed, please see our governance document.

How to Ask

Please include as much detail as you can that is relevant to your question, not only "this isn't working". These details include:

  1. What you want to achieve.
  2. What have you tried so far (for example the commands you typed).
  3. What happened so far.

Collaboration

RIOT closely collaborates with and inspires other open source projects, e.g., Ariel OS, an IoT OS written in Rust. We are more than happy to collaborate with those who share our vision.

Getting RIOT

The most convenient way to get RIOT is to clone it via Git

git clone https://github.com/RIOT-OS/RIOT

this will ensure that you get all the newest features and bug fixes with the caveat of an ever changing work environment.

If you prefer things more stable, you can download the source code of one of our quarter annual releases via Github as ZIP file or tarball. You can also checkout a release in a cloned Git repository using

git pull --tags
git checkout <YYYY.MM>

For more details on our release cycle, check our documentation.

Contribute

To contribute something to RIOT, please refer to our contributing document.

Mailing Lists

License

  • Most of the code developed by the RIOT community is licensed under the GNU Lesser General Public License (LGPL) version 2.1 as published by the Free Software Foundation.
  • Some external sources, especially files developed by SICS are published under a separate license.

All code files contain licensing information.

For more information, see the RIOT website.