# io_uring

45 Hacker News commenters recommended io_uring and 21 criticized it, November 2025 to November 2026. It was recommended in 13 of 13 months. It meets the Hacker Approved badge rule.

**Verdict:** Linux kernel interface for async I/O that cuts syscall overhead and can be significantly faster on suitable workloads. Critics cite its large kernel attack surface and recurring security bugs.

## Why people recommend it

- Much faster for async I/O (4 comments): "io_uring is significantly faster for certain workloads, but you can't expect that merely running a syscall via io_uring will somehow magically make it faster." ([source](https://news.ycombinator.com/item?id=49525962)) "io_uring is incredibly fast for async I/O but is also a massive security disaster in the Linux kernel." ([source](https://news.ycombinator.com/item?id=50320279)) "Shows that io_uring really brings extra performance when properly used" ([source](https://news.ycombinator.com/item?id=46519232))
- Modern standard for async I/O on Linux (4 comments): ""io_uring" (2019) have advanced the state of the art clearly beyond what already existed" ([source](https://news.ycombinator.com/item?id=49100774)) "at least now we have some decent answers (like io_uring on Linux.)" ([source](https://news.ycombinator.com/item?id=49093516)) "Async I/O (and later just everything async) converged on io_uring." ([source](https://news.ycombinator.com/item?id=49382290))
- Batches requests to cut syscall overhead (3 comments): "genuinely a step up from the overlapped I/O APIs of Windows, as it avoids eating syscall transition overhead in many cases" ([source](https://news.ycombinator.com/item?id=49117936)) "if syscalls are expensive, queue them up in a buffer with one syscall to transfer the thread to the os" ([source](https://news.ycombinator.com/item?id=48431457)) "io_uring largely eliminates this issue by decoupling submission from syscalls" ([source](https://news.ycombinator.com/item?id=47528309))
- One thread serves many requests (2 comments): "This is where io_uring is really important because it lets one thread schedule I/O to satisfy one request and resume processing a different request." ([source](https://news.ycombinator.com/item?id=49530985)) "io_uring lets that same thread continue to handle other requests which themselves might generate more I/O that gets amortized." ([source](https://news.ycombinator.com/item?id=49530439))

## What people warn about

- Large kernel attack surface (4 comments): "io-uring is in a different league imo. I'd say that it's second only to user namespaces in terms of attack surface." ([source](https://news.ycombinator.com/item?id=48076537)) "io_uring syscalls are blocked by default in Docker, because io_uring is a large surface area for attacks" ([source](https://news.ycombinator.com/item?id=46520352)) "io_uring is a large surface area for attacks, and this has proven to be a real problem in practice" ([source](https://news.ycombinator.com/item?id=46519055))
- Recurring security bugs and CVEs (4 comments): "it continues to be such a consistent source of bugs - many with serious security implications" ([source](https://news.ycombinator.com/item?id=47263462)) "the list of vulnerabilities in io_uring over the past 12 months is pretty staggering to me" ([source](https://news.ycombinator.com/item?id=47265787)) "io_uring has been one of the greatest sources of exploits for the Linux kernel in years." ([source](https://news.ycombinator.com/item?id=49402224))
- Gains depend on careful design (2 comments): "The benefits of io_uring are limited without a commitment to designing your own schedulers." ([source](https://news.ycombinator.com/item?id=49654717)) "io_uring is significantly faster for certain workloads, but you can't expect that merely running a syscall via io_uring will somehow magically make it faster." ([source](https://news.ycombinator.com/item?id=49525962))
- Often disabled or blocked by default (2 comments): "The catch is that its kernel opt-in and disabled just about everywhere for security reasons." ([source](https://news.ycombinator.com/item?id=48614302)) "io_uring syscalls are blocked by default in Docker, because io_uring is a large surface area for attacks" ([source](https://news.ycombinator.com/item?id=46520352))

## Cite as

Hacker Approved, "io_uring", https://hackerapproved.com/p/io-uring/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
