winloop is a Ruby Fiber::Scheduler built on Win32 I/O Completion Ports. It makes ordinary socket I/O, sleeps, timeouts and Mutex/Queue/Thread#join run cooperatively on a single thread — the async-runtime story that has always been weak on Windows, done the way libuv/mio/wepoll do it: readiness over an IOCP via \Device\Afd polling, with recv/send driven by the completion port. Requires a native Windows MSVC (mswin) build of Ruby.
Required Ruby Version
>= 3.1
Authors
ned