# io_uring-echo-server **Repository Path**: anolis/io_uring-echo-server ## Basic Information - **Project Name**: io_uring-echo-server - **Description**: echo server 是一个经典的用于评估网络性能的测试套件,多个客户端并发地向服务端发送固定长度消息,服务端收到消息后直接将消息原样返回给客户端。echo server 本身也是一种经典的网络编程模型,redis,nginx 等基本都是采用此编程模型。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://openanolis.cn/sig/high-perf-storage/doc/218455838343036973 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-11-18 - **Last Updated**: 2023-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # io_uring bare minimum echo server * uses an event loop created with io_uring * uses liburing HEAD https://github.com/axboe/liburing * __Linux 5.7 or higher with IORING_FEAT_FAST_POLL and IORING_OP_PROVIDE_BUFFERS required__ ## Install and run `make liburing` `make io_uring_echo_server` `./io_uring_echo_server [port_number]` ## compare with epoll echo server https://github.com/frevib/epoll-echo-server ## Benchmarks https://github.com/frevib/io_uring-echo-server/blob/io-uring-feat-fast-poll/benchmarks/benchmarks.md ## Versions ### v1.6 * Use IORING_OP_PROVIDE_BUFFERS ### v1.5 * Use IORING_FEAT_FAST_POLL, which increases performance a lot * Remove all polling, this is now handled by IORING_FEAT_FAST_POLL ### v1.4 Fix bug that massively overstated the performance. ### v1.3 Use pre-allocated `sqe->user_data` instead of dynamically allocating memory. ### v1.1 Fix memory leak. ### v1.0 Working release.