A walkthrough of building a Finger protocol server using Linux's io_uring async I/O interface, written in an unreleased systems programming language. Covers io_uring fundamentals (submission/completion queues, SQEs/CQEs), setting up a ring buffer, handling multiple concurrent clients with a state machine, linked timeouts for Slowloris mitigation, signalfd-based signal handling, and CRLF conversion. The code demonstrates practical io_uring patterns including fixed file descriptors, IO_LINK for chaining operations, and zero-copy buffer management.

25m read timeFrom drewdevault.com
Post cover image

Sort: