atproto relay in zig zlay.waow.tech
relay zig atproto

switch to Io.Threaded backend, shelve Evented master

the Evented (io_uring fiber) backend has been the source of every major issue since the 0.16 migration: 8 cross-Io crash classes, a ReleaseSafe GPF from a zig codegen bug, and a persistent ~10-15% coverage degradation that nobody could trace. the zig team marks Evented as experimental. Io.Threaded restores thread-per-PDS (~2,800 OS threads instead of ~35 fibers), which was the proven model on 0.15 at 99%+ coverage. the entire cross-Io problem class vanishes. ReleaseSafe works again. DNS works natively. the uring networking patch becomes inert. one-line change: const Backend = Io.Evented → Io.Threaded. all io.concurrent() call sites, Io.Future, Io.Mutex, Io.Condition are backend-agnostic through the std.Io abstraction. pool_io becomes redundant but harmless (both runtimes are now Threaded). builds clean: zig build test, zig fmt, and zig build -Dtarget=x86_64-linux-gnu -Doptimize=ReleaseSafe all pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


+7 -10
1 changed file