Skip to content

๐Ÿš€ A collection of hands-on networking examples using Linux's high-performance io_uring API. This repository showcases practical implementations of networking applications in C, with a focus on performance, scalability, and modern asynchronous I/O.

License

Notifications You must be signed in to change notification settings

aabolfazl/io-uring-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ io-uring-lab

Build Status

A curated, purpose-driven collection of examples demonstrating Linux's high-performance io_uring API โ€” focused on building real-world, scalable asynchronous networking systems.


๐ŸŽฏ Project Vision

This project emerged from the development experience of Vortex โ€” a high-performance Layer 4 Load Balancer built entirely with io_uring. During Vortexโ€™s development, the lack of well-structured documentation and practical references made mastering io_uring frustrating and time-consuming.

io-uring-lab is here to fix that.

The goal is to provide:

  • Clear, beginner-to-advanced step-by-step examples
  • Real-world usage patterns (not toy demos)
  • A foundation for building async libraries (HTTP, WebSocket, proxies)

๐Ÿง  Why io_uring?

  • True non-blocking I/O with minimal syscalls
  • Event-driven architecture built into the kernel
  • Unified API for file, socket, timeout, and polling
  • Clean replacement for legacy epoll, select, and poll

๐Ÿ“ฆ Use Case

This lab exists to understand every relevant operation from the ground up.


๐Ÿ› ๏ธ License

MIT โ€” use freely, contribute boldly.


About

๐Ÿš€ A collection of hands-on networking examples using Linux's high-performance io_uring API. This repository showcases practical implementations of networking applications in C, with a focus on performance, scalability, and modern asynchronous I/O.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published