Zig (programming language)
| Zig | |
|---|---|
| Paradigms | Multi-paradigm: imperative, concurrent, procedural, functional |
| Designed by | Andrew Kelley |
| First appeared | 8 February 2016 |
| Stable release | 0.15.2 (Beta)
/ 11 October 2025 |
| Typing discipline | Static, strong, inferred, nominal, generic |
| Memory management | Manual |
| Implementation language | Zig |
| Platform | x86-64, ARM64, WebAssembly Tier 2: ARM, IA-32, RISC-V, MIPS64, POWERPC64, SPARC64, some tier-2 platforms have tier-1 support for standalone programs |
| OS | Cross-platform: Linux, macOS, FreeBSD, Windows |
| License | MIT |
| Filename extensions | .zig, .zir, .zigr, .zon |
| Website | ziglang |
| Influenced by | |
| C, C++, LLVM IR, Go, Rust | |
Zig is a system programming language designed to be a general-purpose improvement to the C programming language. It is free and open-source software, released under an MIT License.
Differences with C relate to control flow, function calls, library imports, variable declaration and Unicode support. The language makes no use of macros or preprocessor instructions. Features adopted from modern languages include the addition of compile time generic programming data types, allowing functions to work on a variety of data, along with a small set of new compiler directives to allow access to the information about those types using reflection. Zig requires manual memory management, but attempts to improve memory safety through option types and a unit testing framework. Features for low-level programming include packed structs, arbitrary-width integers and multiple pointer types.
Zig was designed by Andrew Kelley and first announced in 2016. Development is funded by the Zig Software Foundation (ZSF).