I used the new Io interface for zits. The most interesting files relating to the Io interface are src/Server.zig, src/Server/Client.zig, and (though only using std.Io.Reader and std.Io.Writer) src/Server/parse.zig. It’s far from optimal (I lock the entire subscriptions list on every publish right now, which does wonders for scaling (derogatory) (though it is faster than the reference implementation for low numbers of clients!)), but believe it’s at least using the Io interface correctly.
I also made a similar thread not too long ago that has some good examples to check out:
This thread where I went back and forth with Andrew was enlightening as to how to properly handle errors and cancellation: