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

migrate to zig 0.16: Io primitives, updated deps, timer regression fixes master

phase 1 of the 0.16 migration — threads still use std.Thread.spawn, but all synchronization primitives now use Io.Mutex/Io.Condition and all sleep/timestamp calls go through std.Io. - bump deps: zat v0.3.0-alpha.7, websocket edeca26, rocksdb 9be930b, pg dev - build.zig: Module API (link_libc on root_module), .ignore/.trimEnd renames - Dockerfile: zig 0.16.0-dev.3059 - main.zig: Io.Evented/Threaded backend selection, DebugAllocator, getenv helper - all modules: Io.Mutex/Io.Condition, io.sleep(), Io.Timestamp, Io.Duration - thread_pool: stays on std.Thread.spawn (CPU-bound keyed workers) - event_log: sleep-based flush loop (Io.Condition has no timedWait) - broadcaster: poll-based idle wakeup for consumer keepalive pings - thread_pool submit: poll-based stop check to prevent shutdown deadlock - lru/ring_buffer: Io.Mutex for cross-boundary access - api/xrpc: Io.Writer.fixed() replaces fixedBufferStream - collection_index: allocPrint for test paths (realpathAlloc removed) next: port thread spawns to io.concurrent for upstream/downstream websocket paths Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>