NAME
Hyperman::Event::IOUring - io_uring backend for Hyperman::Loop
SYNOPSIS
use Hyperman::Event::IOUring;
Hyperman::Event::IOUring->available; # true on Linux >= 5.4 (and permitted)
HYPERMAN_BACKEND=io_uring plackup -s Hyperman app.psgi
DESCRIPTION
An io_uring implementation of the Hyperman::Loop backend interface, built on liburing. This first cut drives the ring in poll mode - IORING_OP_POLL_ADD readiness completions, re-armed for persistent watchers - with timers as IORING_OP_TIMEOUT and shutdown signals via a signalfd polled on the ring. Completion-based read/write submission comes later.
liburing is detected at build time (pkg-config, or a -luring compile probe); when it is not installed the backend is compiled out and this module's available returns false, leaving epoll/poll in place. Install your distribution's liburing-dev (or liburing-devel) and rebuild to enable it.
Opt-in: auto-selection remains kqueue > epoll > poll until this backend is benchmarked; force it with HYPERMAN_BACKEND=io_uring or Hyperman::Loop->new('io_uring'). Even when built in, available is false where the running kernel lacks io_uring or seccomp forbids it (e.g. default Docker profiles).
AUTHOR
LNATION <email@lnation.org>
LICENSE AND COPYRIGHT
This software is Copyright (c) 2026 by LNATION. This is free software, licensed under the Artistic License 2.0.