phpstorm.dev

PHP ecosystem insights

PHP knowledge

Versioned PHP knowledge with primary sources and explicit verification dates.

Source checks through 2026-10-14 · 56 sources

Verified 2026-10-02 draft Permanent entry

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.