Zig is an open-source programming language designed for robustness,
optimality, and clarity.
Download & Documentation |
Source Code |
Bug Tracker |
- Manual memory management. Memory allocation failure is handled correctly. Edge cases matter!
- Zig competes with C instead of depending on it. The Zig Standard Library does not depend on libc.
- Small, simple language. Focus on debugging your application rather than debugging your knowledge of your programming language.
- A fresh take on error handling that resembles what well-written C error handling looks like,
minus the boilerplate and verbosity.
- Debug mode optimizes for fast compilation time and crashing with a stack trace when undefined behavior
- ReleaseFast mode produces heavily optimized code. What other projects call
"Link Time Optimization" Zig does automatically.
- ReleaseSafe mode produces optimized code but keeps safety checks enabled. Disable safety checks in the bottlenecks of your code.
- Generic data structures and functions.
- Compile-time reflection and compile-time code execution.
- Import .h files and directly use C types, variables, and functions.
- Export functions, variables, and types for C code to depend on. Automatically generate .h files.
- Nullable type instead of null pointers.
- Order independent top level declarations.
- Friendly toward package maintainers. Reproducible build, bootstrapping process carefully documented. Issues filed by package maintainers are considered especially important.
- Cross-compiling is a first-class use case.
- No preprocessor. Instead Zig has a few carefully designed features that
provide a way to accomplish things you might do with a preprocessor.
Zig in the Wild