Open-source project
zephyrproject-rtos/zephyr avatar
zephyrproject-rtos/zephyr

Zephyr RTOS: A Scalable, Apache-Licensed Real-Time OS for Embedded Hardware

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.

16,629 stars10,057 forksCApache-2.0

At a glance

What is it?
Zephyr is a real-time operating system for resource-constrained embedded devices, supporting architectures from ARM Cortex-M to RISC-V and x86. It is governed by the Linux Foundation and all development documentation is at docs.zephyrproject.org.
Who is it for?
Zephyr suits embedded engineers building on ARM Cortex-M, RISC-V, or x86 targets who need a kernel that scales from a simple LED wearable to an IoT gateway with networking and Bluetooth, within a single codebase. The west meta-tool and the Getting Started Guide at docs.zephyrproject.org are the required starting points; the README provides only links.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly C, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Zephyr Solves and Who It Is For

Embedded systems run across a wide spectrum of hardware from simple microcontrollers with kilobytes of RAM to more capable SoCs with networking and display. A single RTOS that targets this range saves teams from switching kernels as a product evolves. Zephyr addresses this with a small-footprint kernel that can run on resource-constrained devices while also scaling to more sophisticated applications.

The README describes the project as a scalable real-time operating system supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind. Use cases listed in the README span from simple embedded environmental sensors and LED wearables to sophisticated smart watches and IoT wireless gateways.

Zephyr is a hosted project within the Linux Foundation ecosystem. It is written primarily in C, released under the Apache-2.0 licence, and the main repository is at github.com/zephyrproject-rtos/zephyr.

Supported Architectures and the Boards Directory

The README lists the supported architectures: ARM (Cortex-A, Cortex-R, and Cortex-M), Intel x86, ARC, Tensilica Xtensa, RISC-V, SPARC, MIPS, and a large number of supported boards. The repository structure confirms this breadth: the arch/ directory contains subdirectories for each architecture, and the boards/ directory holds board-specific configurations.

The repository also contains a dts/ directory for Device Tree Source files, which are used to describe hardware peripherals in a hardware-agnostic way. The Kconfig and Kconfig.zephyr files at the root, alongside the Kconfig.constants file, provide the kernel configuration system used to enable and disable features at build time. The CMakeLists.txt at the root is the top-level CMake entry point.

The VERSION and SDK_VERSION files track the kernel version and the compatible Zephyr SDK version. The west.yml file is the west manifest that describes how to fetch the full set of modules and dependencies needed for a build.

Repository Layout and the west Build Tool

The Zephyr repository is large and uses west as its meta-tool for project management and flashing. The west.yml file at the root defines the manifest of external modules the project depends on, such as hardware-specific HALs and cryptography libraries. A full Zephyr workspace requires running west init and west update, which the Getting Started Guide at docs.zephyrproject.org documents in detail; the repository README provides only links to that guide.

The source tree is organized by function: arch/ for architecture-specific code, boards/ for board configurations, drivers/ for hardware driver implementations, include/ for public headers, kernel/ for the kernel itself, lib/ for libraries, subsys/ for subsystems (networking, Bluetooth, filesystems), dts/ for Device Tree files, and samples/ for example applications.

The MAINTAINERS.yml file maps source paths to their responsible maintainers, and CODEOWNERS handles GitHub review assignments.

Sample Applications and Getting Started

The samples/ directory contains a broad set of example applications organized by category. The listing includes samples/hello_world/, samples/bluetooth/, samples/net/, samples/sensor/, samples/drivers/, samples/kernel/, samples/cpp/, samples/basic/, samples/psa/, and others.

The samples/synchronization/ and samples/philosophers/ examples demonstrate kernel synchronization primitives. The samples/tfm_integration/ examples cover Trusted Firmware-M integration. The samples/userspace/ examples show user-space application patterns.

Each sample includes a CMakeLists.txt and a prj.conf Kconfig fragment. Building a sample requires the Zephyr SDK, CMake, west, and a toolchain for the target architecture. The README directs developers to the Getting Started Guide at docs.zephyrproject.org/latest/develop/getting_started/ for the complete setup sequence.

Versioning: Current Release and the LTS Branch

The repository maintains two active branches relevant to production use. The current release at the time of writing is v4.4.2, released on 2026-08-07. The LTS (Long Term Support) branch is v3.7.x, with v3.7.3-rc1 tagged on 2026-08-06.

The choice between v4.4.x and v3.7.x depends on the support window a project needs. The LTS branch receives security and bug fixes over a longer period. The main branch tracks ongoing development, and the last push was on 2026-09-27.

The REUSE.toml and LICENSES/ directory reflect the project's compliance with the REUSE specification for managing licence information across the large codebase, which contains code from many contributors under the same Apache-2.0 umbrella.

When Zephyr Is the Wrong Choice

Zephyr's scale comes with build system complexity. Setting up a cross-compilation toolchain, the Zephyr SDK, and the west tool for a new target takes significant effort compared to simpler bare-metal or Arduino-style environments. Teams prototyping on a single well-known board may find that complexity unnecessary.

The kernel's security and multi-architecture focus introduces configuration overhead. Many features are disabled by default and require explicit Kconfig entries in a project's prj.conf. Developers unfamiliar with Kconfig must learn the configuration system before being productive.

FreeRTOS is an alternative RTOS that is widely used in the embedded industry, particularly on ARM Cortex-M devices. The architectural difference is that FreeRTOS is a minimal kernel focused primarily on task scheduling, while Zephyr includes a broader set of subsystems (networking, Bluetooth, filesystems, power management) as part of the upstream project. Teams that need only basic task scheduling on a single well-supported MCU may find FreeRTOS simpler to integrate.

Licence, Security, and Community

Zephyr is released under the Apache-2.0 licence. The repository includes a LICENSES/ directory with the actual licence texts and a REUSE.toml file for REUSE compliance. Third-party components within the repository retain their own licences, which are documented in the REUSE metadata.

The README lists a security contact at [email protected] for reporting security issues. A Security Advisories repository tracks historical advisories. The project has achieved OpenSSF Best Practices certification, as indicated by the badge link in the README.

The README lists community channels: a Discord server at chat.zephyrproject.org, a user mailing list at [email protected], a developer mailing list at [email protected], and additional project mailing lists. The project also publishes Tech Talks at the Zephyr Project website. Issue tracking is on GitHub, and the CONTRIBUTING.rst file documents the contribution process.

Editorial conclusion

Zephyr suits embedded engineers building on ARM Cortex-M, RISC-V, or x86 targets who need a kernel that scales from a simple LED wearable to an IoT gateway with networking and Bluetooth, within a single codebase. The west meta-tool and the Getting Started Guide at docs.zephyrproject.org are the required starting points; the README provides only links. Verify that your hardware appears in the boards/ directory before starting a project, and check whether the LTS branch (v3.7.x) or the current release (v4.4.x) better fits your production support window.

Frequently asked questions

What exactly is Zephyr RTOS?

Zephyr is a scalable real-time operating system designed for resource-constrained embedded devices. It supports multiple hardware architectures including ARM Cortex-M, RISC-V, x86, and others, and is used for applications ranging from simple sensors to IoT gateways. It is an Apache-2.0 licensed project under the Linux Foundation.

How do I use Zephyr RTOS?

Using Zephyr requires installing the Zephyr SDK, CMake, the west meta-tool, and a target-architecture toolchain. The Getting Started Guide at docs.zephyrproject.org documents the full setup sequence. The samples/ directory in the repository contains example applications for common use cases.

How do I install Zephyr?

The README directs developers to the Getting Started Guide at docs.zephyrproject.org/latest/develop/getting_started/ for complete install instructions. The process involves installing the Zephyr SDK, CMake, and the west meta-tool, then running west init and west update to set up the workspace.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. zephyrproject-rtos/zephyr on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zephyrproject-rtos-zephyr.svg)](https://hysenlabs.com/projects/zephyrproject-rtos-zephyr)