Zig is a compiled, low-level programming language designed as a modern alternative to C: no garbage collector, explicit memory management, zero hidden dependencies. The project is still pre-1.0, so each release can bring substantial changes, including breaking ones.
Version 0.16.0 is the result of eight months of work, with contributions from 244 developers across over 1,100 commits.
I/O as an interface
The most significant change affects the standard library: I/O, everything related to reading and writing data, has been rebuilt around an interface-based system. This approach makes code more composable and eases integration with async operations and different runtime environments. Some existing structures, like GenericReader and AnyReader, have been removed in favor of the new model.
ArenaAllocator, the arena allocator commonly used to manage large memory blocks with a single deallocation, is also changing: it becomes thread-safe and lock-free.
Language and compiler
Several modifications affect the switch construct, new restrictions on packed types and vectors, and updates to how the compiler handles type resolution. Incremental compilation continues to advance, aiming to reduce build times during development sessions.
The toolchain updates to LLVM 21, with a note that automatic loop vectorization has been temporarily disabled due to a regression found in the latest version.
The build system gains the ability to override packages locally and download them to a project-specific directory, two useful features for anyone working with custom dependencies.


Mastodon
Telegram
Bluesky