← Back to Learn

Platform Support

Zig supports a wide range of architectures and operating systems. The Support Table and Additional Platforms sections cover the targets that Zig can build programs for, while the zig-bootstrap README covers the targets that the Zig compiler itself can be easily cross-compiled to run on.

Tier System

Zig’s level of support for various targets is broadly categorized into four tiers with Tier 1 being the highest. The goal is for Tier 1 targets to have zero disabled tests - this will become a requirement for post-1.0.0 Zig releases.

Tier 1

  • All non-experimental language features are known to work correctly on this target.
  • The compiler can generate machine code for this target without relying on LLVM.
  • The integrated fuzzer works on this target (if applicable).

Tier 2

  • The standard library’s cross-platform abstractions have implementations for this target.
  • Failed assertions and crashes produce stack traces on this target.
  • libc is available for this target even when cross-compiling (if applicable).
  • Continuous integration machines build the module tests for this target on every push.

Tier 3

  • The compiler can generate machine code for this target by relying on an external backend such as LLVM.
  • The linker can produce object files, libraries, and executables for this target.

Tier 4

  • The compiler can generate assembly or C source code for this target.

Support Table

In the following table, ✅ indicates full support, ❌ indicates no support, and ⚠️ indicates that there is partial support, e.g. only for some sub-targets, or with some notable known issues. ❔ indicates that the status is largely unknown, typically because the target is rarely exercised. Hover over other icons for details.

Tier Target Code Gen. Linker Lang. Feat. Std. Lib. Stack Traces Fuzzer libc CI
1 x86_64-linux 🖥️

2 aarch64-freebsd 🖥️🛠️
2 aarch64[_be]-linux 🖥️🛠️
2 aarch64-maccatalyst 🖥️🛠️ ⚠️
2 aarch64-macos 🖥️🛠️
2 aarch64[_be]-netbsd 🖥️🛠️
2 aarch64-openbsd 🖥️🛠️ ⚠️
2 aarch64-windows 🖥️🛠️ ⚠️
2 hexagon-linux 🖥️
2 loongarch64-linux 🖥️🛠️
2 mips[el]-linux 🖥️
2 mips[el]-netbsd 🖥️ ⚠️
2 mips64[el]-linux 🖥️
2 mips64[el]-openbsd 🖥️ ⚠️
2 powerpc-linux 🖥️ ⚠️
2 powerpc-netbsd 🖥️ ⚠️
2 powerpc-openbsd 🖥️ ⚠️
2 powerpc64[le]-freebsd 🖥️ ⚠️
2 powerpc64[le]-linux 🖥️
2 powerpc64-openbsd 🖥️ ⚠️
2 riscv32-linux 🖥️
2 riscv64-freebsd 🖥️🛠️ ⚠️
2 riscv64-linux 🖥️🛠️
2 riscv64-openbsd 🖥️🛠️ ⚠️
2 s390x-linux 🖥️
2 thumb-windows 🖥️ ⚠️
2 x86-linux 🖥️
2 x86-netbsd 🖥️ ⚠️
2 x86-openbsd 🖥️ ⚠️
2 x86-windows 🖥️ ⚠️
2 x86_64-freebsd 🖥️🛠️
2 x86_64-maccatalyst 🖥️ ⚠️
2 x86_64-macos 🖥️ ⚠️
2 x86_64-netbsd 🖥️🛠️
2 x86_64-openbsd 🖥️🛠️
2 x86_64-windows 🖥️🛠️

3 aarch64-haiku 🖥️🛠️ ❌️ ❌️
3 aarch64-ios 🖥️🛠️ ❌️ ❌️
3 aarch64-serenity 🖥️🛠️ ❌️ ❌️
3 aarch64-tvos 🖥️🛠️ ❌️ ❌️
3 aarch64-visionos 🖥️🛠️ ❌️ ❌️
3 aarch64-watchos 🖥️🛠️ ❌️ ❌️
3 arm-freebsd 🖥️ ⚠️
3 arm-haiku 🖥️ ❌️ ❌️
3 arm[eb]-linux 🖥️
3 arm[eb]-netbsd 🖥️ ⚠️
3 arm-openbsd 🖥️ ⚠️
3 loongarch32-linux 🖥️ ❌️ ⚠️
3 mips64[el]-netbsd 🖥️ ❌️ ❌️ ❌️
3 riscv64-haiku 🖥️🛠️ ❌️ ❌️
3 riscv64-serenity 🖥️🛠️ ❌️ ❌️
3 thumb[eb]-linux 🖥️
3 wasm32-wasi 🖥️🛠️
3 wasm64-wasi 🖥️🛠️ ❌️ ❌️ ❌️
3 x86-haiku 🖥️ ❌️ ❌️
3 x86-illumos 🖥️ ❌️ ❌️
3 x86_64-dragonfly 🖥️🛠️ ❌️ ❌️
3 x86_64-haiku 🖥️ ❌️ ❌️
3 x86_64-illumos 🖥️🛠️ ❌️ ❌️
3 x86_64-serenity 🖥️ ❌️ ❌️

4 alpha-linux 📄 ❌️ ❌️ ❌️ ❌️ ❌️
4 alpha-netbsd 📄 ❌️ ❌️ ❌️ ❌️
4 alpha-openbsd 📄 ❌️ ❌️ ❌️ ❌️
4 arc[eb]-linux 📄 ❌️ ❌️
4 csky-linux 📄 ❌️ ❌️ ❌️
4 hppa-linux 📄 ❌️ ❌️ ❌️ ❌️ ❌️
4 hppa-netbsd 📄 ❌️ ❌️ ❌️ ❌️
4 hppa-openbsd 📄 ❌️ ❌️ ❌️ ❌️
4 hppa64-linux 📄 ❌️ ❌️ ❌️ ❌️ ❌️
4 m68k-haiku 🖥️ ❌️ ❌️ ❌️
4 m68k-linux 🖥️ ❌️ ❌️
4 m68k-netbsd 🖥️ ❌️ ❌️
4 m88k-openbsd 📄 ❌️ ❌️ ❌️ ❌️ ❌️
4 microblaze[el]-linux 📄 ❌️ ❌️ ❌️ ❌️ ❌️
4 or1k-linux 📄 ❌️ ❌️ ❌️
4 sh[eb]-linux 📄 ❌️ ❌️ ❌️ ❌️ ❌️
4 sh[eb]-netbsd 📄 ❌️ ❌️ ❌️ ❌️
4 sh-openbsd 📄 ❌️ ❌️ ❌️ ❌️
4 sparc-linux 🖥️ ❌️ ❌️ ❌️
4 sparc-netbsd 🖥️ ❌️ ❌️ ❌️
4 sparc64-haiku 🖥️🛠️ ⚠️ ❌️ ❌️ ❌️
4 sparc64-linux 🖥️🛠️ ⚠️ ❌️
4 sparc64-netbsd 🖥️🛠️ ⚠️ ❌️ ❌️
4 sparc64-openbsd 🖥️🛠️ ⚠️ ❌️ ❌️
4 xtensa[eb]-linux 🖥️ ❌️ ❌️ ❌️ ❌️ ❌️

Version Requirements

The Zig standard library has minimum version requirements for some supported operating systems, which in turn affect the Zig compiler itself:

OS Version
Darwin 13.0+
DragonFly BSD 6.0+
FreeBSD 14.0+
Linux 5.10+
NetBSD 10.1+
OpenBSD 7.8+
Windows 10+

Additional Platforms

Zig also has varying levels of support for these targets, for which the tier system does not quite apply:

  • aarch64-driverkit
  • aarch64[_be]-freestanding
  • aarch64-uefi
  • alpha-freestanding
  • amdgcn-amdhsa
  • amdgcn-amdpal
  • amdgcn-mesa3d
  • arc[eb]-freestanding
  • arm[eb]-freestanding
  • arm-3ds
  • arm-uefi
  • arm-vita
  • avr-freestanding
  • bpf(eb,el)-freestanding
  • csky-freestanding
  • ez80-tios
  • hexagon-freestanding
  • hppa[64]-freestanding
  • kalimba-freestanding
  • kvx-freestanding
  • lanai-freestanding
  • loongarch(32,64)-freestanding
  • loongarch(32,64)-uefi
  • m68k-freestanding
  • m88k-freestanding
  • microblaze[el]-freestanding
  • mips[64][el]-freestanding
  • mipsel-psp
  • msp430-freestanding
  • nvptx[64]-cuda
  • nvptx[64]-nvcl
  • or1k-freestanding
  • powerpc[64][le]-freestanding
  • powerpc64-ps3
  • propeller-freestanding
  • riscv(32,64)[be]-freestanding
  • riscv(32,64)-uefi
  • s390x-freestanding
  • sh[eb]-freestanding
  • sparc[64]-freestanding
  • spirv(32,64)-opencl
  • spirv(32,64)-opengl
  • spirv(32,64)-vulkan
  • thumb[eb]-freestanding
  • ve-freestanding
  • wasm(32,64)-emscripten
  • wasm(32,64)-freestanding
  • x86[_16,_64]-freestanding
  • x86[_64]-uefi
  • x86_64-driverkit
  • x86_64-ps4
  • x86_64-ps5
  • xcore-freestanding
  • xtensa[eb]-freestanding