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. No preprocessor.
Concurrency via coroutines. Async/await is thread-safe, non-blocking, and makes no syscalls, and therefore available in freestanding mode.
You can multiplex coroutines onto a thread pool in userland for M:N concurrency.
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.