Ring API (completion-based IO) proposal
Draft; not accepted. The RFC page (version 0.2, dated 2026-09-29) lists its status as Draft. It was not present in the collected official RFC index on 2026-10-02, so its status here comes only from the page itself. No target PHP version was stated in the reviewed text.
The proposal builds on IO hooks and operations. That RFC's poll-based operation
queue can wait for socket or pipe readiness, but cannot help with operations that have no
readiness notion, such as regular-file reads, fsync() or host-name lookups. The Ring
(Io\Ring\Engine, an Io\OperationQueue) would perform such operations itself so that a Fiber
could suspend instead of blocking the process.
It would be implemented on a bundled C library, ior, with three backends: io_uring on Linux,
IO completion ports on Windows, and a thread pool elsewhere. The page names the thread pool as
the Linux fallback when io_uring cannot be used (for example kernels older than 5.19,
io_uring_disabled or restrictive seccomp profiles). The RFC reports that the backend is chosen
automatically and exposed only informationally. It explicitly does not use libuv.
The RFC includes its own benchmark comparisons and makes some modes opt-in on that basis; these are the author's measurements, not independent results.
Do not treat this as available PHP behavior. Related: IO hooks, Polling API additions.