Io_uring, kTLS and Rust for zero syscall HTTPS server
2 days ago
- #Rust
- #io_uring
- #kTLS
- The evolution of web server scalability from process creation to threads, then to poll()/select(), and finally to epoll/kqueue.
- Introduction of io_uring for asynchronous syscall handling, reducing the need for direct kernel commands.
- Optimization strategies like one thread per core and NUMA-aware memory access for high-performance web servers.
- Use of kTLS to offload encryption/decryption to the kernel, potentially leveraging hardware acceleration.
- Descriptorless files in io_uring to minimize overhead between user space and kernel space.
- Development of tarweb, a Rust-based web server using io_uring and kTLS, highlighting challenges and solutions.
- Safety concerns with io_uring in Rust, emphasizing the need for compile-time guarantees to prevent memory errors.