Zig 0.16 has landed on April 13, 2026, so it's time to do this all over again :)
The major breaking change this time is the new std.Io interface that will be part of any code that has to access basically any system interface (filesystem, threads, timers, etc.), and OS-specific APIs like std.posix has almost been completely removed. This will likely be an even greater challenge compared to Writergate due to how much we rely on libxev for these sorts of tasks. I would recommend trying to port the codebase to use a generic std.Io implementation, and polyfilling in the features we need but aren't quite in the standard library yet — then we could either try to run the whole program off of std.Io.Evented, or try to repackage libxev as yet another std.Io implementation.
Other than libxev, these other Zig dependencies need to be migrated:
Zig 0.16 has landed on April 13, 2026, so it's time to do this all over again :)
The major breaking change this time is the new
std.Iointerface that will be part of any code that has to access basically any system interface (filesystem, threads, timers, etc.), and OS-specific APIs likestd.posixhas almost been completely removed. This will likely be an even greater challenge compared to Writergate due to how much we rely onlibxevfor these sorts of tasks. I would recommend trying to port the codebase to use a genericstd.Ioimplementation, and polyfilling in the features we need but aren't quite in the standard library yet — then we could either try to run the whole program off ofstd.Io.Evented, or try to repackagelibxevas yet anotherstd.Ioimplementation.Other than
libxev, these other Zig dependencies need to be migrated:libvaxis— open PR: Zig 0.16 port rockorager/libvaxis#316z2d— has a Zig 0.16 branch: https://github.com/vancluever/z2d/tree/zig-0.16zig-objc— merged PR: Zig 0.16 Compatibility mitchellh/zig-objc#34zig-js— merged PR: migrate to 0.16.0-dev.3142+5ccfeb926 mitchellh/zig-js#10uucode— has switched to Zig 0.16 for its main branchlibxev— Zig 0.16 Compatibility mitchellh/libxev#220zig-wayland— has switched to Zig 0.16 for its main branchzf— No ongoing migration upstreamgobject— New 0.16-compatible releasezon2nix— merged PR: zon2nix: update to a version that is compatible with Zig 0.16 #12259