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-driverkitaarch64[_be]-freestandingaarch64-uefialpha-freestandingamdgcn-amdhsaamdgcn-amdpalamdgcn-mesa3darc[eb]-freestandingarm[eb]-freestandingarm-3dsarm-uefiarm-vitaavr-freestandingbpf(eb,el)-freestandingcsky-freestandingez80-tioshexagon-freestandinghppa[64]-freestandingkalimba-freestandingkvx-freestandinglanai-freestandingloongarch(32,64)-freestandingloongarch(32,64)-uefim68k-freestandingm88k-freestandingmicroblaze[el]-freestandingmips[64][el]-freestandingmipsel-pspmsp430-freestandingnvptx[64]-cudanvptx[64]-nvclor1k-freestandingpowerpc[64][le]-freestandingpowerpc64-ps3propeller-freestandingriscv(32,64)[be]-freestandingriscv(32,64)-uefis390x-freestandingsh[eb]-freestandingsparc[64]-freestandingspirv(32,64)-openclspirv(32,64)-openglspirv(32,64)-vulkanthumb[eb]-freestandingve-freestandingwasm(32,64)-emscriptenwasm(32,64)-freestandingx86[_16,_64]-freestandingx86[_64]-uefix86_64-driverkitx86_64-ps4x86_64-ps5xcore-freestandingxtensa[eb]-freestanding