Hasty Briefsbeta

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.